Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 禁用数据绑定DropDownList中空白/默认列表项的回发_C#_Asp.net_Drop Down Menu_Postback - Fatal编程技术网

C# 禁用数据绑定DropDownList中空白/默认列表项的回发

C# 禁用数据绑定DropDownList中空白/默认列表项的回发,c#,asp.net,drop-down-menu,postback,C#,Asp.net,Drop Down Menu,Postback,我有一个从数据源填充的DropDownList。绑定后,我在列表顶部放置一个空字段,以便用户将其显示为空(创建一种“默认项”)。我有一些处理SelectedIndexChanged事件的代码,但是如果用户要选择空的ListItem,则实际上不需要执行它 这是我的密码: .aspx 由于当用户只单击此特定索引时,我不需要该页面进行回发,因此我希望完全禁用仅此列表项的回发。这可能吗?如果是,怎么做 是否可以添加onChange属性来运行JS函数,该函数在发回之前检查值是否为空 i、 e dropDo

我有一个从数据源填充的DropDownList。绑定后,我在列表顶部放置一个空字段,以便用户将其显示为空(创建一种“默认项”)。我有一些处理SelectedIndexChanged事件的代码,但是如果用户要选择空的ListItem,则实际上不需要执行它

这是我的密码:

.aspx


由于当用户只单击此特定索引时,我不需要该页面进行回发,因此我希望完全禁用此列表项的回发。这可能吗?如果是,怎么做

是否可以添加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" />