.net的Gridview如何根据数据的不同,显示不同的按钮?

GridView绑定了数据源之后,比如数据的某列是0或者1,如何根据0,1的不同,去设置GridView里面的按钮可用和不可用?如果实在不能这样做,那有什么简单的方法代替??谢谢!

阅读 3.7k
2 个回答

在gridview的事件中有一个行数据绑定事件,好像叫这个RowDataBound事件(你自己找找在确认一下),这个是绑定gridview的每一行数据时发生的,这时你就可以对每一行进行判断了。
例如:

  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
            if (((button)e.Row.Cells[5].Controls[0]).Text="0")
            {
                ((button)e.Row.Cells[5].Controls[0]).Enable = false;
            }
            else
            {
                ((button)e.Row.Cells[5].Controls[0]).Enable = true;
            }
            //上面这个判断可以用一个三目表达式一次搞定
    }

现在做这样的行数据已经不提倡这样做了,应该用js+html去动态生成,这样扩展性会比较高,样式也比较灵活。

这是我写的用来实现的一个方法。

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                // Display the company name in italics.
                DateTime nowdate = DateTime.Now;
                DateTime shouldreturndate = Convert.ToDateTime(e.Row.Cells[4].Text);

                e.Row.Cells[5].Enabled = DateTime.Compare(nowdate, shouldreturndate) < 0;

            }
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进