在c#asp.net中启用DropdownList的列表项

在c#asp.net中启用DropdownList的列表项,c#,asp.net,C#,Asp.net,我的代码是 <asp:ListItem Value="Above 50" Text="Above 50" Enabled='<%# (((string)(Eval("Gender"))).Contains("Male"))? true:false%>'></asp:ListItem> 代码中出了什么问题?我认为您处理问题的方式有点错误。这个问题和答案似乎正是您想要的: 在您的情况下,您将绑定到检查性别值的函数或值。没有任何数据绑定事件。因此这里不能使用Ev

我的代码是

<asp:ListItem Value="Above 50" Text="Above 50"  Enabled='<%# (((string)(Eval("Gender"))).Contains("Male"))? true:false%>'></asp:ListItem>

代码中出了什么问题?

我认为您处理问题的方式有点错误。这个问题和答案似乎正是您想要的:

在您的情况下,您将绑定到检查性别值的函数或值。

没有任何数据绑定事件。因此这里不能使用
Eval()

您需要调用下拉列表中的数据绑定事件,并在那里执行检查

类似这样的事情-

protected void MyDropDownList_DataBound(object sender, EventArgs e)
        {
            var ddl = sender as DropDownList;
            foreach (ListItem item in ddl.Items)
            {
                if (Gender == "Male")
                {
                    item.Attributes.Add("disabled", "disabled");
                }
            }
        }

请注意,
enabled=false
将删除列表项,而
disabled=disabled
仅将其灰显。

下拉列表控件位于何处?您可以发布它的父控件的代码吗?
包含
返回Bool,因此
'
应该足够了。或
''
protected void MyDropDownList_DataBound(object sender, EventArgs e)
        {
            var ddl = sender as DropDownList;
            foreach (ListItem item in ddl.Items)
            {
                if (Gender == "Male")
                {
                    item.Attributes.Add("disabled", "disabled");
                }
            }
        }