【问题标题】:Boolean DataColumn state not editableBoolean DataColumn 状态不可编辑
【发布时间】:2018-06-01 18:04:41
【问题描述】:

然后我正在从 SQL 数据读取器填充数据表..

我在我的数据表中创建了一个值为 boolean(checkbox) 的数据列:

DataTable cDataTable= new DataTable();

DataColumn a = new DataColumn("Select", typeof(bool));

cDataTable.Columns.Add(a);

这将复选框添加到每一行,但该复选框不可编辑

然后将此 DataTable 附加到 ASP GridView:

gridView.DataSource = cDataTable;

我试过了

a.ReadOnly = false;

但是这也不起作用..我一直在阅读,可能数据表在填充后不可编辑..

有没有办法让这个复选框可编辑?

【问题讨论】:

  • 您是在填充数据表然后向其中添加新列吗?请详细说明。
  • 是的,它被一个数据读取器填充,然后我正在向它添加一列 - 我尝试使用 Datagridviews,但无法让这些复选框起作用。
  • 如何尝试编辑复选框?
  • 对不起,可编辑我的意思是当应用程序运行时我不能“选中或取消选中”它。它在那里,我可以将 defaultvalue 设置为 true 或 false,但不能更改应用程序中的状态

标签: c# asp.net datatable boolean datacolumn


【解决方案1】:

我意识到绑定到gridviews的值被设置为ReadOnly并且在c#中是不可编辑的

我设法在 gridview 的模板字段中创建了一个 ASP 复选框

<columns>
<asp:templatefield>
<itemtemplate>
<asp:checkbox id="CheckBox1" runat="server" checked='false' AutoPostBack="true"/>
</itemtemplate>
</asp:templatefield>
</columns>

然后我可以用

得到这个值
(row.Cells[0].FindControl("CheckBox1") as System.Web.UI.WebControls.CheckBox).Checked)

【讨论】:

    【解决方案2】:

    我使用以下代码:

     private void button1_Click(object sender, EventArgs e)
        {
            DataTable cDataTable = new DataTable();
    
            DataColumn a = new DataColumn("Select", typeof(bool));
    
            cDataTable.Columns.Add(a);
            for (int i = 0; i < 100; i++)
            {
                cDataTable.Rows.Add(true);
            }
            cDataTable.Rows[5][a] = false;
            dataGridView1.DataSource = cDataTable;
        }
    

    下面是结果。 “a”列第六行为假

    【讨论】:

    • 您可以单击表单中的这些复选框来更改它们的状态吗?
    • 是的,允许
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多