我的aspx页面我正在使用checkboxlist控件并从数据库中填充数据。但是,当我习惯选择项目并调试我的代码时,总是选择属性为假。如何解决这个问题。
我的代码是
<asp:CheckBoxList ID="chkProduct" Width="200px" Height="90px" runat="server"
RepeatDirection="Vertical" style="overflow-y: scroll;
overflow-x: scroll;">
</asp:CheckBoxList>
代码背后
for (int j = 0; j < chkProduct.Items.Count; j++)
{
//CheckBoxList chkProduct;
foreach (ListItem list in chkProduct.Items)
{
if (list.Selected )
{
enquiryProducts = new Services.EnquiryProduct();
enquiryProducts.IsDelete = false;
enquiryProducts.ProductID = Convert.ToInt32(chkProduct.Items[j].Value);
enquiryProductList.Add(enquiryProducts);
}
}
}
答案 0 :(得分:1)
如果要在回发上数据绑定列表,则可能会丢失已检查状态。您希望确保在您对列表进行数据绑定时,只有在Page.IsPostBack
为false
时才会执行此操作。
答案 1 :(得分:0)
您是否绑定了复选框列表。
它是在页面加载,然后它应检查不回发如下
if (!Page.IsPostBack)
{
//put your binding code here
List<CommonServices.Product> productList = commonClient.GetProductList(string.Empty, null, 1);
chkProduct.DataSource = productList.OrderBy(i => i.Name);
chkProduct.DataTextField = "ProductCodeWithName";
chkProduct.DataValueField = "ID";
chkProduct.DataBind();
}
答案 2 :(得分:-1)
试试这个.. 将autopostback属性设置为TRIST 的checkboxlist