![]() |
|
作者信息 | 主题: Visual Studio 2005 边学边用15826 | ||||
|
发表时间:
2010-4-2 8:08:33
特别提示:本帖子在 2010-5-24 15:53:18 由用户
白瑞德
编辑过
一,更改默认环境设置:VB.net和C# 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1、菜单工具->导入和导出设置…,打开导入和导出设置向导,选择重置所有设置,然后下一步 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 4.3 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1、有关第一个例子的两个问题: 浪漫烛光 www.langmanzg.com 首先,必须用HTML下的控件; 浪漫烛光 www.langmanzg.com 其次,只有使用这些类下的控件,才能在双击Button按钮时出现ServerClick事件,另外,如果在同一控件中还保留有(客户端的?)On_click事件,那么ServerClick的事件就不会执行。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 2、如果没有增加runat="server"属性,可以分别选中每个控件然后分别右键设置。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 3,length属性代表长度(数量),而IndexOf和LastIndexOf属性则代表位置,从0开始计算,因此和数量是 +1的关系。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 4,为进行目录操作(File操作),需要引入名为System.IO的命名空间。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 5,对于Web页面中的服务器控件的设置,必须将runat="server"设置好之后才能出现默认的ID。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 4.6日笔记 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1,有关Label控件(标准)和Textbox控件(标准)之间的联动问题。首先作x,}9nLF为标准控件,引入后默认的runat就设置为server了;另外,Textbox的TextChange事件,应该只有在设置其AutoPostBack为True时,才能在同一页面上引发。(测试时) 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 2,AutoPostBack属性在非提交(控制转移)空间中均需设置,比如Textbox和DropDownList。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 3,ListBox的ListItem方法包含两个参数:字符串类型的新增项的文本和新增项的值(注意!所谓的“值”也需要通过ToString函数转换成字符串类型?)。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 4月7日笔记 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1,Panel空间内内部元素的“隐藏”,意味这它也并不占空间,“隐藏”从页面可视化的角度来看相当于这个Panel中的控件“消失”了。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 2,判断页面是否是第一次装载,可用IsPostBack(属性?)来测试。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 3,在Calendar控件中,双击“事件”按钮(闪电)后,在SelectionChanged事件右侧的空白区域,即可生成事件代码页面。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 4,“验证”控件在验证系列标签中。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 5,“验证”类控LJ'1pSMkdR件的很奇特的问题: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 如果我们对某个按钮的click事件设置了和验证控件(Validator)有关的事件,那么在本页面里的其他按钮(即使没有加入此事件)仍然可以实现和上述控件相同的内容,不知作何解…… 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 可能是“继承”和“重用”的关系 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 而如果同一页面由两个按钮所触发的有关Validator的两个不同的事件,那么某个按钮的某些功能(比如CompareValidator)可能失效…… 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com CompareValidator控件的属性中,ControlToValidate代表设置要验证控件的ID,而ControlToCompare代表和前面控件相比较的控件ID;前者默认值为“空”,而后者则为“空字符串”,注意区别。所以后文说,如果不使用RequiredFieldValidator对确认密码文本框进行验证,那么它就会被验证所跳过。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 7,在同一个页面中,对于各类Validator的有效性判断,如果有效性为“真”时,即IsValid判断后的语句并不执行,也就是说,多个Button按钮会存在混乱。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 三,数据库篇 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 4月7日笔记 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1,08\,D7'T在new ListItem()中,应该有两个项目,如上文所述,但是有一个可以省略?比如: 浪漫烛光 www.langmanzg.com ListItem item=new ListItem(sdr["pub_name"].ToString()); 浪漫烛光 www.langmanzg.com ListItem item=new ListItem(info,(count+1).ToString()); 浪漫烛光 www.langmanzg.com 也就是说,ToString前既可以是Items集合中的项目ID值,也可以是其编号? 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 2,select count(*) from publishers 这条SQL查询,返回的只是这个数据表中记录的条数,因此用DataTable的Rows属性,Rows[j][1]是错误的。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 3,"当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。"出现这一错误提示表明SqlCommandBuilder类没有与DataSet相协调,也就是说,缺少这一句:SqlCommandBuilder scb=new SqlCommandBuilder(sda);切记! 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com “未将对象引用设置到对象的实例。”出现这个错误,真的有可能只是把引用的([qso{VEW"B@gp数据表的名字写错了…… 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 4月8日笔记 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1,如果诸如SqlConnection等数据对象没有在Visual Studio中自动出现提示时,应考虑是否是没有加载对应的命名空间,比如说System.Data.SqlClient等等。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 2,CS0118: “System.Data.DataSet.Tables”是“属性”,但此处被当做“方法”来使用 浪漫烛光 www.langmanzg.com 出现这个错误提示,可能是忘了把数据库表(或行列)对象属性后面的加的应该是[]而不是(),要注意克服在VB下的习惯 DataSet.Tables这是个属性,后面的[]是实例值,而不是方法。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 从这个角度考虑…… 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 4月10日笔记 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1,如何在代码窗口显示行号? 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 工具->选项->文本编辑器->所有语言->显示->显示行号->确认。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 2,在例4.3.2中,AlternatingItemTemplate(被称之为“交替项”)的作用是作为“二选一可选行”的模板,主要充当设置间隔行的行显示属性(比如背景色)等所使用的。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 3,在Tyg@L@Y .使用DataList控件中,有时某些事件无法通过双击的方式自动在代码区生成,这样我们可以通过点击属性栏中的“事件”按钮(黄色闪电,很直观的)来进行打开,本例是ItemCommand事件,此事件在点击DataList中的任一按钮时触发。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 4,切记!==是判断是否相等(多用于判断、循环语句中的条件设置),而=则是代表赋值. 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 5,如果没有连接上数据源,像DataList和Repeater等数据控件是不在页面显示的……如果要查看是否是数据源的问题,一般情况下都要上对应的C#文件中查找Page_Load事件。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 4月13日笔记 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 好几天没有更新笔记了,惭愧,确实是遇到了一些比较麻烦的事情…… 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1,那个一直没有能够解决的DataList控件更新数据库数据的问题已经有解决了。也就是说,不管在cs文件中撰写了什么事件,那么,这个事件只要有用,是一定要被触发的。也就是说,要在 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 2,有关具体事件DataList1_ItemCommand, EditCommand, UpdateCommand事件,有些是可以在DataList控件的“事件”栏中双击出现的,有些则需要在代码窗口自行添加,不过只需要参照DataList1_ItemCommand事件,把事件名改下就可以了,参数用默认的,不用改。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 3,有关按钮的“CommandName”和事件名前面的**Command 之间的关系问题,二者应该对应,也就是说CommandName="edit",对应的也就是EditCommand,对于Update亦然。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 好像是这样的,如果二者不一致(比如说CommandName为"select"的在ItemCommand事件中,那么需要加入判断:if (e.CommandName=="select"); 也就是说,上面的例子中,如果不同名的话,加入判断条件即可,但是不要更改事件名(事件名是固定的?) 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 4,有关变量名是否区分大小写的问题e(_\!s{E":C#默认是大小写敏感的,但是如果使用的是引号调用数据库中的某个字段,则后者没有大小写的限制。比如: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com “DataBinder.Eval(Container.DataItem,"city")”和 浪漫烛光 www.langmanzg.com “DataBinder.Eval(Container.DataItem,"City")”都对。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 5,所谓的“new”方法看似罗嗦,实际上就是把对象?实例化。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 6,类型转换的问题: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com C#是一种所谓的强类型语言,第一点是不能进行隐式转换,更进一步的是不同类型中的转换,要区分是“类型转换”还是“内容转换”。前者可以用诸如(int)放在要转换的变量前面,但是要注意这种转换存在限制,能够使用 (int) 进行强类型转换的只能是数值类型了,例如 long、short、double等,不过进行这种转换时你需要考虑精度问题。 浪漫烛光 www.langmanzg.com 像string a=(int)3;则是行不通地…… 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 而要进行所谓的内容转换,必须使用Convert方法,比如说Convert.ToInt32 转换成整型,等等。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 另外,如果将空字符串转换成整型似乎会出现错误提示“输入字符串的格式不正确。”在本例中是初始值设置的问题,切记! 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 7,所谓“绑定数据源”,就是要在控件里添加一些其他的控件,用于显示数据表中的记录,注意和ASP相区别。也就是说,要在模板中(最常用的是ItemTemplate),引入数据表中的值,主要是用这个语句DataBinder.Eval(Container.DataItem,"pub_name") ,要熟悉。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 5月18日笔记 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 不知不觉间,已经过去了一个月了,前段时间做Access平台,一直没有看.net,前段时间又来任务了,突破一下;在公司现有OA系统的基础上进行改进。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1,有关在GridView中的AlternatingRowStyle的设置,可以先点击对应文件的“视图”页面上的小箭头,然后选择“自动套用格式”,从中选择一种,再进入源视图修改即可。这种数据列表样式交替行显示的功能,在.net中是很常见的。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 2,今天增加模块遇到了一个奇怪的问题,就是我用GridView来连接数据源,如果采用“选择数据源”的模式,则可以正常连接,但是如果采用如下代码: 浪漫烛光 www.langmanzg.com SqlConnection conn = new SqlConnection("server=(local);Initial Catalog=RATOOA;UID=sa;PWD=;Integrated Security=True"); 浪漫烛光 www.langmanzg.com SqlDataAdapter sda= new SqlDataAdapter("select * from Ms_MajCustomer order by C_MC_City,C_MC_County", conn); 浪漫烛光 www.langmanzg.com DataSet ds = new DataSet(); 浪漫烛光 www.langmanzg.com sda.Fill(ds,"Ms_MajCustomer"); 浪漫烛光 www.langmanzg.com DataTable dt = ds.Tables["Ms_MajCustomer"]; 浪漫烛光 www.langmanzg.com GridView1.DataKeyNames = new string[] { "C_MC_ID" }; 浪漫烛光 www.langmanzg.com GridView1.DataSource = dt; 浪漫烛光 www.langmanzg.com GridView1.DataBind(); 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 在页面载入时绑定数据源会很慢,然后最后跳{t-bHm"UH到登录界面,很奇怪。我感觉基本上就是和系统自定义的类有关。这个需要好好研究下,最终解决。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 【5月20日】 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1,今天用了第二种方法又可以了,不得而知。另外,如果采用选择数据源的模式(即定义DataSourceId)的方式,那么会导致在Add.aspx页面新增记录后List.aspx页面无法实时更新的问题,难道这就是所谓的“静态绑定”? 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 2,在JavaScript中打开窗体应该采用Window.open方法,原代码中的OpenWindow方法可能为自定义方法。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 3,在页面中某些类型控件可以直接引用的CSS样式,显然是按照类型定义的,比如说诸如 浪漫烛光 www.langmanzg.com INPUT.BS_Button 浪漫烛光 www.langmanzg.com { 浪漫烛光 www.langmanzg.com
border-rig |
||||
每当你几乎快被困难击倒,丧失斗志的时候,你就想想背后还有无数等你倒下捅刀子的SB,就充满了力量。
|
作者信息 | 主题: Visual Studio 2005 边学边用18481 | ||||
|
发表时间:
2010-6-18 15:39:28
特别提示:本帖子在 2010-6-18 16:06:47 由用户
白瑞德
编辑过
【6月18日】 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 有关OA平台的几点问题: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 首先,貌似使用了自定义的名字空间后,至少在同一页面内是无法再用系统默认的名字空间及控件了,这点值得探讨和商酌。关键问题似乎不在于控件,而是在于提交按钮也是自定义类中的控件,因此如果是系统默认控件,似乎会有问题。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 其次,在Transact SQL中,注意字符型变量要用单引号 ' ,而不能用双引号,如果要表示一个空字符串则要用四个单引号''''。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 要熟悉C#的定义结构,它是以事件为导向而非以也面为导向的,因此,在Page_Load事件中,载入页面的同时就要对从URL中返回到变量值进行赋值,比如说: 浪漫烛光 www.langmanzg.com string _KeyValue = this.Request.QueryString["KeyValue"]; 浪漫烛光 www.langmanzg.com string _RecNum = this.Request.QueryString["RecNum"]; 浪漫烛光 www.langmanzg.com string _ProvinceName = this.Request.QueryString["DDL_Province"]; 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com this.KeyValue.Text = _KeyValue; 浪漫烛光 www.langmanzg.com this.RecNum.Text = _RecNum; 浪漫烛光 www.langmanzg.com this.DDL_Province.Text = _ProvinceName; 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 3,最重要的一点,在Script文件夹下的各模块主要脚本,比如说我新建的MS_MajCustomer子文件夹下,有时候会出现新增记录后记录列表没有实时更新的问题,这个问题主要是在页面载入事件中,绑定数据源之前加入了 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com if (!IsPostBack) 浪漫烛光 www.langmanzg.com { 浪漫烛光 www.langmanzg.com Bind(); //自定义函数 浪漫烛光 www.langmanzg.com } 浪漫烛光 www.langmanzg.com
的判断,按理说不应该是这里的问题,但却偏偏发生了,不能不让人感到奇怪。 |
||||
每当你几乎快被困难击倒,丧失斗志的时候,你就想想背后还有无数等你倒下捅刀子的SB,就充满了力量。
|
新用户注册 返回首页 | ||||||||