0

使用しているカスタムコントロールライブラリがあり、から継承するコントロールとDataCodeFieldほぼ同じように機能するというプロパティを追加しました。DataTextFieldComboBox

    DummyData data1 = new DummyData(12, "Jon", 1);
    DummyData data2 = new DummyData(15, "Bill", 2);
    DummyData data3 = new DummyData(23, "Ted", 1);

    var people = new List<DummyData>{data1, data2, data3};

    ddlTest.DataSource = people;
    ddlTest.DataTextField = "Name";
    ddlTest.DataCodeField = "Age";
    ddlTest.DataValueField = "Id";
    ddlTest.DataBind();

    var id = ddlTest.SelectedValue;
    var index = ddlTest.SelectedIndex;
    var name = ddlTest.SelectedItem;
    var age = ??

私はそれを新しいものにバインドしたときに人の年齢を見つける必要がありますDataCodeField。これを行うにはイベントをオーバーライドする必要があることはわかっていますが、OnDataBindingどこから始めればよいかわからないようです。どんな助けでもいただければ幸いです。私の最終目標は、コンボボックスがデータバインドされた後、このような時代にアクセスすることです。

または、バインドされたデータソースにアクセスし、selectedIndexに基づいてそのオブジェクトから年齢にアクセスする方法はありますか?

4

1 に答える 1

1

データソースをビューステートに保存すると、以下を使用して選択した年齢にアクセスできます。

var age = People[ddlTest.SelectedIndex].Age;
于 2012-04-10T19:41:32.527 に答える