2008-11-07 41 views
1

我將一個數據表綁定到一個gridview控件,當我格式化每一列時,我需要根據該列是否具有特定的自定義屬性來格式化數據。在這種情況下,列可表示:使用用於綁定到Gridview的元數據的自定義數據表?

  • 的文本框(在這種情況下,我只顯示從在GridView文本框中的文本),
  • 一個複選框(在這種情況下我顯示「檢查」或根據列的基礎數據值是1還是0,「未選中」),
  • 單選按鈕(在這種情況下,我根據列的基礎數據值是1還是0來顯示「開」或「關」)。

問題是列數據類型是當前綁定到網格的無類型數據表中的所有字符串。綁定使用autoGenerateColumns。所以:

  1. 如何標記一列作爲收音機,文本框或複選框?
  2. 如何在綁定到網格上顯示「Checked/Unchecked」或「On/Off」文本時訪問該「標記」?

我希望我問這個權利。唷!

回答

0

執行此操作的最佳方法是關閉列的自動生成,然後使用TemplateField替換您關心的列的BoundFields。有一個tutorial on ASP.NET可以填寫更多的細節。

0

我可以用templatefields;我不知道如何將元數據添加到我可以在GridView數據綁定期間讀取的數據表列中。例如。當我綁定到具有複選框數據的列時,我想在列中放置單詞「Checked」或「Unchecked」,但我需要以某種方式註釋我的數據表,使其包含列數據類型。

2

Okay-我添加擴展屬性到DataTable列與適當的數據類型和在從1..numColumns循環檢查它們GridView的RowDataBound事件:

myProperty的= e.Row.DataItem.dataview。 table.columns(i).extendedproperties(「TYPE」)

並根據類型設置值(e.Row.Cells(i).Text)。