2010-11-09 124 views
4

我有一個下拉列表(dr1),應該觸發dr2的更新而不影響dr3。問題是dr1觸發更新,但不會進入dr1_SelectedIndexChanged。我知道,因爲標籤不改變,並且暫停不會發生Dropdownlist不會觸發SelectedIndexChanged

這裏是我的HTML代碼:

<form runat="server"> 
<asp:ScriptManager ID="sm" runat="server" /> 
<asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="5"> 
    <ProgressTemplate> 
     <span style="color: Red">Updating.....</span> 
    </ProgressTemplate> 
</asp:UpdateProgress> 
<asp:DropDownList ID="dr1" AutoPostBack="true" OnSelectedIndexChanged="dr1_SelectedIndexChanged" runat="server" /> 
<asp:UpdatePanel ID="updpnl" runat="server"> 
    <ContentTemplate> 
     <asp:DropDownList ID="dr2" runat="server" /> 
     <asp:Label ID="lbl" runat="server" /> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="dr1" EventName="SelectedIndexChanged" /> 
    </Triggers> 
</asp:UpdatePanel> 
<asp:DropDownList ID="dr3" runat="server" /> 
</form> 

和我隱藏:

void Page_Load() 
     { 
      if (!IsPostBack) 
      { 
       java.Text = "<script language=\"JavaScript1.2\" type=\"text/javascript\">var sess = \"" + Session["username"] + "\";var user = \"" + Request.ServerVariables["LOGON_USER"].Replace("\\", "\\\\") + "\";</script>"; 
       dr1.Items.Clear(); 
       dr2.Items.Clear(); 
       dr3.Items.Clear(); 
       dr1.Items.Add(""); 
       dr1.Items.Add("A"); 
       dr1.Items.Add("B"); 
       dr1.Items.Add("C"); 
       dr1.Items.Add("D"); 
       dr3.Items.Add(""); 
       dr3.Items.Add("Allo"); 
       dr3.Items.Add("Bonjour"); 
       dr3.Items.Add("Ola"); 
      } 
     } 

     protected void dr1_SelectedIndexChanged(Object sender, EventArgs e) 
     { 
      System.Threading.Thread.Sleep(5000); 
      lbl.Text = DateTime.Now.ToString(); 
      dr2.Items.Clear(); 
      dr2.Items.Add(""); 
      for (int i = 1; i <= 4; i++) 
       dr2.Items.Add(dr1.SelectedValue + i); 
     } 

我希望有人能夠幫助me

謝謝

+3

請擺脫休眠(5000)的;這絕不應該投入生產代碼。你故意放慢速度,不是一個好主意。 – 2010-11-09 19:37:23

回答

0

它終於奏效。剝離代碼並重新添加所有內容後,它就可以工作了。

我也刪除了DLL並重建它。這似乎有所幫助。

2

嘗試修改此行
<asp:AsyncPostBackTrigger ControlID="dr1" EventName="SelectedIndexChanged" />

,並清除EventName="SelectedIndexChanged"屬性

+0

我只是試過了,它仍然無法工作 – Olivier 2010-11-09 14:48:37

0

嘗試在一個UpdatePanel包裝的一切,並設置在UpdatePanel的UpdateMode="Always"

相關問題