我有一个我正在使用的自定义控件库,并且我添加了一个名为DataCodeField
的属性,该属性的作用与从,继承的控件的DataTextField
几乎相同。将属性绑定到自定义控件
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从该对象访问年龄?
不确定这是否有帮助,但在您尝试从'ddlTest'控件中检索值时,控件的类型是什么?如果它不是你最初定义的类型,也许你想把它转换成你的类型。 – MilkyWayJoe 2012-04-10 19:34:08
我不是专家,但是当你将数据绑定到DDL时,它不一定是成对(名称,值),否则它会给你错误。你的代码似乎很好,除了我上面提到的。 – 2012-04-10 19:36:18
它是正确的类型。这与从绑定的数据源中检索对象有关。 – joncodo 2012-04-10 19:37:10