У меня есть 2 страницы, одна для добавления данных в базу данных, а другая для редактирования, поэтому в добавлении у меня есть CheckBoxList, я добавил их в базу данных следующим образом
URL-адреса: 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>
Я получаю контрольный список из базы данных, используя SqlDataSource, и на странице я вижу, как они помещаются, когда я печатаю количество элементов, его ноль
где может быть проблема ??
Спасибо