0

以下のように、内部にリピーターコントロールを持つ webuser コントロールがあります。

 <asp:Repeater ID="repeaterInvoicesPaid" runat="server">
        </asp:Repeater>

data.aspx ページにドラッグしたところです。data.cs C# ファイル内に、テーブルからデータを返すメソッドがあります。リピーター (ユーザー コントロール内) をバインドする方法を知りたいです。

data.cs ファイルまたは Web ユーザー コントロールの独自の C# ファイル内にバインドされます。

また、data.cs ファイル内のユーザー コントロールからリピーター ID にアクセスする方法を教えてください。

前もって感謝します。

4

3 に答える 3

1

質問 1 については、次のいずれかを実行できます。

  • リピーターを公開する (質問 3 を参照) または
  • データソースを公開する

個人的には最後の選択肢に賛成です

データバインディング オプションについては、組み込みのデータバインド メソッドを公開するか、ソースが設定されているときにデータバインドするかを選択できます。

データソースの公開は次のように行うことができます

public static object RepeaterDataSource {
    get { return repeater.DataSource; }
    set { repeater.DataSource = value; }
}

または、データバインディングのように、設定時に操作できるように設定するメソッドを作成します。


質問 2: 実際のバインドは常にリピーターがある場所で行われます。OnItemDataBound ハンドラーが必要な場合は、バインド元に関係なく、ユーザー コントロールのコード ビハインドにあります。ただし、それも公開できますが、そうする理由はありません。


質問 3: ID が必要な場合は、クライアント ID と仮定します。このようなものでそれを得ることができます

public static string RepeaterClientID {
    get { return theRepeater.ClientID; }
}

それがあなたの本当の意味かどうかはわかりませんが。代わりに参照が必要な場合は、

public static Repeater TheRepeater {
    get { return theRepeater; }
    set { theRepeater = value; }
}

最後に、質問に対する他の回答を受け入れるか、それらを完全に削除します。あなたの受け入れ率は非常に低いです。

于 2012-10-30T12:05:38.943 に答える
1

Create object of user control

UserControl usr = Page.FindControl("usercontrolID"); Repeator rept = usr.FindControl("repeatorControlID");

rept.DataScourse= Datatbale; rept.DataBind();

于 2012-10-30T12:13:12.360 に答える
0

リピーターを返すパブリックプロパティをユーザーコントロールでいつでも作成できます。

于 2012-10-30T11:45:49.523 に答える