2012-07-20 68 views
1

我确信每个使用asp.net用户控件进行编程的人都会遇到需要以某种方式检查用户控件是否第一次加载的情况,或者它已被重新加载。有没有人想出除了设置隐藏的“currentOpenControl”标志之外的其他解决方案。如果您想知道我是否需要检查控制是第一次打开还是重新打开,那么其中一个重要原因是数据绑定。当控制器第一次打开时,那就是当我想要数据绑定,然后重新打开时,如果我再次绑定数据,我将失去用户可能添加的任何更改。 所以我只是想知道是否有人比设置标志控制是否打开更优雅的解决方案。.NET UserControls首次加载或后续重新加载标志

感谢

+0

你能不能我们用户控制中的IsPostBack? – Asdfg 2012-07-20 14:38:22

+0

如果您正在使用一个.aspx页面,其中很多“部分”是不同的usercontrols.I更新的主题。 – BlueChameleon 2012-07-20 14:40:21

回答

2

我曾经成功地做到这一点是使用ViewState的唯一途径...

Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load 
    If ViewState["postBack"] Is Nothing Then 
    ' Do everything you'd normally do with Page.IsPostBack 
    ViewState["postBack"] = true 
    End 
End Sub 

或为C#...

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (ViewState["postBack"] == null) 
    { 
    // Do everything you'd normally do with Page.IsPostBack 
    ViewState["postBack"] = true; 
    } 
} 
0

你可以得到使用它,它在VB.NET中转换为C#

Private currentPage As Page = HttpContext.Current.Handler 
    If (Not currentPage.IsPostBack) Then 
    End if