我發現了這個錯誤。這是很明顯的:我不是數據綁定到正確的複選框列表!我應該是數據綁定filterONTYPElist,但我數據綁定到filterONDATASETlist ...複製粘貼錯誤,對不起......CheckboxList忽略DataValueField和DataTextField
我有渲染的CheckBoxList如下:
這裏是處理數據綁定的代碼:
FilterOnTypeCheckboxList.DataSource = listCheckboxItems;
FilterOnDatasetCheckboxList.DataValueField = "Value";
FilterOnDatasetCheckboxList.DataTextField = "Text";
FilterOnTypeCheckboxList.DataBind();
我的數據源是list<CheckBoxItem>
。那類看起來如下,你可以清楚地看到有一個公共財產的價值和公共屬性text:
[Serializable]
public class CheckboxItem
{
public string Text { get; set; }
public string Value { get; set; }
public CheckboxItem(string value, string text)
{
Value = value;
Text = text;
}
public override string ToString()
{
return "brompot";
}
}
但由於某些原因,每個複選框文本和值使用的的ToString()方法CheckBoxItem類,而不是適當的屬性「值」和「文本」。
PS:我檢查了價值和checkboxitems對象的文字是不是字符串「brompot」 ......
這不是讓toString()方法返回文本或值的選項,因爲我想複選框的值是數值屬性和複選框(標籤)文本
這正是我想要做的,只有我沒有看到該值或文本,但無論是通過返回toString()方法。如果我不指定toString()方法,C#需要返回「CheckBoxItem」的類名的默認的toString()方法。我可以忽略什麼? – user1884155
這只是一個猜測,但嘗試刪除該類的[Serializable]標記。 –