在更新面板中包含的用户控件中使用Page.IsPostback

时间:2009-04-26 13:56:37

标签: c# asp.net ajax asp.net-ajax infragistics

我有一个主页面,我使用网格加载用户控件并添加/编辑链接按钮。

如果我通过设置数据源并在页面加载事件中调用databind()方法来绑定网格,那么它会正确设置。但是,我想在回发之间保留选定的行,所以我像往常一样将绑定代码包装在“if(!Page.IsPostBack){}”中。我的问题是页面加载总是将其注册为回发,我的代码永远不会运行。

我正在使用2.0框架,我的网格是2.0.1框架的2008.1 Infragistics。

我认为这一定很简单......或者希望无论如何!

提前致谢

3 个答案:

答案 0 :(得分:1)

如果您将控件放入UpdatePanel,则应检查 Page.IsCallback ,而不是 Page.IsPostBack

答案 1 :(得分:0)

我发现这两种方式是:

  1. 在首次加载页面时加载用户控件,然后将其隐藏,直到用户选择了他们需要查看的内容。
  2. 将新页面加载到主页面上的iframe中,允许它拥有自己的页面控件,这意味着它首先加载时不是回发。
  3. 不是最伟大的,但是得到了。

    感谢您的帮助。

答案 2 :(得分:0)

我对坏掉这么老的线程有不同的感觉,但是这个问题仍然很重要,并且没有提供任何出色的解决方案,因此尽管我会添加我最近为解决同一问题所做的工作:

我在建立的网站上也遇到类似的问题。我的解决方案是在用户控件中添加一个名为“ OnFirstLoad”的方法,该方法可以完成所有我将要包装在“如果不是Page.IsPostback”块中的内容。然后,在第一次将控件加载到控件树中时,我从托管页面调用“ OnFirstLoad”方法。这样,控件本身就不必担心这是否是回发,并且主页可以根据需要对其进行初始化。