【问题标题】:Getting and error I cannot fix when trying to add a button column尝试添加按钮列时出现错误我无法修复
【发布时间】:2017-09-05 21:10:06
【问题描述】:

当我尝试将按钮列添加到我的表格时,我无法修复我不断收到的错误。错误是:参数 1:无法从 'System.Windows.Forms.DataGridViewButtonColumn' 转换为 'System.Web.UI.WebControls.DataControlField'

基本上是说我不能在行中使用局部变量'btn'

        gridViewStudent.Columns.Add(btn);

在以下代码中:

        gridViewStudent.DataSource = table;
        gridViewStudent.DataBind();

        DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
        gridViewStudent.Columns.Add(btn);
        btn.HeaderText = "Click Data";
        btn.Text = "Click Here";
        btn.Name = "btn";
        btn.UseColumnTextForButtonValue = true;

【问题讨论】:

  • 正如错误试图告诉你的那样,你试图混合两个不同的命名空间。不要那样做。
  • 是什么让您认为可以将Windows.Forms 控件添加到 ASP.NET 表单?
  • 在尝试添加按钮列时,我正在尝试遵循我在此处在线找到的一些其他代码,它们似乎都遵循相同的结构,所以我不确定有什么不同。我需要发布更多代码吗?

标签: c# asp.net button datagridview datagridviewbuttoncolumn


【解决方案1】:

DataGridViewButtonColumn 旨在与 WinForms 的 DataGridView 控件一起使用。在 Web 表单上下文中,您可以改用 ButtonField

var btn = new ButtonField();
btn.HeaderText = "Click Data";
btn.Text = "Click Here";

gridViewStudent.Columns.Add(btn);

由于ButtonField 控件不存在NameUseColumnTextForButtonValue 属性,因此它们的分配被省略了。

或者,您可以在 ASPX 页面的 Columns 部分中使用准备好的 asp:ButtonField

<asp:GridView runat="server" ID="gridViewStudent" ... />
    <Columns>
        <%-- other fields --%>
        <asp:ButtonField HeaderText="Click Data" Text="Click Here" />
    </Columns>
</asp:GridView>

类似问题:

Programmatically Add ButtonColumn to GridView From DataTable

【讨论】:

  • 我已经做出了这个改变,现在构建成功了,但是按钮和列标题仍然没有出现。这段代码可能有一个特定的地方吗?我现在数据绑定数据表后就有了。
  • 这可能更适合创建后续问题。在该新问题上发布您固定的 gridview 标记和代码,并放置指向该问题的链接以查看您的努力。
猜你喜欢
  • 2011-11-21
  • 2016-04-16
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
  • 2018-05-25
  • 2013-10-18
相关资源
最近更新 更多