1

asp.net のユーザー コントロールをプログラミングしたことのある人なら誰でも、ユーザー コントロールが初めて読み込まれたか、再読み込みされたかを確認する特定の方法が必要な状況に遭遇したことがあると思います。非表示の「currentOpenControl」フラグを設定する以外に、他の解決策を思いついた人はいますか? コントロールが初めて開いているか、再度開いているかを確認する必要があるかどうか疑問に思っている場合は、大きな理由の 1 つはデータバインディングです。コントロールが初めて開いたとき、つまりデータバインドしたいときです。その後、再度データバインドすると、ユーザーが追加した可能性のある変更がすべて失われます。したがって、コントロールが開いているかどうかに関係なく、フラグを設定するよりもエレガントなソリューションがあるかどうか疑問に思っています。

ありがとう

4

2 に答える 2

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;
  }
}
于 2012-07-20T14:44:44.050 に答える
0

これを使用して、VB.NET で c# に変換できます。

    Private currentPage As Page = HttpContext.Current.Handler
    If (Not currentPage.IsPostBack) Then 
    End if
于 2012-07-20T14:46:37.910 に答える