【问题标题】:C# DataSet CheckBox Column With DevExpress DataGridC# DataSet CheckBox 列与 DevExpress DataGrid
【发布时间】:2011-01-26 07:13:58
【问题描述】:

场景

我有一个 DevExpress DataGrid,它绑定到 C# 中的 DataSet。 我想填充每个数据集行以在第一列中包含一个字符串,在第二列中包含一个复选框。我下面的代码并不能完全按照我想要的方式工作,我不知道为什么.....

代码

如您所见,我已经声明了一个数据集,但是当我尝试将一个新的复选框对象传递到第二列时,它只会显示该复选框的系统名称。

        DataSet prodTypeDS = new Dataset();
        DataTable prodTypeDT = prodTypeDS.Tables.Add();
        prodTypeDT.Columns.Add("MurexID", typeof(string));
        prodTypeDT.Columns.Add("Haganise",typeof(CheckBox));

        //WHY DOES THIS NOT WORK? 
        //(Displays "System.Windows.Forms.CheckBox, CheckState: 0")
        //Instead of a checkbox.
        CheckBox c = new CheckBox();
        prodTypeDS.Tables[0].Rows.Add("Test",c);
        //This doesn't work either....
        prodTypeDS.Tables[0].Rows.Add("Test",c.CheckState);

......我希望这只是因为它是一个 DevExpress 数据网格......

【问题讨论】:

    标签: c# gridview dataset checkbox devexpress


    【解决方案1】:

    为什么在DataSet 中使用Checkbox 列?

    您应该尝试在DataSet 中添加bool 列,当将DataSet 绑定到网格时,它会自动使用复选框来显示项目值。

    【讨论】:

    • 是的,OP 应该使用 typeof(bool) 列。
    【解决方案2】:

    当您的数据表中没有 bool 列时,您也可以手动/在代码中为该列设置编辑器。

    代码示例:
    假设您添加了一个名为“fCol”的 devex 网格列。 选中的值=“YES”,未选中的=“NONO”;

            GridColumn fCol = gridView1.Columns.Add();
            RepositoryItemCheckEdit fCheckEdit = new RepositoryItemCheckEdit();
            fCheckEdit.ValueChecked = "YES";
            fCheckEdit.ValueUnchecked = "NONO";
            fCol.ColumnEdit = fCheckEdit;
            fCol.FieldName = "Haganise";
    

    当然你也可以在设计器中这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 2016-12-02
      相关资源
      最近更新 更多