我在使用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()
我也试过了folling但是返回了以下错误:'New'不能用于声明为'MustInherit'的类。
GV_DataByGroupAct.DataSource = dt_AllGroupsSetUp2
Dim buttonColumn As New DataControlField
GV_DataByGroupAct.Columns.Add(buttonColumn)
GV_DataByGroupAct.DataBind()
有什么想法吗?
由于
答案 0 :(得分:4)
在后面的代码中使用this之前将数据绑定到GridView(但它是c#):
GV_DataByGroupAct.Columns.Add(new ButtonField() { Text = "Button" });
或者您可以使用按钮字段
准备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>
绑定后你会得到这个结果:
答案 1 :(得分:1)
我真的很复杂。谢谢Jenda,准备网格视图更容易。以下是有帮助的人:
<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>
代码:
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
GV_DataByGroupAct.DataBind()
答案 2 :(得分:0)
DataGridViewButtonColumn旨在用于DataGridView控件。
使用GridView,您可以使用ButtonField。