这次有时间看了一下网上(http://www.cnblogs.com/Clingingboy/archive/2006/07/30/463471.html)的贴子,在此向其表示敬意!
文章标题是心得,其实未见得是什么重要的问题,呵呵,本人技术水平低,记下的也有可能是最基本的东西。不管怎么说,以备以后用到(不灵光的大脑)
1。关于RENDER方法中,作者推荐(很多人都这样说)用标记法
------------------------------
(1)AddStyleAttribute方法 为标签添加样式属性
(2)AddAttribute方法 为标签添加属性
(3)RenderBeginTag 开始写入标签头 如<table....>
(4)RenderEndTag 写入标签尾部,如</table>
----------------------------
输出控件,而不用HTML。其实就个人感觉来说,本人认为用HTML可能会更好一些,更直观一些。当然首先书写要符合一个规则,不要乱七八糟(呵呵,在说我自己)
2。关于视图状态中的三元符
以前对于三元符的功能很模糊,有时明白,有时又不明白,其实很简单的。特别是进行判断时很有用。这次记下来:(以下是在网上找的)
C#中只提供一种三元运算符"?:",这个运算符根据"?"左边的表达式的值来确定返回结果.
具体使用方式如下:
bool b=a>b?true:false;
int b=a>b?10:20;
string b=a>b?"真":"假";
下面是一个小范例:Class3.cs
-----------------------------------------------------------------
using System; namespace name1{ class Class3{ public static void Main(){ int a=10; int b=20; int e= a>b?30:40; bool t=a>b?true:false; string s=a>b?"真":"假"; Console.WriteLine("e的值是:{0}",e); Console.WriteLine("t的值是:{0}",t); Console.WriteLine("s的值是:{0}",s); Console.ReadLine(); } }---------------------------------------------------3.事件回发IPostBackEventHandler接口专门定义了处理回发事件的方法,说白了就是onclick事件,如果自定义控件需要处理回发事件,你就需要继承IPostBackEventHandler接口,然后实现接口的RaisePostBackEvent 方法,另外一个简单的方法就是直接继承Button控件就可以了.
RaisePostBackEvent方法用于处理窗体发送给服务器时引发的事件,方法中有一个参数eventArgument 表示要传递到事件处理程序的可选事件参数的 String
下面总结处理回发事件,必须要做的步骤
(1)继承并实现IPostBackEventHandler接口的RaisePostBackEvent方法
(2)为表单元素定义UniqueID,以与IPostBackEventHandler服务器控件的UniqueID相对应4。数据回发
要实现Change这样的数据回发事件,就要继承IPostBackDataHandler 接口.看看MSDN对此接口的定义
IPostBackDataHandler 接口
定义 ASP.NET 服务器控件为自动加载回发数据而必须实现的方法。
LoadPostData 方法 根据服务器控件的状态由于回发而发生更改做出判断是否调用RaisePostDataChangedEvent 方法,返回true则调用(就是旧值和新值不同的时候)
RaisePostDataChangedEvent 方法用于引发任何更改事件
postDataKey表示控件内部数据的关键值,postCollection表示所有传入名称值的集合,其采用索引的方式来访问
------------------------ IPostBackEventHandler接口和 IPostBackDataHandler 接口.
想到Button按钮就要想到IPostBackEventHandler接口,想要textbox,dropdownlist一些change事件则要想到IPostBackDataHandler 接口
-------------------------------------------------------------------
今天学习数据回发的例子弄了一小天(唉,自己比较笨)教程里讲的例子,只说明了如何处理回发事件。什么接口了什么的。但是当我把程序做完发现,事件根本不执行。无奈在网上搜来搜去:发现根本没有进行回发的操作。只好又找如何让页面回发。见下面的方法:CheckBox,TextBox,RadioButton,ListControl及其派生类 等
这些Control输出的Html元素都没有自动submit的能力,所以这些Control普通情况下是不会引发回传的,但是为了方便用户,.net Framework在上面暴露了一个属性叫AutoPostBack,一旦这个属性为true,就表示这些Control具备了引发回传的能力,具体怎么实现回传呢,还是依赖于上面介绍的两段脚本。
当AutoPostBack为true,CauseValidation为true的时候就注册 WebForm_DoPostBackWithOptions. 当AutoPostBack为true,CasuseValidataion为false的时候就注册 __doPostBack函数,同时在AutoPostBack属性为true的时候,为了防止性能问题,一般注册的脚本都用setTimeout(函数名,0)包起来,这样可以认为是一个模拟的异步调用(事实JavaScript是单线程的,这样的调用会自动进入调用队列,等待执行,不会阻塞现在的调用)。另外:在输入回发脚本时,必须给控件指明HTML标记NAME,否则可以回发,但不会执行处理事件。