在顯示和編輯模式下自定義列的外觀
默認情況下,datagrid用預設大小的列顯示數據。當你將行設置為編輯模式時,該控件將所有可編輯數據顯示在textbox中,不管是什么類型的數據。
如果你想自定義列的內容,則將列設定為模板列,模板列的工作方式與dataist或者repeater控件中的項模板類似。差別之處僅在于你定義的是列的外觀不是行的外觀。
定義模板列的時候,可以具體設定下面這些模板類型:
① 使用項模板來自定義數據的一般外觀。
② 將行設為編輯模式時使用編輯項模板來具體設定列的顯示。它允許你具體設置一個控件而不是編輯模式下默認的textbox.
③ header模板和footer模板允許你分別自定義控件的header和footer.(只有將datagrid的showfoot屬性設為true,才會顯示表的尾部。)
下面的例子是一個顯示布爾數據的模板列的html語法。項模板和編輯模板都使用一個checkbox來顯示值。項模板中的checkbox是不可用的,使用者就不能勾選它,而在編輯項模板中checkbox好似允許用戶選擇的。
<columns>
<asp:templatecolumn headertext=”discontinued”>
<itemtemplate>
<asp:checkbox runat =”server”enabled=false name=”checkbox
id=”checkbox
checked=’<%#databinder.eval(container,”dataltem.discontinued”)%>’>
</asp:checkbox>
</itemtemplate>
<editltemtemplate>
<asp:checkbox
runat=”server”name=”checkbox
checked=’<%#databinder.eval(container,”dataitem.discontinued”)%>’>
</asp:checkbox>
</editltemtemplate>
</asp:templatecolumn>
</columns>
注意:如果在編輯模板中使用一個checkbox,要意識到在運行時,表項單元格實際上還包含了除了checkbox自身以外的幾個literalcontrol控件,任何時候你知道了你想要的值的控件的id,使用findcontrol方法來創建對它的引用,而不是使用它在單元格集合或者控件集合的特定的索引值。
checkbox cb;
cb=(checkbox)e.item.findcontrol(“checkbox
(unfinished)
新聞熱點
疑難解答