【问题标题】:Adding Control to Gridview Cell将控件添加到 Gridview 单元格
【发布时间】:2013-10-29 13:25:33
【问题描述】:

我想在特定条件下在 GridView 单元格上添加一个按钮。 我在 RowDatabound 事件中做了以下操作

if( i==0)
{
   Button btn= new Button();
   btn.Text = "view more";        
   e.Row.Cells[7].Controls.Add(btn);
}

执行此操作时,绑定的单元格中的文本将丢失,仅显示按钮。 我需要按钮和单元格文本已经存在。

谁能帮我做这件事?

【问题讨论】:

    标签: c# asp.net gridview dynamic-controls rowdatabound


    【解决方案1】:

    当您将控件添加到单元格中时,它会胜过单元格中的文本,并且只想显示控件。

    但是,您可以同时拥有文本和按钮,同时将它们分开。为此,您需要以标签的形式添加另一个控件:

    Label myLabel = new Label();
    myLabel.Text = e.Row.Cells[7].Text; //might want to add a space on the end of the Text
    e.Row.Cells[7].Controls.Add(myLabel);
    
    LinkButton myLinkButton = new LinkButton();
    myLinkButton.Text = "view more";
    e.Row.Cells[7].Controls.Add(myLinkButton);
    

    【讨论】:

      【解决方案2】:

      这是一种解决方法,请检查它是否对您有帮助:

      如果您的要求可行,您可以将现有的 BoundColumn 转换为 Linkbuton

      if( i==0)
      {
          LinkButton lnkbtn = new LinkButton();
          lnkbtn.Text = e.Row.Cells[7].Text;
         // Create a command button and link it to your id    
         // lnkbtn.CommandArgument = e.Row.Cells[0].Text; --Your Id 
         // lnkbtn.CommandName = "NumClick";
         // btn.Text = "view more";        
          e.Row.Cells[7].Controls.Add(lnkbtn);
      }
      

      【讨论】:

      • 是否可以保留文本并添加控件?
      • @SandraDsouza 你能详细说明一下保留文本和控制吗?
      • 我想将链接按钮文本设为“查看更多”。但是当我这样做时,单元格 [7] 中的文本会丢失。我也想要那个文本
      • @Sandra 请检查更新的答案,根据我的理解,您可以像上面的 cmets 一样创建一个命令按钮,或者如果您想要两个按钮,则直接在 aspx 页面上创建这些按钮并制作那些 viewmore 按钮仅适用于 RowDatabound 事件中的选定行。
      【解决方案3】:

      您必须在每次回发时重新创建所有动态控件。但是RowDataBound 仅在网格获得数据绑定时才会执行。所以这不是正确的方法。

      如果这只是一个按钮,您应该以声明方式将其添加到 TemplateField 中的 aspx。然后你可以在RowDataBound切换可见性。

      Tutorial 12: Using TemplateFields in the GridView Control

       Button btn = (Button)e.Row.FindControl("ButtonID");
       btn.Visible = i==0;
      

      您可以为您的“查看更多”逻辑处理ButtonClick 事件。

      【讨论】:

      • 我有自动生成的列=true
      • @SandraDsouza:然后改变它:)
      猜你喜欢
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多