绑定语法javascript
第一种: <%= str%>html
例子:'<%= DateTime.Now %>'
适用条件:用于非服务器端控件的属性
第二种: <%= str%>
从出现的位置来看,除了能出如今第一种代码块出现的全部位置外,他还能够出如今服务器端控件的属性中。java
从绑定的变量类型上看,他还能够配合ASP.NET的数据绑定类控件,来绑定上述的第四种“变量”类型,就是数据集合(DropDownList,DataList,DataGrid,ListBox这些是数据绑定类控件,数据集合包括ArrayList(数组),Hashtable(哈稀表,DataView(数据视图),DataReader等)。数组
从用法上看,在前台代码中除了在相应位置写上<%# %>外,在后台代码中,还须要使用DataBind()方法服务器
通常来讲,在前台代码的三种位置可能会用到(绑定)后台变量:函数
属性值绑定必须知足属性值约束:spa
属性值不能是常量。好比服务器控件Runat必须是"server"3d
属性值数据类型必须正确code
第二种 javascript函数变量的绑定server
通常只要绑定的后台变量和JavaScript中数据类型兼容便可
第三种 内容绑定
服务器控件内容的绑定
(1)约束型控件:这类控件要求它的开始标签和结束标签中只能包含指定的子控件,所以若是在这里出现代码块,将编译错误。例如:
<asp:DataList runat="server"></asp:DataList>,在它之间,要求必须嵌套<ItemTemplate></ItemTemplate>。
(2)非嵌套类控件:这类控件,不容许在内部嵌套其余控件或标签,只能是常量字符串,它会将开始标签和结束标签中常量字符串内容做为他的属性。例如上面提到的TextBox,它会将标签间内容做为它的Text属性值。
(3)嵌套类控件:这类控件,能够嵌套其余任意控件,也能够包含字符串,所以能够正常显示绑定代码块所表示的字符串内容。例如Label控件、Panel等。
(4)数据绑定类控件:这类控件是ASP.NET提供的服务器端控件,除了能够绑定普通的变量类型,也能够绑定一个数据集合(只能采起下面的第二种方式实现)。
后台变量条件
(1)变量修饰符要求。变量是静态或者实例字段都可。对于代码隐藏模式的ASP.NET,以上的所述的变量必须为public或protected类型(由于是基类与派生类的关系),private或者internal都不行,而代码嵌入模式则任何修饰符的变量都可访问(一个类内部的关系)。
(2)变量类型要求。因为前台属性通常是字符串类型,而JavaScript基本类型也就是字符串型、数字型、布尔型,所以对应的变量应该也是这几种方式,其他类型若是不被支持(如复杂类型、数组、引用类型等),前台获取的就是调用了变量的ToString()方法所获得的字符串。所以,在绑定时,要根据状况看是否能进行隐式类型转换,必要时还要用相关函数来强制转换,以保证前台能够得到正确的值。固然,对于数据绑定类控件,它的有些属性能够为数据集合,但这时的绑定只能经过下面第二种方式才被支持。
1.绑定样式
前台绑定片断
<span style='<%#ConvertColor(Eval("PA_STATUS").ToString())%>'><%#Eval("PA_STATUS")%></span></div></td>
后台方法片断
protected string ConvertColor(string status) { int value = int.Parse(status); switch (value) { case 0: return "color:black"; case 1: return "color:green"; case 2: return "color:red"; default: return ""; } }
2.绑定后台定义的方法
前台绑定片断
<td><div><span ><%#ConvertStatus(Eval("PA_STATUS").ToString())%></span></div></td>
后台定义的方法
protected string ConvertStatus(string status) { int value = int.Parse(status); switch (value) { case 0: return "待处理"; case 1: return "处理成功"; case 2: return "处理失败"; default: return ""; } }
如何绑定多个变量
<asp:LinkButton ID="lbtnID" runat="server" CausesValidation="False" CommandName="Status" CommandArgument='<%#Eval("ID")+","+Eval("Status")+","+Eval("TypeID")%>' Style="color: #0063dc;" ><span ><%#Eval("Status").ToString() == "0" ? "未审核" : "撤销审核"%></span></asp:LinkButton>
资料来源:
http://www.cnblogs.com/lerit/archive/2010/10/22/1858007.html