我怎么能把一列按钮在一个ASP GridView

本文关键字:一个 ASP GridView 按钮 怎么能 一列 | 更新日期: 2023-09-27 18:05:20

我对ASP很陌生。Net,我碰到了一点瓶颈。我将我的GridView绑定到一个TableAdapter——那部分工作得很好——我想添加一个包含按钮的列,它们都有相同的文本。

这是我的aspx的一个片段,创建GridView:

   <asp:GridView ID="LSResultsGrid" runat="server" CellPadding="3" CellSpacing="5">
   </asp:GridView>

这是我在c#代码中要做的:

    LSResultsAdapter = new LSResultsTableAdapter();
    LSResultsAdapter.CreateQualificationSamples(QualID, 0);
    LSResultsGrid.DataSource = LSResultsAdapter.GetLSSampleData(1);
    Button b = new Button();
    b.Text = "Show";
    DataColumn col = new DataColumn("Reps", typeof(Button));
    col.DefaultValue = b;
    var lsResultsTable = ((QCServer.HVIMillData.LSResultsDataTable)LSResultsGrid.DataSource);
    lsResultsTable.Columns.Add(col);
    LSResultsGrid.DataBind();

如果我从dataccolumn构造函数中删除"typeof(Button)"参数,那么我的表就会显示新列——但是按钮上的文本是"System.Web.UI.WebControls.Button";如果我将参数保留为如下所示,则该列根本不会出现(不会抛出异常)。

谢谢任何能帮忙的人。

我怎么能把一列按钮在一个ASP GridView

有几种方法可以在gridview中添加按钮。你的方法是有效的,只要把col.DefaultValue = b;改为col.DefaultValue = b.Text;,但这对初学者来说是一个困难的方法。

有几个简单的方法可以在标记中完成:在gridview中你可以添加:类型1:

<Columns>
<asp:CommandField ShowSelectButton="True" SelectText="Show" />
</Columns>
2型:

<Columns>
<asp:TemplateField>
<HeaderTemplate> My Action
</HeaderTemplate>
<ItemTemplate>
<asp:Button ID="showbtn" runat="server" text="Show"  CommandArgument='<%#Eval("Reps")%>' OnClick="showbtn_Click" />
</ItemTemplate>
</asp:TemplateField>

使用第二种类型的按钮,构建一个方法来匹配OnClick="showbtn_Click",当按钮被点击时将执行您所需的操作。与第一种方法相同。

这里是第三种类型,如果你真的必须从代码后面做,将按钮字段添加到网格中,而不是数据表:

    ButtonField col = new ButtonField();
    col.ButtonType = ButtonType.Button;
    col.DataTextField = ("Reps"); //or whatever bound column you want to show.
    LSResultsGrid.Columns.Add(col);

希望这对你有帮助!