关于c#:UltraWebGrid:如何在列中使用下拉列表

关于c#:UltraWebGrid:如何在列中使用下拉列表

UltraWebGrid: How to use a drop-down list in a column

我正在使用Infragistics网格,并且在使用下拉列表作为我的其中一列的值选择器时遇到了困难。

我尝试阅读文档,但是Infragistics的文档不是很好。 我也很幸运地看了这个讨论。

到目前为止,我在做什么:

1
2
3
4
col.Type = ColumnType.DropDownList;
col.DataType ="System.String";

col.ValueList = myValueList;

其中myValueList是:

1
2
3
4
5
6
7
8
9
ValueList myValueList = new ValueList();

myValueList.Prompt ="My text prompt";
myValueList.DisplayStyle = ValueListDisplayStyle.DisplayText;

foreach(MyObjectType item in MyObjectTypeCollection)
{
    myValueList.ValueItems.Add(item.ID, item.Text); // Note that the ID is a string (not my design)
}

当我查看页面时,我希望在此列的单元格中看到一个下拉列表,但是我的列为空。


这是我其中一页的示例:

1
2
3
4
5
UltraWebGrid uwgMyGrid = new UltraWebGrid();
uwgMyGrid.Columns.Add("colTest","Test Dropdown");
uwgMyGrid.Columns.FromKey("colTest").Type = ColumnType.DropDownList;
uwgMyGrid.Columns.FromKey("colTest").ValueList.ValueListItems.Insert(0,"ONE","Choice 1");
uwgMyGrid.Columns.FromKey("colTest").ValueList.ValueListItems.Insert(1,"TWO","Choice 2");


我发现出了什么问题。

该列必须允许更新。

1
uwgMyGrid.Columns.FromKey("colTest").AllowUpdate = AllowUpdate.Yes;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    public void MakeCellValueListDropDownList(UltraWebGrid grid, string columnName, string valueListName, string[] listArray)
    {
        //Set the column to be a dropdownlist
        UltraGridColumn Col = grid.Columns.FromKey(columnName);            
        Col.Type = ColumnType.DropDownList;
        Col.DataType ="System.String";

        try
        {
            ValueList ValList = grid.DisplayLayout.Bands[0].Columns.FromKey(columnName).ValueList;
            ValList.DataSource = listArray;
            foreach (string item in listArray)
            {
                ValList.ValueListItems.Add(item);
            }
            ValList.DataBind();
        }
        catch (ArgumentException)
        {

        }
    }


推荐阅读