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

时间:2016-03-05 19:19:23

标签: asp.net gridview

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

2 个答案:

答案 0 :(得分:0)

您可以在ASP.NET TemplateField中使用GridView并有条件地设置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>

希望这会有所帮助。

答案 1 :(得分:0)

首先添加像这样的模板字段按钮

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

和codebehind

   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
   }