0

'rpA'、'rpB'などのIDで'rpZ'までのaspリピーターコントロールがあります。私がやりたいのは、コードビハインドでaspリピーターを見つけて、それに応じてデータソースをバインドしたいことです。これまでに書いたコードは次のとおりです。ここで、「i」はintで、範囲は65〜90です。 「tb」はDataTableです。

                   string lblName = "lbl" + Convert.ToChar(i);
                   string repName = "rp" + Convert.ToChar(i);
                   FindControl(lblName).Visible = true;
                   FindControl(repName).Visible = true;
                   IDataBoundControl repID = FindControl(repName) as IDataBoundControl;
                   ITextControl lblID = FindControl(lblName) as ITextControl;
                   lblID.Text = (Convert.ToChar(i)).ToString();
                   repID.DataSource = tb;
                   repID.DataBind();

しかし、DataBind()を実行できません。最後の行に「System.Web.UI.WebControls.IDataBoundControlにDataBindの定義が含まれていません」というエラーが表示されます。

4

1 に答える 1

3

タイプがわかっている場合は、次のようにします。

var repID = FindControl(repName) as Repeater;
repID.DataSource = tb;
repID.DataBind();

IDataBoundControlこのインターフェイスにはメソッドがないため、キャストする必要はありませんDataBind()(詳細はこちら)

于 2013-02-13T10:29:30.447 に答える