【问题标题】:Disable last rows in a gridview禁用gridview中的最后一行
【发布时间】:2012-11-08 09:20:34
【问题描述】:

我有一个 gridview,我想禁用它的最后 5 行我该怎么做?下面的代码不起作用

  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 
    }
  }

【问题讨论】:

  • 您也可以通过将行设置为“只读”来做到这一点

标签: c# asp.net gridview


【解决方案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;
    }
}

【讨论】:

  • 为什么只禁用行。当订单更改并且必须再次启用行时怎么办? e.Row.Enabled=grid.Rows.Count - e.Row.RowIndex &gt; 4
  • @FSX 当我喜欢你所说的我的整个 gridview 被禁用的任何想法??
  • @Newbie,网格中有多少行?如果 Total Rows 为 4 或以下,那么您的整个 Grid 将根据您在问题中的要求被禁用。
  • 有 10 行,当我调试 grid.Rows.Count 为 0 并且 e.Row.RowIndex 为 0 时
  • @Newbie,好的,试试你的实际 DataSource Count 而不是 grid.Rows.Count。请参阅我编辑的答案。
【解决方案2】:

我假设您正在将数据集作为 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;
      }  
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    相关资源
    最近更新 更多