DropDownList选择索引更改触发两次

问题描述 投票:0回答:2

这个很有意思。我有一个下拉列表,一旦选择进入并运行数据调用,返回数据并填充页面上的一些标签。这是问题所在:

如果我输入选择并按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,甚至每次都取消订阅事件,但这些都不起作用。如果我键入选择它只会触发一次,但如果我选择鼠标则会触发两次,这真的很奇怪。

c# asp.net .net event-handling dropdown
2个回答
0
投票

我想到了。是由于尝试捕获问题没有得到正确处理并导致选择的某些项目出现重复错误。


0
投票

当计划外访问显示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();
      }
 }
© www.soinside.com 2019 - 2024. All rights reserved.