2014-09-01 108 views
0

标签在我选择dropdownlist后工作,我试图禁用其他下拉菜单。如何禁用<select>标签(html下拉)使用asp.net下拉列表

但问题是,只有在点击提交按钮时才会触发注意我的提交按钮还没有代码

下面是我的一些代码

在Option.aspx(客户端)

<select id="ddlgames" class="ddlgame" runat="server"> 
    <option value="" selected="selected">Select One</option> 
    <option value="BasketBall">Basket Ball</option> 
    <option value="VolleyBall">Volley Ball</option> 
    <option value="FootBall">Foot Ball</option> 
</select> 

<asp:UpdatePanel ID="Update" runat="server"> 
    <ContentTemplate> 
     <asp:DropDownListID="ddlPlayer"CssClass="Player" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlPlayer_SelectedIndexChanged"> 
     </asp:DropDownList> 
     <asp:Label ID="lblcomment" runat="server" Text=""> 
     </asp:Label> 
    </ContentTemplate> 
</asp:UpdatePanel> 

<asp:Button ID="Submit" runat="server" OnClick="Submit_Click" Text="Submit" /> 

代码隐藏

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     ddlPlayer.Items.Add(new ListItem { Text = "Player", Value = "Y" }); 
     ddlPlayer.Items.Add(new ListItem { Text = "Non Player", Value = "N" }); 
    } 
} 

protected void ddlNameOfReport_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (ddlplayer.SelectedValue == "N") 
    { 
     ddlgames.Disabled = true; 
     lblcomment.Text = "Games option disabled"; 
    } 
    else 
    { 
     ddlgames.Disabled = true; 
     lblcomment.Text = "Games option enabled"; 
    } 
} 

protected void Submit_Click(object sender, EventArgs e) 
{ 
} 

遗憾的错误语法:)

+1

ddlNameOfReport我不能看到它在你的HTML希望它会ddlPlayer – Seminda 2014-09-01 03:18:01

回答

0

为您的下拉菜单创建另一个UpdatePanel并添加AsyncPostBackTrigger

<asp:UpdatePanel ID="Update2" runat="server"> 
    <ContentTemplate> 
<select id="ddlgames" class="ddlgame" runat="server"> 
    <option value="" selected="selected">Select One</option> 
    <option value="BasketBall">Basket Ball</option> 
    <option value="VolleyBall">Volley Ball</option> 
    <option value="FootBall">Foot Ball</option> 
</select> 
</ContentTemplate> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="ddlNameOfReport" /> 
    </Triggers> 
</asp:UpdatePanel> 

ddlPlayer_SelectedIndexChanged必须有一个Update2.Update()

protected void ddlNameOfReport_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (ddlplayer.SelectedValue == "N") 
    { 
     ddlgames.Disabled = true; 
     lblcomment.Text = "Games option disabled"; 
    } 
    else 
    { 
     ddlgames.Disabled = true; 
     lblcomment.Text = "Games option enabled"; 
    } 
Update2.Update() 

} 
0

原因是ddlPlayer下拉列表位于更新面板内。 ddlgame位于更新面板外部。

如果添加了更新面板内ddlgame下拉和改变ddlPlayer_SelectedIndexChanged事件这样

protected void ddlPlayer_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     var ddlplayer = (DropDownList)sender; 
     if (ddlplayer.SelectedValue == "N") 
     { 
      ddlgames.Disabled = true; 
      lblcomment.Text = "Games option disabled"; 
     } 
     else 
     { 
      ddlgames.Disabled = true; lblcomment.Text = "Games option enabled"; 
     } 
    } 

或者,如果你想保住你的ddlgames出方此更新面板,那么你必须ddlgames添加到另一个更新面板并调用yourupdatepanel.Update();方法在ddlPlayer_SelectedIndexChanged事件中。