0

エラー:

「Repeater」には「DataSource」の定義が含まれておらず、「Repeater」タイプの最初の引数を受け入れる拡張メソッド「DataSource」が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

コード:

 protected void rptIndicator_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        Repeater r2 = (Repeater)e.Item.FindControl("rptActivity");
        r2.DataSource = dt; //Error on this line.
        r2.DataBind();
    }

マークアップ:

<asp:Repeater ID="rptIndicator" runat="server" OnItemDataBound="rptIndicator_ItemDataBound">
        <ItemTemplate>
            <asp:Repeater ID="rptActivity" runat="server">
                <ItemTemplate>
                    <asp:Repeater ID="rptActivityData" runat="server"></asp:Repeater>
                </ItemTemplate>
            </asp:Repeater>
        </ItemTemplate>
    </asp:Repeater>

助けてくれませんか。なぜ.DataSourceここでエラーが発生するのですか。

ありがとう。

4

2 に答える 2

0

Repeater名前空間にクラスを含む他の参照はありますか?

にキャストしてみてくださいSystem.Web.UI.WebControls.Repeater

于 2011-08-10T23:20:27.787 に答える
-1

まず、ItemTypeを確認する必要があります。そうしないと、実行時エラーが発生する理由がわからなくなります。

switch (e.Item.ItemType) {
    case ListItemType.Item:
    case ListItemType.AlternatingItem:
         Repeater r2 = (Repeater)e.Item.FindControl("rptActivity");
         r2.DataSource = dt; //Error on this line.
         r2.DataBind();
 }

これはタイプミスだと思いますが、マークアップではリピーターが「rptActivityData」とリストされていますが、コードで探しているのはFindControl("rptActivity")

于 2011-08-10T21:39:37.407 に答える