綁定語法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