2017-09-05 2 views
0

Celui-ci est intéressant. J'ai une liste déroulante qui, une fois sélectionnée va et exécute un appel de données, retourne les données et remplit certaines étiquettes sur la page. Voici le problème:DropDownList sélectionné changement d'index deux fois

Si je tape à la sélection et appuyez sur ENTRÉE, la méthode se déclenche une fois, très bien. Si j'utilise la souris pour faire défiler la sélection et la choisir de cette façon, elle se déclenche deux fois.

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

derrière:

 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() + ")"; 

Il y a plus au code derrière, mais il est vraiment juste peuplait plus d'étiquettes. J'ai essayé beaucoup de choses, en réglant le AutoEventWireup = "faux", et en m'assurant que je n'avais aucun src dans les étiquettes, et même en désinscrivant l'événement chaque fois, mais rien de cela ne fonctionne. Et c'est vraiment bizarre comment ça se déclenche juste une fois si je tape la sélection mais deux fois si je sélectionne la souris.

+0

Êtes-vous un double-clic avec la souris par hasard? – ispiro

+0

Ajoutez-vous également un gestionnaire d'événements dans le code, en plus de celui que vous avez indiqué? – Seano666

+0

Non, je ne le suis pas. Je pensais à cela, mais si je l'étais, il devrait doubler, peu importe comment je sélectionne la liste déroulante – Rysil

Répondre

0

Je l'ai compris. Était dû à un problème de prise d'essai qui n'était pas géré correctement et provoquait une erreur de duplication sur certains éléments qui avaient été choisis.

0

Ce travail perfectally pour mon projet lors de la visite déprogrammer montrent une 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(); 
     } 
}