【问题标题】:Gridview changing text in a button columnGridview 更改按钮列中的文本
【发布时间】:2012-08-05 11:59:01
【问题描述】:

我正在使用 gridview 控件在 asp.net 中工作。我有一个动态创建的按钮列:

            ButtonField bfSelect = new ButtonField();
            bfSelect.HeaderText = "View";
            bfSelect.ButtonType = ButtonType.Link;
            bfSelect.CommandName = "View";
            bfSelect.Text = "View";

            grdAttachments.Columns.Add(bfSelect);

按钮上的文本对于每一行都是相同的。我想知道是否有任何方法可以根据条件使不同行的文本有所不同。当我尝试查看特定行的 text 属性时,它是空白的,如果我尝试设置它,它不会改变。

提前致谢。

鲍勃

【问题讨论】:

    标签: asp.net gridview dynamic buttonfield


    【解决方案1】:

    RowDataBound 事件中您可以检查当前行。例如:

    String text = ((Label)e.Row.FindControl("aLabel")).Text;
    if(text == "Yes")
    {
        ((LinkButton)e.Row.FindControl("bfSelect").Text = "Good to go!";
    } 
    

    为此,您还需要将按钮的 ID 设置为 bfSelect。

    Grz,克里斯。

    【讨论】:

    • 我正在尝试这个确切的代码,当我尝试输入 .Text 时,不会弹出选项框。如果我还是写出来,它给我的错误是“System.Web.UI.Control”不包含“文本”的定义。
    【解决方案2】:

    有几种方法可以做到这一点,我建议您更改 RowDataBind 事件中的值。

    这是手写的,所以可能有错别字..

    protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
      if (e.Row .RowType == DataControlRowType .DataRow )
      {
        Button button = (Button)e.Row.Cells[0].Controls[0];
        button.Text = "Your New Value";
      }
    }
    

    【讨论】:

      【解决方案3】:

      最好是用 Javascript 编辑:[如果你不使用 ajax。]

      $("#GridView1 tr td a").html("Custom_Delete_Text");
      $("#GridView1 tr td a").addClass("another class you wish");
      

      【讨论】:

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