以编程方式将 ButtonColumn 从 DataTable 添加到 GridView

Sel*_*rac 3 vb.net asp.net datatable gridview

我在 GridView 中添加带有按钮的列时遇到问题。

正如您从下面的代码中看到的,GridView 的数据源是 DataTable。我需要使用按钮向表中添加一个附加列。

从下面的代码中,我收到一条错误消息:

“System.Windows.Forms.DataGridViewButtonColumn”类型的值无法转换为“System.Web.UI.WebControls.DataControlField”。

    Dim dt_AllGroupsSetUp2 As New DataTable()
    dt_AllGroupsSetUp2.Columns.Add("Name", Type.GetType("System.String"))
    dt_AllGroupsSetUp2.Columns.Add("Age", Type.GetType("System.String"))
    dt_AllGroupsSetUp2.Columns.Add("Hight", Type.GetType("System.String"))

    For i As Integer = 0 To 7
        dt_AllGroupsSetUp2.Rows.Add()
        dt_AllGroupsSetUp2.Rows(i)(0) = "John"
        dt_AllGroupsSetUp2.Rows(i)(1) = 10
        dt_AllGroupsSetUp2.Rows(i)(2) = 70
    Next

    GV_DataByGroupAct.DataSource = dt_AllGroupsSetUp2
    Dim buttonColumn As New DataGridViewButtonColumn
    buttonColumn.Name = "Button"
    GV_DataByGroupAct.Columns.Add(buttonColumn)
    GV_DataByGroupAct.DataBind()
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下方法,但返回了以下错误:“New”不能用于声明为“MustInherit”的类。

    GV_DataByGroupAct.DataSource = dt_AllGroupsSetUp2
    Dim buttonColumn As New DataControlField
    GV_DataByGroupAct.Columns.Add(buttonColumn)
    GV_DataByGroupAct.DataBind()
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢

Jen*_*cek 5

在后面的代码中,在将数据绑定到 GridView 之前使用它(但它是 C#):

GV_DataByGroupAct.Columns.Add(new ButtonField() { Text = "Button" });
Run Code Online (Sandbox Code Playgroud)

或者您可以准备带有按钮字段的 GridView

    <asp:GridView ID="GV_DataByGroupAct" runat="server" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundField DataField="Name" HeaderText="Name" />
            <asp:BoundField DataField="Age" HeaderText="Age" />
            <asp:BoundField DataField="Hight" HeaderText="Hight" />
            <asp:ButtonField Text="Button" />
        </Columns>
    </asp:GridView>
Run Code Online (Sandbox Code Playgroud)

绑定后你会得到这样的结果:

在此输入图像描述