我有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