关于DataGrid Web控件的热门问题__连载之二

王朝other·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

在显示和编辑模式下自定义列的外观

默认情况下,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=”Checkbox2”

ID=”checkbox2”

Checked=’<%#DataBinder.Eval(Container,”Dataltem.Discontinued”)%>’>

</asp:Checkbox>

</ItemTemplate>

<EditltemTemplate>

<asp:Checkbox

runat=”server”name=”Checkbox2”ID=”Checkbox2”

Checked=’<%#DataBinder.Eval(Container,”DataItem.Discontinued”)%>’>

</asp:Checkbox>

</EditltemTemplate>

</asp:TEmplateColumn>

</Columns>

注意:如果在编辑模板中使用一个CheckBox,要意识到在运行时,表项单元格实际上还包含了除了CheckBox自身以外的几个LiteralControl控件,任何时候你知道了你想要的值的控件的ID,使用FindControl方法来创建对它的引用,而不是使用它在单元格集合或者控件集合的特定的索引值。

CheckBox cb;

cb=(CheckBox)e.Item.FindControl(“CheckBox2”);

在VS中。可以使用DataGrid的属性生成器来创建模板列,并使用模板编辑器来具体设定它的外观,在属性窗口页的列选择中,选中该列并单击底部的“将该列转化为模板列”,关闭属性窗口,右击该DataGrid并选择“编辑模板”,然后,你就可以从工具箱拖拽控件到模板中,也可以增加静态文本。

(unfinished)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航