【问题标题】:Use DataColumn values as source for ValueList on UltraGridColumn使用 DataColumn 值作为 UltraGridColumn 上 ValueList 的源
【发布时间】:2013-03-12 18:52:41
【问题描述】:

有没有办法可以将 DataTable 中的 DataColumn 用作 UltraGrid 列的 ValueList

我将列样式设置为DropDownList。问题是,ValueList 用什么?

ultraGrid1.DisplayLayout.Bands[0].Columns["col"].Style = ColumnStyle.DropDownList;
ultraGrid1.DisplayLayout.Bands[0].Columns["col"].ValueList = ???

【问题讨论】:

    标签: infragistics ultrawingrid


    【解决方案1】:

    创建一个BindableValueListConstructors 之一采用数据源、dataMember、displayMember、valueMember 和 bindingContextControl 的对象。

    设置ValueList的代码行:

    this.ultraGrid1.DisplayLayout.Bands[0].Columns["col"].ValueList = new BindableValueList(dt, "", "displayColumn","valueColumn", this.ultraGrid1);
    

    在上面的示例中,dt 是您要绑定到的 DataTable,displayColumn 和 valueColumn 将是您想要用作下拉列表的显示和值部分的列的键。如果您要绑定到 DataSet 并希望绑定到第一个表以外的表,则可以使用第二个参数传入要绑定到的表的名称。

    【讨论】:

    • +1 从未使用过。确实看起来更好,但是 OP 只要求一列没有 ValueColumn。
    • 我不确定您将如何只使用一列,因为您需要值列表的值和显示部分,除非它们相同并且显示与值相同。如果它们相同,那么您可以为两者指定相同的列。
    • 实际上在我的代码中我使用了 ValueListItems.Add 需要两个参数(datavalue 和 displaytext)的重载,但是也有一个只接受 displaytext help.infragistics.com/Help/NetAdvantage/WinForms/2012.2/CLR4.0/… 的重载
    • 谢谢alhalama。我想问一下ultragrid中有两列。第一列样式是checkbox.second valuelist.so,如何在第一列被选中的地方获取第二列值。
    【解决方案2】:

    这可能会有所帮助。它是一个简单的过程,它接收 DataTable、ValueList 的 Key 属性的值以及用作 ValueList 列表的字段名称,并返回一个值列表以在您的 UltraGridColums 之一中设置

        public ValueList DataTableToValueList(DataTable dt, string vlKey, string fieldName)
        {
            ValueList vl = new ValueList();
            if (!string.IsNullOrEmpty(vlKey)) vl.Key = vlKey;
            foreach (DataRowView r in dt.DefaultView)
                vl.ValueListItems.Add(r[fieldName]);
            return vl;
        }
    

    这样使用(可能在InitializeLayout事件中)

        grd.DisplayLayout.Bands[0].Columns["col"].ValueList = 
                        DataTableToValueList(dtCustomers,"vlCustomer", "CustomerName");
    

    【讨论】:

    • 使用 BindableValueList 会更简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 2014-05-27
    相关资源
    最近更新 更多