我有2頁,一個將數據添加到數據庫和其他編輯它,所以在加我有一個CheckBoxList的,我說他們在數據庫中遵循廣東話查看從數據庫中的CheckBoxList
URLS :1,2,3,4,5 和數字值的「鑰匙」從
我用這個代碼
String values = "";
foreach (ListItem i in CheckBoxList1.Items)
{
if (CheckBoxList1.Items.Count == 1)
values += i.Value;
else
if (i.Selected)
{
values += i.Value + ",";
}
}
,然後加入我的值到數據庫的複選框,並且它工作完美, 現在我的問題是在編輯頁面,作爲第一想從數據庫中顯示爲選中的盒子,我用這個,但它不是在頁面加載工作
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
... connection to the database .. etc
try
{
con.Open();
rd = cmd.ExecuteReader();
if (rd.Read())
{
String values = rd["urls"].ToString();//workes perfect
string[] arr = values.Split(',');//works perfect
int x = CheckBoxList1.Items.Count;//this will get me a zero
foreach (ListItem item in CheckBoxList1.Items)// doesnt enter here
{
foreach (string s in arr)
{
if (item.Text == s)
{
item.Selected = true;
}
}
}
.... //exceptions handling
我的aspx頁面
<asp:CheckBoxList ID="CheckBoxList1" runat="server" DataSourceID="urls_ds"
DataTextField="name" DataValueField="id">
</asp:CheckBoxList>
<asp:SqlDataSource ID="urls_ds" runat="server"
ConnectionString="<%$ ConnectionStrings:testing_cs %>"
SelectCommand="SELECT * FROM [tbl_urls]"></asp:SqlDataSource>
我正在CheckBoxList的代碼從數據庫中使用SqlDataSource,並在頁面上我可以看到他們把我打印的項目的數量爲零
哪裏可能是問題?
感謝
問題似乎是'CheckBoxList1'是*空*(根據其Count屬性返回0的事實)。它的價值應該從哪裏來?請在該頁面上發佈其定義。 – 2011-12-19 20:05:42
感謝您的回覆,正如我所說的,我使用SqlDataSource從數據庫中獲取數據,並且可以在頁面中看到它們。 – Peril 2011-12-19 20:06:55
您發佈的代碼是編輯頁面的Load事件,是否正確?將項目放入「CheckBox1」的代碼在哪裏?因爲這似乎是問題所在。 – 2011-12-19 20:09:34