C# 禁用数据绑定DropDownList中空白/默认列表项的回发
我有一个从数据源填充的DropDownList。绑定后,我在列表顶部放置一个空字段,以便用户将其显示为空(创建一种“默认项”)。我有一些处理SelectedIndexChanged事件的代码,但是如果用户要选择空的ListItem,则实际上不需要执行它 这是我的密码: .aspxC# 禁用数据绑定DropDownList中空白/默认列表项的回发,c#,asp.net,drop-down-menu,postback,C#,Asp.net,Drop Down Menu,Postback,我有一个从数据源填充的DropDownList。绑定后,我在列表顶部放置一个空字段,以便用户将其显示为空(创建一种“默认项”)。我有一些处理SelectedIndexChanged事件的代码,但是如果用户要选择空的ListItem,则实际上不需要执行它 这是我的密码: .aspx 由于当用户只单击此特定索引时,我不需要该页面进行回发,因此我希望完全禁用仅此列表项的回发。这可能吗?如果是,怎么做 是否可以添加onChange属性来运行JS函数,该函数在发回之前检查值是否为空 i、 e dropDo
由于当用户只单击此特定索引时,我不需要该页面进行回发,因此我希望完全禁用仅此列表项的回发。这可能吗?如果是,怎么做 是否可以添加onChange属性来运行JS函数,该函数在发回之前检查值是否为空 i、 e
dropDownList.Attributes.Add(“onChange”,“javascript:returnddlchange()”);
功能改变
{
if(document.getElementById(“”).value==“”)
返回false;
返回true;
}
设置disabled=“disabled”
,这将使项目不可选择(并且不会进行回发)
或者,如果希望能够选择第一个(空)项目但不进行回发,请执行以下操作:
<asp:DropDownList runat="server" ID="dddl" AutoPostBack="true" onchange="if(this.selectedIndex == 0)return false;">
<asp:ListItem Text="" Selected="True"></asp:ListItem>
<asp:ListItem Text="test"></asp:ListItem>
</asp:DropDownList>
您可以添加所需的字段验证器。然后将DropDownList的CausesValidation属性设置为true。这将防止回发,并提供最终用户反馈
<asp:DropDownList ID="dropDownList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="dropDownList_SelectedIndexChanged" CausesValidation="true">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="rfvDropDownList" runat="server" ErrorMessage="Must select a value!" ControlToValidate="dropDownList" />
这将使它甚至不会显示…我希望它出现,并且是可选择的,只是不做任何事情。很抱歉,它应该是disabled=“disabled”
我必须从我的codebehind中执行此操作,因为我正在数据绑定dropdownlist(完成后,将清除所有当前的列表项)。当我尝试从codebehind执行此操作时,有人告诉我listitem没有“disabled”属性。Attributes.Add
不起作用……但是,您的替代方法成功了!简单有效!:D谢谢!出于某种原因,它为每个列表项返回false?
dropDownList.Attributes.Add("onChange", "javascript: return ddlChange()");
function ddlChange
{
if(document.getElementById("<%= dropDownList.ClientID %>").value == "")
return false;
return true;
}
<asp:DropDownList runat="server" ID="dddl">
<asp:ListItem Text="" disabled="disabled" Selected="True"></asp:ListItem>
<asp:ListItem Text="test"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList runat="server" ID="dddl" AutoPostBack="true" onchange="if(this.selectedIndex == 0)return false;">
<asp:ListItem Text="" Selected="True"></asp:ListItem>
<asp:ListItem Text="test"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="dropDownList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="dropDownList_SelectedIndexChanged" CausesValidation="true">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="rfvDropDownList" runat="server" ErrorMessage="Must select a value!" ControlToValidate="dropDownList" />