Получение и ошибка не могу исправить при попытке добавить столбец кнопки

У меня проблемы с исправлением ошибки, которую я получаю, когда пытаюсь добавить столбец кнопки в свою таблицу. Ошибка: Аргумент 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;

1 ответ

Решение

DataGridViewButtonColumn предназначен для использования с WinForms DataGridView контроль. В контексте веб-форм вы можете использовать ButtonField вместо:

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

gridViewStudent.Columns.Add(btn);

Так как нет Name а также UseColumnTextForButtonValue свойства для ButtonField контроль, их назначения просто опущены.

В качестве альтернативы вы можете использовать подготовленный asp:ButtonField внутри Columns раздел на странице ASPX:

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

Аналогичная проблема:

Программно добавить ButtonColumn в GridView из DataTable

Другие вопросы по тегам