缓存事件的触发顺序

本文关键字:顺序 事件 缓存 | 更新日期: 2023-09-27 18:16:33

假设我有一个简单的表单,只有两个文本框和一个按钮。文本框中的"AutoPostBack"设置为false。例如,在这些事件的TextChanged中放入一些代码,以写入响应流,说明在单击按钮并将表单提交给web服务器后触发哪个TextChanged事件。是否有一种方法来控制缓存事件的触发顺序?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace IsPostBack___Part_8
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void TextBox1_TextChanged(object sender, EventArgs e)
        {
            Response.Write("Text box 1 event fire");
        }
        protected void TextBox2_TextChanged(object sender, EventArgs e)
        {
            Response.Write("Text box 2 event fired");
        }
        //dummy button click handler here
    }
}

使用该代码和表单上的其他内容,首先更改哪个文本框并不重要,它们以相同的顺序触发。缓存事件的触发顺序是否由其在html中的位置决定?

缓存事件的触发顺序

根据微软的说法,您不应该依赖于特定的事件顺序。但一般情况下,事件将按照控件在页面标记中的位置顺序触发。

如果你的布局是
[TextBox1]
[TextBox2]
[Button1]

事件将按顺序触发:

Page_Load
TextBox1_Changed
TextBox2_Changed
Button1_Click

您可以尝试通过重新排列页面上的控件来更改事件的顺序。