在ascx和codebehind中分配事件处理程序之间有什么真正的区别吗?

时间:2011-11-16 04:43:36

标签: asp.net

之间是否有任何行为差异:

<asp:Repeater ID="myRepeater" runat="server" OnItemDataBound="myRepeater_ItemDataBound">
</asp:Repeater>

VS

    protected void Page_Load(object sender, EventArgs e)
    {
        myRepeater.ItemDataBound += new RepeaterItemEventHandler(myRepeater_ItemDataBound);
    }

3 个答案:

答案 0 :(得分:1)

不,执行没有区别,因为实际上,当你在ascx中分配它时,它实际上被写入.designer.cs文件中“幕后”后面的代码(假设你正在使用设计者)或在已编译的临时文件中(如果使用后台编译)。

他们都做同样的事情。但是aspx版本可以由GUI设计者处理。

答案 1 :(得分:0)

根据Page Life周期,在ascx和codebehind中分配事件处理程序没有区别。

所有控件初始化后,页面的

Page_Init加注。所以用户控件也是页面的控件。

在MSDN上查看此ASP.NET Page Life Cycle以获取详细信息。

答案 2 :(得分:0)

如果您在隐藏的代码上分配私有方法,则可以使用私有方法。你不能在aspx / ascx中分配私有方法。这是我的想法。