c# - 如何将枚举绑定(bind)到 telerik :RadGrid in ASP WebForms

标签 c# asp.net enums telerik

您可以帮助我进行两种方式绑定(bind):在表中显示枚举值并从下拉列表中选择编辑模式下的选项吗?

<telerik:RadGrid>
    <MasterTableView>
    <Columns>
        <telerik:GridDropDownColumn DataField="MyEnumProperty" />
    </Columns>
<telerik:RadGrid>

使用上面的代码,它不会在表中显示当前值,也不会填充下拉列表(它是空的)。

最佳答案

很抱歉回答我自己的问题,但当我开始工作时...... 我采用了 @Balaji 的方法 2,但必须进行一些改进,以便将所有内容集中在一处:

查看部分:

<telerik:GridTemplateColumn HeaderText="My header" UniqueName="uniqueName" AllowFiltering="true">
<ItemTemplate>
    <%#DataBinder.Eval(Container.DataItem, "MyEnumProperty")%>
</ItemTemplate>
<EditItemTemplate>
    <telerik:RadComboBox name="myComboId" Id="myComboId" runat="server">
    </telerik:RadComboBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>

隐藏代码:

var dataItem = e.Item as GridEditFormItem;

if (dataItem != null)
{
    {
        var comboBox = dataItem.FindControl("myComboId") as RadComboBox;

        if (comboBox != null)
        {
            var value = DataBinder.Eval(dataItem.DataItem, "MyEnumProperty").ToString();
            comboBox.DataSource = Enum.GetValues(typeof(MyEnumProperty));
            comboBox.DataBind();
            var selectedItem = comboBox.FindItemByText(value);
            comboBox.SelectedIndex = selectedItem.Index;
        }
    }
}

关于c# - 如何将枚举绑定(bind)到 telerik :RadGrid in ASP WebForms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39890919/

相关文章:

c# - 我们如何决定 PUSH/PULL 套接字应该使用 Bind() 还是 Connect()?

c# - LINQ 按多列搜索

C# - 检查属性是否存在于枚举的元素上

c++ - 如何声明一个 std::map 以枚举为键,以不同签名为值的函数?

c# - 帮助 c# 模式

c# - 异步等待和线程

c# - Observable.Zip 当要压缩的序列数在运行时未知时

javascript - 计算点击次数的最有效方法

javascript - 正则表达式不允许字符串中出现 2/3/4 个连续零

c# - 在 C# 中将字符串转换为枚举