ASP.Net:文本框的文本更改事件的调用序列问题
我在aspx页面中分别放置了一个列表框和一个包含Selected Index Changed和Text Changed事件的文本框。现在,如果我在文本框中写入内容然后单击其他位置选择列表框中的值,则会调用文本框的第一个文本更改事件,然后调用列表框的选定索引更改事件。之后再次调用文本框的文本更改事件。任何机构都可以提供一些见解,为什么会这样?
以下是加价:
<asp:ListBox ID="ListBox1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ListBox_IndexChanged">
<asp:ListItem Text="abc" />
<asp:ListItem Text="def" />
</asp:ListBox>
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="true" OnTextChanged="Text_Changed" />
代码背后:
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void ListBox_IndexChanged(object sender, EventArgs e)
{
}
protected void Text_Changed(object sender, EventArgs e)
{
}
}
}
没有找到相关结果
已邀请:
2 个回复
苦诫
通过将JavaScript事件附加到您的控件来工作。每个浏览器处理JavaScript的方式略有不同,因此对订购没有真正的保证。 例如,当我在Google Chrome中尝试您的代码时,会发生以下事件序列: 请求发送到服务器 调用ListBox_IndexChanged事件 调用Text_Changed事件 回复回到客户端 但是,在Internet Explorer 8中,我注意到以下顺序: 请求发送到服务器 调用Text_Changed事件 回复回到客户端 另一个请求发送到服务器 调用ListBox_IndexChanged事件 调用Text_Changed事件 第二回应回到客户端 这不是ASP.NET的错,而是因为浏览器中不同的JavaScript实现,我想。 如果你需要依赖特定的事件序列,
不会削减它。根据您的具体情况,我可能会使用跨浏览器兼容的库(如jQuery)来实现自己的JavaScript事件。您可以使用
函数以编程方式回调服务器。
桑娠贯涤