1

DataSourceデータ バインドされた ASP.NET コントロールのプロパティに割り当てることができるデータ ソースの最小型要件を追跡しようとしています。

数か月または数年の間隔をあけて、毎回これを何度も以前に行ったことを覚えています。私はかつて、 がDataSourceであることをたどったと思いますIListSourceが、間違っている可能性があります。DataSourceまたは、WinForms データ バインド コントロールのプロパティと状況を混同している可能性があります。

とにかく、私は最初からやり直しています。たとえば、クラスのDataSourceプロパティはとして宣言されます。System.Web.UI.WebControls.BaseDataListobject

また、DevExpress コントロールと DevExpress MVC 拡張も検討しています。これらは、ASP.NET サーバー側コントロール クラスから実際に継承し、データ バインディングを委任します。またDataSource、バインディングを ASP.NET コントロール自体に委譲するため、プロパティをオブジェクト型として宣言します。

DevExpress 拡張スイートでもDataSource、クラスのプロパティはDevExpress.Web.ASPxClasses.ASPxDataWebControlBasetype であると宣言されていますobject

それで、最小要件は何ですか?IEnumerable<T>と思います。IEnumerableまたは、(非一般的なもの)だけかもしれません。

これについて説明しているドキュメントの場所はありますか?

4

2 に答える 2

1

これが役立つかどうかはわかりませんが、言及したクラスで Reflector を使用すると、DataSource プロパティに設定されているオブジェクトが IListSource および IEnumerable である必要があることがわかります。

    set
    {
        if (((value != null) && !(value is IListSource)) && !(value is IEnumerable))
        {
            throw new ArgumentException(SR.GetString("Invalid_DataSource_Type", new object[] { this.ID }));
        }
        this.dataSource = value;
        this.OnDataPropertyChanged();
    }
于 2013-11-23T22:48:08.930 に答える
-1

はい、DevExpress ASP.NET コントロールは、IEnumerable をサポートするあらゆるものにデータ バインドできます。

オンライン ヘルプ ドキュメント:

Web フォーム DevExpress ASP.NET GridView

MVC データバインディング

それが役立つことを願っています。その他の質問がある場合は、DevExpress サポート チームにお気軽にお問い合わせください: http://www.devexpress.com/Support/Center/CreateIssue.aspx?issuetype=Question

于 2013-09-17T20:30:46.580 に答える