SqlDataSourceコントロールSelectCommandプロパティの値が離れて行くことはありませんしましょう
前の約束は、あなたがSqlDataSourceコントロールSelectCommandプロパティの値はViewStateに保持されません知ることができ、「SqlDataSourceコントロールは、データのフィルタリングを行う」ので、私たちはページLoadViewStateとSaveViewStateメソッドを上書きでのSqlDataSource SelectCommandプロパティの値を維持する必要があります。
しかし、このダイナミックな設定でSelectCommand各属性の値は、これを実行する必要があり、それは感情の詳細トラブルスポットとなり、SqlDataSourceコントロールのSelectCommandプロパティの値は、それが自分で自分自身を制御状態で維持することが可能にするかどうか?もちろん、あなたができる、と非常にシンプルな限り、直接カスタムSqlDataSourceコントロールに移動の最後の章オーバーライドLoadViewStateとSaveViewStateメソッドの練習として。
TBSqlDataSourceという名前の継承SqlDataSourceコントロールは、あなたがより簡単に各ページの裁量に移動することなく、SelectCommandプロパティを使用できるように、SelectCommandプロパティを維持するために、LoadViewStateとSaveViewState方法を上書きします。
Namespace WebControls
Public Class TBSqlDataSource
Inherits SqlDataSource
#Region " ViewState 状态管理 "
'''
''' 由 ViewState 还原控件的状态。
'''
''' 要还原的控件状态。
Protected Overrides Sub LoadViewState(ByVal savedState As Object)
If Not (savedState Is Nothing) Then
' Load State from the array of objects that was saved at ;
' SavedViewState.
Dim myState As Object() = CType(savedState, Object())
If Not (myState(0) Is Nothing) Then
MyBase.LoadViewState(myState(0))
End If
If Not (myState(1) Is Nothing) Then
Me.SelectCommand = CType(myState(1), String)
End If
End If
End Sub
'''
''' 控件的状态保存至 ViewState。
'''
'''
含有控件之目前检视状态的对象。
Protected Overrides Function SaveViewState() As Object
Dim baseState As Object = MyBase.SaveViewState()
Dim myState(1) As Object
myState(0) = baseState
myState(1) = Me.SelectCommand
Return myState
End Function
#End Region
End Class
End Namespace
ASP.NET 魔法学院
オリジナル:ビッグボックス にSqlDataSource SelectCommandプロパティの値が離れて行くことはありませんしましょう