- PR -

第7回 一覧ページを作る―DataGridコントロールに対するコーディング - 質問

1
投稿者投稿内容
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2003-06-24 08:13
引用:

2行目、3行目の宣言では「Shared」修飾子を利用して、共有変数を宣言している。一般的にASP.NETは、Webというプラットフォームで動作する関係上、各変数はページが遷移するたびに初期化される。ページを移動する場合にはそれでも構わないのだが、何かしらの機能を提供するために、ポストバックによりページがリロードされるたびに変数の中身がクリアされたのでは不都合なことも多い。その問題をクリアするための解決方法のひとつが、共有変数を利用することだ。共有変数であれば、ポストバックが起きても値が保持されるため、ページ全体の動作を通して保存しておきたい情報を格納するのに役立つ。



いつも楽しく拝見させていただいております。

ところで、Sharedの使い方がよく解らないのですが、
Application変数とSharedで宣言した変数の違いを教えてください。

Application変数をすると、値を更新するときLock/UnLockで排他制御
できるので便利だと思うのですが・・・

Application.Lock
Application("ActiveUsers") += 1
Application.Unlock


参考までに、DataGridの並べ替えにオートリバース機能を付加するのに
VeiwState()を使用しています。

コード:
Sub dgrdCustomers_SortCommand(s As Object, e As DataGridSortCommandEventArgs)
  If SortExpression <> e.SortExpression Then
    SortExpression = e.SortExpression
    SortDirection = "asc"
  Else
    If SortDirection = "asc" Then
      SortDirection = "desc"
    Else
      SortDirection = "asc"
    End If						
  End If  
  BindDataGrid()
End Sub 

Property SortExpression() As String    
  Get
    Dim obj As Object = ViewState("SortExpression")
    If obj Is Nothing Then
      Return String.Empty
    End If
    Return CType(obj, String)
  End Get
    
  Set(ByVal Value As String)
    ViewState("SortExpression") = Value
  End Set    
End Property

Property SortDirection() As String    
  Get
    Dim obj As Object = ViewState("SortDirection")
    If obj Is Nothing Then
      Return String.Empty
    End If
    Return CType(obj, String)
  End Get
    
  Set(ByVal Value As String)
    ViewState("SortDirection") = Value
  End Set    
End Property

1

スキルアップ/キャリアアップ(JOB@IT)