2011-10-10 17 views
3

我在這一點上有點虧了,一直沒有找到有用的東西在我的搜索,所以我希望有人能幫助我在這裏。ListItem的值被DataBind上的文本取代

我有一個RadioButtonList,我添加了動態創建的ListItems列表,其中我爲每個項目設置了文本和值。在RadioButtonList的DataBind上,ListItem的值被Text取代,這對我來說似乎沒有意義。

我可以在客戶端看到,當我在Firebug中查看標籤和輸入值相同時,無法看到該值。

有沒有其他人有過這樣的經歷,還是有人知道我可能會出錯?

var rbList = new List<ListItem>(); 
var radioButtonList = new RadioButtonList(); 
foreach(var object in objects) { 
    var li = new ListItem {Text = object.Name, Value = object.Guid}; 
    rbList.Add(li); 
} 
radioButtonList.DataSource = rbList; 
radioButtonList.DataBind(); 
+0

哪裏是「物」的定義是什麼? –

+0

您正在混合兩種不同的方法,如何使用數據填充RadioButtonList!這是不正確的。您可以將ListItem-s添加到radioButtonList.Items中(如下所示),或者使用radioButtonList.DataSource並提供一些非ListItem對象(通常爲Entitites) - 因此您遇到的行爲是正確的 –

回答

9

你應該在這裏使用數據綁定嗎?你不能直接將ListItems添加到單選按鈕列表中嗎?

我會想象,數據綁定越來越困惑如何綁定您的列表,所以只是在每個元素上使用ToString,這似乎只是返回Text屬性。然後將其用作文本和值。

你可能只是想創建你的項目,並直接將它們添加到您的單選按鈕控件如下:

var radioButtonList = new RadioButtonList(); 
foreach(var object in objects) { 
    var li = new ListItem {Text = object.Name, Value = object.Guid}; 
    radioButtonList.Items.Add(li); 
} 
+0

非常感謝您,修復了我問題。你對此解釋似乎也有道理。你是一個生活和睡眠保護者! –

+0

很高興有幫助。如果你對解決方案感興趣,你也可以對我進行+1(它擊中數字上方的向上箭頭)。 ;-)雖然很高興有幫助。它是我們在這裏。 :) – Chris

+0

尚未有足夠的聲望。我多年來一直是一個潛伏者,但這是我第一次積極參與的第一例。當我被允許時,我會確保回來。 –