Gridview的第10列是ButtonField列,现在想根据页面传递的值来设置该按钮的commandName,要怎么设置呢?

解决方案 »

  1.   

    我在GridView1_RowDataBound事件里可以设置e.Row.Cells[9].Enabled = false;怎么就取不到button的commandname呢?
      

  2.   

    可以用 e.Row.Cells[9].Controls[0]访问到按钮不过修改Button的CommandName本身来说就是一件很奇怪的事情
      

  3.   

    Controls[0]是可以访问到按钮,但是还是没办法设置CommandName啊我有2种状态,不同状态,用户按同一列里的按钮是有不同的处理的,这不就需要改CommandName吗?同时为了让用户也明白,所以我就想把按钮的文本也修改了。
      

  4.   

    我找了个变通的方法,就是做成模板列,然后往模板列里放Button,再用以下代码来达到目的:    protected void GridView1_DataBound(object sender, EventArgs e)
        {
            if (state_ddl.Text == "报修中")
            {
                foreach (GridViewRow gvr in GridView1.Rows)
                {
                    Button btn = (Button)gvr.FindControl("Button1");
                    btn.Text = "接单";
                    btn.CommandName = "接单";
                }
            }
            else
            {
                foreach (GridViewRow gvr in GridView1.Rows)
                {
                    Button btn = (Button)gvr.FindControl("Button1");
                    btn.Text = "修毕";
                    btn.CommandName = "修毕";
                }
            }
        }
      

  5.   

    一楼的问题解决了吗?我也遇到了同样的问题 
    ImageButton ib = (ImageButton)GridView1.TemplateControl.FindControl("ImageButton1");
            ib.CommandName = "fff";报错。