2017-09-05 70 views
0

這一個很有趣。我選擇了一個下拉菜單並運行數據調用,返回數據並填充頁面上的一些標籤。這裏是問題:DropDownList選擇索引更改兩次觸發

如果我鍵入選擇並按ENTER鍵,該方法觸發一次,就好了。如果我用鼠標滾動到選擇並以這種方式選擇它,它會觸發兩次。背後

<asp:DropDownList ID="ddlPattern" CssClass="dropdownint" runat="server" DataTextField="Pattern" DataValueField="Pattern" 
          AppendDataBoundItems="true" AutoPostBack="true" OnSelectedIndexChanged="ddPattern_SelectedIndexChanged" EnableViewState="true" /> 

代碼:

 SqlDataAdapter sda = new SqlDataAdapter("StoredProcedure", sc); 
     sda.SelectCommand.CommandType = CommandType.StoredProcedure; 
     sda.SelectCommand.Parameters.AddWithValue("@Pattern", Pattern.ToString()); 
     sda.SelectCommand.Parameters.AddWithValue("@fac", this.ddfac.SelectedItem.Value); 
     DataSet ds = new DataSet(); 
     sda.Fill(ds); 

     this.lnkInventory.Text = ds.Tables[0].Rows[0][0].ToString() + " (" + ds.Tables[1].Rows[0][0].ToString() + ")"; 

有更多對後面的代碼,但它實際上只是填充多個標籤。我嘗試了很多東西,包括設置AutoEventWireup =「false」,並確保我沒有任何標籤中的src,甚至每次都取消訂閱該事件,但沒有任何作用。它真的很奇怪,它只是如果我鍵入選擇,但如果我選擇鼠標,它會觸發一次。

+0

您雙擊鼠標的任何機會? – ispiro

+0

除了已經顯示的聲明之外,你是否還在後面的代碼中附加了一個事件處理程序? – Seano666

+0

不,我不是。我想到了,但如果是的話,無論我如何選擇下拉菜單,它都應該翻倍 – Rysil

回答

0

我想通了。原因是嘗試捕獲問題未正確處理,導致選定的某些項目出現重複錯誤。

0

這perfectally爲我的項目工作時,取消調度訪問時顯示一個div

<asp:DropDownList ID="txtvisitname" AutoPostBack="true" class="txtno" AppendDataBoundItems="true" 
       runat="server" onchange="return selectChange()"> 
       <asp:ListItem Text="--SELECT--" Value="0" /> 
       <asp:ListItem Text="VISIT1" Value="VISIT1" /> 
       <asp:ListItem Text="VISIT2" Value="VISIT2" /> 
       <asp:ListItem Text="VISIT3" Value="VISIT3" /> 
       <asp:ListItem Text="VISIT4" Value="VISIT4" /> 
       <asp:ListItem Text="VISIT5" Value="VISIT5" /> 
       <asp:ListItem Text="Unscheduled VISIT" Value="Unscheduled VISIT" /> 
      </asp:DropDownList> 
function selectChange() {   
     if ($("[id*=txtvisitname]").val() == "Unscheduled VISIT") { 
      $(".other").show(); 
     } else { 
      $(".other").hide(); 
     } 
} 
相關問題