在显示和编辑模式下自定义列的外观
默认情况下,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)