我有一個我正在使用的自定義控件庫,並且我添加了一個名爲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