2012-03-01 54 views
0

我有一個通過一個帶過程的程序加載的datagridview。它有一個ID列,我想隱藏它,但仍然可以訪問它的值。我設置的DataKeyNames和我有一個方法asp .net如何隱藏gridview列的TemplateField,但仍然可以訪問它的值

 protected void grdTime_OnDataBound(object sender,EventArgs e) 
    { 
     grdTime.Columns[1].Visible = false; 
    } 

而我試圖隱藏此列,但我得到了下面的錯誤。如果我刪除它的工作方法內的行。這是錯誤。 指數超出範圍。必須是非負數且小於集合的大小。 參數名稱:索引

回答

0

在該方法嘗試這個代碼,然後檢查..

grdTime.Columns [0]。可見= FALSE;

0

隱藏Row_Created事件

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     e.Row.Cells[1].CssClass = "hiddencol"; 
     //e.Row.Cells[2].CssClass = "hiddencol"; 
    } 
    else if (e.Row.RowType == DataControlRowType.Header) 
    { 
     e.Row.Cells[1].CssClass = "hiddencol"; 
     //e.Row.Cells[2].CssClass = "hiddencol"; 
    } 
} 

這裏hiddencol列是一個CSS類

.hiddencol 
{ 
    display:none; 
} 
在上面的代碼

我躲在我我網格的第二列

0

如果」已經將GridView的AutoGenerateColumns設置爲true(默認),Columns-Collection是空的。下面應該有幫助:

1)

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
     e.Row.Cells[0].Visible = false; 
} 

2)

foreach (TableRow row in GridView1.Controls[0].Controls) 
{ 
    row.Cells[0].Visible = false; 
} 
0

你可以使用這樣的gridview的標籤.aspx頁面中

<Columns> 

     <asp:BoundField HeaderText="Merchandise Id" DataField="MerchandiseId" Visible="false" /></columns> 
相關問題