天天看點

DataGrid Web Control 連載之三

    預設情況下,DataGrid用預設大小的列顯示資料。當你将行設定為編輯模式時,該控件将所有可編輯資料顯示在TextBox中,不管是什麼類型的資料。

    如果你想自定義列的内容,則将列設定為模闆列,模闆列的工作方式與Dataist或者Repeater控件中的項模闆類似。差别之處僅在于你定義的是列的外觀不是行的外觀。

定義模闆列的時候,可以具體設定下面這些模闆類型:

①   使用項模闆來自定義資料的一般外觀。

②   将行設為編輯模式時使用編輯項模闆來具體設定列的顯示。它允許你具體設定一個控件而不是編輯模式下預設的TextBox.

③   頭模闆和腳模闆允許你分别自定義控件的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并選擇“編輯模闆”,然後,你就可以從工具箱拖拽控件到模闆中,也可以增加靜态文本。

本文轉自 august 51CTO部落格,原文連結:http://blog.51cto.com/august/6912,如需轉載請自行聯系原作者

繼續閱讀