GridView ASP.NET c中的动态按钮#

问题描述:

我在Asp.net中有一个网格视图。我想为特定的行生成按钮。 就像我有一个名为“状态”的列。如果状态是“接受”,则应在该特定行中生成一个按钮。 columnGridView ASP.NET c中的动态按钮#

可以在ASP.NET GridView使用TemplateField和有条件地设置Button知名度,像图所示:

<asp:GridView runat="server" AutoGenerateColumns="false"> 
    <Columns> 
     <asp:BoundField DataField="Status" HeaderText="Status" /> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:Button runat="server" Text="Accept" 
       Visible='<%# Eval("Status")=="Accept" %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

希望这会有所帮助。

+0

这个怎么样的做法? 但它没有按要求工作。 int count = GV_Borrorwer_Details.Rows.Count; 如果(计数> 0){ 如果 (e.Row.RowType!= DataControlRowType.DataRow) { 如果(e.Row.Cells [9]。文本== “接受”) { Button按钮= new Button(); button.Text =“返回”; button.ID + = 1; e.Row.Cells [13] .Controls.Add(button); } } } –

+0

C#背后的任何代码? –

+0

我有点困惑:什么不工作?问候, –

第一添加模板字段按钮这样

<asp:TemplateField HeaderText="status" ShowHeader="False"> 
      <ItemTemplate> 
       <asp:Button ID="btn" runat="server" CausesValidation="false" 
CommandName="Select" Text="button" /> 
      </ItemTemplate> 
     </asp:TemplateField> 

和代码隐藏

protected void grid_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      Button btn = (Button)e.Row.FindControl("btn"); 





      if (e.Row.Cells[1].Text == "Accept")//replace 1 by your column(status) index in gridview 
      { 

       btn.Visible = true; 
      } 

      else 
      { 

       btn.Visible = false; 

      } 

     } 
    } 

,并添加代码来此按钮,以便将其添加在

 protected void grid_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) 
    { 

    //code 
    }