3 回答

TA貢獻1776條經驗 獲得超12個贊
GridView.Columns.Count當GridView的AutoGenerateColumns屬性設置為時,它將始終為0 true(默認值為true)。
您可以顯式聲明列并將AutoGenerateColumns屬性設置為false,也可以在后面的代碼中使用它:
GridView.Rows[0].Cells.Count
一旦綁定了GridView數據即可獲取列數,或者這樣:
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[index].Visible = false;
}
使用GridView的RowDataBound事件將列設置為不可見。

TA貢獻1829條經驗 獲得超7個贊
您可以通過查詢datacontrolfield集合以獲取所需的列標題文本并將其可見性設置為true來隱藏特定的列。
((DataControlField)gridView.Columns
.Cast<DataControlField>()
.Where(fld => (fld.HeaderText == "Title"))
.SingleOrDefault()).Visible = false;

TA貢獻1851條經驗 獲得超5個贊
我看到的一些答案說明了如何使單元格的內容不可見,而不是如何隱藏整個列,這是我想要做的。
如果您有AutoGenerateColumns = "false"并且實際上BoundField要用于要隱藏的列,則Bala的答案很流暢。但是,如果您使用TemplateField該列,則可以處理該DataBound事件并執行以下操作:
protected void gridView_DataBound(object sender, EventArgs e)
{
const int countriesColumnIndex = 4;
if (someCondition == true)
{
// Hide the Countries column
this.gridView.Columns[countriesColumnIndex].Visible = false;
}
}
這可能不是OP所尋找的,但這是我發現自己問同樣的問題時所尋找的解決方案。
- 3 回答
- 0 關注
- 640 瀏覽
添加回答
舉報