2012-11-08 42 views
0

我有一個gridview,我想禁用最後一個5行的它,我該怎麼辦呢??下面的代碼是不工作在GridView禁用最後行

protected void gview_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
      e.Row.Enabled = e.Row.RowIndex <= 5; //for disabling last 4 rows 
    } 
    } 
+0

您也可以通過將行設置爲只讀「 – riti

回答

1
protected void gview_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    GridView grid = sender as GridView; 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     e.Row.Enabled = grid.Rows.Count - e.Row.RowIndex > 4; 
    } 
} 

編輯:假設你的DataSourceDataTable,你可以做這樣的事情:

protected void gview_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     e.Row.Enabled = dataTable.Rows.Count - e.Row.RowIndex > 4; 
    } 
} 
+0

+1完美答案! –

+1

爲什麼你只能禁用行。訂單變更時,以及行必須再次啓用時該怎麼辦? 'e.Row.Enabled = grid.Rows.Count - e.Row.RowIndex> 4' –

+0

不錯的建議謝謝! –

0

我假設你正在bnding數據集作爲datascurce到GridView,所以在RowDataBound綁定添加以下代碼:

public static int count=0; 
protected void grdview1_RowDataBound() 
{ 
    for(int i=0;i< ds.table[0].rows.count;i++) 
    { 
     count++; 
     if(count>(ds.table[0].rows.count-5)) 
     { 
      e.Row.Enabled = false; 
     } 
    } 
}