Webユーザーコントロールをリピーターに追加する方法

シナリオ:

  • UsrControl: custom user control, which contains a textbox and a button, rederend horizontally (in one line).

  • UsrControlContainer: custom user control, which should be able to display multiple UsrControl objects (each object in seperate line, so the Seperator template will probably be
    . This control also contains a button, which adds new UsrControl to the collection.

私のコード:



    

    
    

そして:

protected void Button1_Click(object sender, EventArgs e)
{
    rptExample.DataSource = new List {new UsrControl(), new UsrControl()};
    rptExample.DataBind();
}

簡単な質問 - このコードを作成するには ItemTemplate に何を書き込む必要がありますか?

編集 - それをレンダリングする前に、いくつかのパラメータをUsrControlに渡したいと思います。

0

2 答え


     
          
     
     
protected void Button1_Click(object sender, EventArgs e) { rptExample.DataSource = Enumerable.Range(0, 2); rptExample.DataBind(); }
2
追加された
それは動作します、ありがとう:)しかし、もし私がUsrControlにパラメータを渡したいのであれば?
追加された 著者 sventevit,

あなたの質問に答えてください。 ItemDataBoundイベント内のすべてのバインディングオブジェクトを捕捉できます。たとえば、私が使用したように、オブジェクト全体をユーザーコントロールのプロパティとして設定します。

protected void PersonesRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        PersonLine line = (PersonLine)e.Item.FindControl("Person1");
        line.Person = e.Item.DataItem as Osoba;
    }
}

もちろん、リピーターにイベントハンドラーを追加する必要があります:


        
    

1
追加された