【问题标题】:ASP.Net and Ajax Server code behind constant re-create不断重新创建背后的 ASP.Net 和 Ajax Server 代码
【发布时间】:2012-01-12 15:47:36
【问题描述】:

我正在编写一个单独的 ASP 表单,它可以动态更改通过鼠标单击按钮以及在 Ajax 容器中更改文本框中的文本时可见的 Div 框。我遇到的问题是在 Page_Load 函数中,我从位于 asp 托管服务器上的 .csv 文件模板动态创建所有对象(文本框、单选按钮、按钮等)。每次回发发生时,即使在 Ajax 窗口中,也会再次调用 Page_Load 函数并重新读取 .csv 文件,并重新创建所有对象。

我曾尝试在重新创建任何对象之前检查 IsPostback,但这些对象随后被取消,因为它们从未被创建。该页面每次都是一个全新的页面。

任何想法将不胜感激。

【问题讨论】:

    标签: c# asp.net ajax


    【解决方案1】:

    尝试使用 Page_PreInit 事件而不是 Page_Load 来重新创建/操作您的动态控件:

    protected void Page_PreInit(object sender, EventArgs e)
    {
        // create controls here
    }
    

    更多信息:http://msdn.microsoft.com/en-us/library/ms178472.aspx

    【讨论】:

    • 刚刚尝试过 PreInit,每次更改都会触发该函数,与 Page_Load 相同,尽管刚刚添加的链接页面被证明是有用的。让我看看我能从中得到什么。
    • 这个答案引导我找到我需要的答案。重新生成后,我不得不重新检查字段中的值。在将页面的构建放入 PreInit 之后,我可以弄清楚在其他任何事情发生之前需要做什么。
    【解决方案2】:

    当您创建动态控件时,您必须承担以下责任 在每次回发时重新创建控件。 您应该在 Page_Init 事件中为每个页面创建控件 请求是否是回发。如果您在 Page_Init 事件中创建您的控件,然后在 用户输入的值应在每次回发时自动填写,因此 您可以访问它们。

    【讨论】:

      猜你喜欢
      • 2014-04-05
      • 2014-03-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      相关资源
      最近更新 更多