2012-04-02 93 views
1

我有JavaScript的工作出色,但我需要将其更改为更新面板,我不能让它仍然正常工作。更改Javascript更新面板

我想要做的是如果它在第一个下拉列表中选择1,在第二个下拉列表中选择c。

我正在使用asp.net vb。我感谢所有的帮助!

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script type="text/javascript"> 
     function NumbersDropDownList_OnChange() { 
      var numbersDropDownList = document.getElementById("numbersDropDownList"); 
      if (numbersDropDownList.options[numbersDropDownList.selectedIndex].text=="1") { 
       document.getElementById("lettersDropDownList").selectedIndex = 2; 
      } 
     } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:DropDownList ID="numbersDropDownList" onchange="NumbersDropDownList_OnChange()" runat="server"> 
      <asp:ListItem>1</asp:ListItem> 
      <asp:ListItem>2</asp:ListItem> 
      <asp:ListItem>3</asp:ListItem> 
     </asp:DropDownList> 
     <asp:DropDownList ID="lettersDropDownList" runat="server"> 
      <asp:ListItem>a</asp:ListItem> 
      <asp:ListItem>b</asp:ListItem> 
      <asp:ListItem>c</asp:ListItem> 
     </asp:DropDownList> 
    </div> 
    </form> 
</body> 
</html> 
+0

你想用的UpdatePanel包裹其中控制? – mshsayem 2012-04-02 16:24:27

+0

howHearWhere.ascx谢谢! – Michelle 2012-04-02 16:32:07

+0

那么,该控制是不是在上面显示的代码中使用... – mshsayem 2012-04-02 16:35:21

回答

0

希望这有助于

<asp:UpdatePanel runat="server" ID="pnllettersDropDownList" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:DropDownList ID="numbersDropDownList" runat="server" AutoPostBack="true" > 
     <asp:ListItem Value="1" >1</asp:ListItem> 
     <asp:ListItem Value="2" >2</asp:ListItem> 
     <asp:ListItem Value="3" >3</asp:ListItem> 
    </asp:DropDownList> 
     <asp:DropDownList ID="lettersDropDownList" runat="server"> 
     <asp:ListItem Value="1" >a</asp:ListItem> 
     <asp:ListItem Value="2" >b</asp:ListItem> 
     <asp:ListItem Value="3" >c</asp:ListItem> 
    </asp:DropDownList>   
    </ContentTemplate> 
    </asp:UpdatePanel> 

Protected Sub numbersDropDownList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles numbersDropDownList.SelectedIndexChanged 
     if numbersDropDownList.selectedvalue=2 then 
      lettersDropDownList.selectedvalue=3 
     end if 
End Sub 
0

看起来你是从错误的JavaScript调用你的控制。您只是因为您的列表位于表单的基本级别而使您的当前脚本“幸运”。

纠正你如下脚本:

<script type="text/javascript"> 
    function NumbersDropDownList_OnChange() { 
     var numbersDropDownList = document.getElementById('<%= numbersDropDownList.ClientID %>'); 
     if (numbersDropDownList.options[numbersDropDownList.selectedIndex].text=="1") { 
      document.getElementById('<%= lettersDropDownList.ClientID %>').selectedIndex = 2; 
     } 
    } 
</script>