我相信每个使用 asp.net 用户控件编程的人都遇到过需要某种方式来检查用户控件是第一次加载还是重新加载的情况。除了设置隐藏的“currentOpenControl”标志之外,有没有人提出任何其他解决方案。如果您想知道我需要检查控件是第一次打开还是重新打开,那么其中一个重要原因是数据绑定。当控件第一次打开时,即我想要数据绑定,然后重新打开,如果我再次数据绑定,我将丢失用户可能添加的任何更改。所以我只是想知道是否有人有比设置标志更优雅的解决方案来控制是否打开。
谢谢
我相信每个使用 asp.net 用户控件编程的人都遇到过需要某种方式来检查用户控件是第一次加载还是重新加载的情况。除了设置隐藏的“currentOpenControl”标志之外,有没有人提出任何其他解决方案。如果您想知道我需要检查控件是第一次打开还是重新打开,那么其中一个重要原因是数据绑定。当控件第一次打开时,即我想要数据绑定,然后重新打开,如果我再次数据绑定,我将丢失用户可能添加的任何更改。所以我只是想知道是否有人有比设置标志更优雅的解决方案来控制是否打开。
谢谢
我曾经设法做到这一点的唯一方法是使用 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;
}
}
您可以使用它,它在 VB.NET 中转换为 c#
Private currentPage As Page = HttpContext.Current.Handler
If (Not currentPage.IsPostBack) Then
End if