0

私がやろうとしているのは、GridView を継承し、LinqDataSource をプログラムで埋め込むことです。この理由は、列とグリッド プロパティのマークアップ定義を許可するが、効率的なモデル クエリのために sortExpression、ページャー ページ インデックス、およびページャー行カウントを渡す GetDataSourceEvent を実装する汎用グリッド ビューが必要だからです。後者は、DataSourceControl の Selecting イベントをサブスクライブすることによって実行されます。

私が遭遇している問題は、LinqDataSource を UserControl に追加すると、DataSourceId が見つからないことです。OnInit と EnsureChildControls を使用して LinqDataSource を作成しようとしましたが、うまくいきませんでした。グリッドビューを継承してカスタム ページャを作成する方法の例をいくつか見てきましたが、状況に適したイベントが見つからないようです。

プログラムで DataSourceControl を追加し、それに GridView DataSourceId を割り当てる際に、誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

0

データ ソースの種類を受け入れるパブリック メソッドを作成できます。次に、ユーザー コントロール クラスのインスタンスを作成するときに、メソッドにバインドします。たとえば、データ ソースとして文字列のリストを使用していて、myUserControl というユーザー コントロールがあるとします。

Partial Class user_controls_myUserControl
    Inherits System.Web.UI.UserControl


    Public Sub bindMyData(ByVal myDataSource As List(Of String))
      'bind stuff here
    End Sub

End Class

これは次のように呼び出されます。

dim myListOfString as new list(of String)
Me.myUserControl1.bindMyData(myListOfString)
于 2013-03-05T17:00:41.780 に答える