DropDownList选择索引更改触发两次
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,甚至每次都取消订阅事件,但这些都不起作用。如果我键入选择它只会触发一次,但如果我选择鼠标则会触发两次,这真的很奇怪。
答案
我想到了。是由于尝试捕获问题没有得到正确处理并导致选择的某些项目出现重复错误。
另一答案
当计划外访问显示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();
}
}
以上是关于DropDownList选择索引更改触发两次的主要内容,如果未能解决你的问题,请参考以下文章
DropDownList 的 SelectedIndexChanged 事件未触发
gridview中用dropdownlist更改值来筛选,更改dropdownlist之后无法进行checkbox选择
鉴于没有从 dropDownList 中选择任何内容,有没有办法手动触发所需的验证
当单击 dropdownlist.item.insert 作为下拉列表上的空位置时,在下拉列表上选择索引更改时,行/列的数据不存在