将属性绑定到自定义控件

时间:2012-04-10 19:27:19

标签: c# asp.net custom-controls

我有一个我正在使用的自定义控件库,并且我添加了一个名为DataCodeField的属性,该属性与DataTextField的行为几乎相同,用于继承自ComboBox的控件。

    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从该对象访问年龄?

1 个答案:

答案 0 :(得分:1)

如果您在viewstate中保存数据源,则可以使用;

访问所选年龄
var age = People[ddlTest.SelectedIndex].Age;