當前位置:開發者網絡 >> 技術教程 >> .NET教程 >> 數據庫應用 >> 內容
精彩推薦
分類最新教程
分類熱點教程
    
關於DataGrid Web控件的熱門問題__連載之二
作者:未知
日期:2005-04-11
人氣:
投稿:(轉貼)
來源:未知
字體:
收藏:加入瀏覽器收藏
以下正文:

在顯示和編輯模式下自定義列的外觀

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

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

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

1   使用項模板來自定義數據的一般外觀。

2   將行設為編輯模式時使用編輯項模板來具體設定列的顯示。它允許你具體設置一個控件而不是編輯模式下默認的TextBox.

3   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)

相關文章: