我正在尝试检查pageload上复选框列表中的所有/特定复选框。
目前没有错误,但即使在后面的代码中指定了Selected = true,复选框也会显示“未标记”。
这是我的代码背后:(注意:它位于Protected Void Page_Load和if(!IsPostBack)中
SqlConnection aircraftCheckConn = new SqlConnection(ConfigurationManager.ConnectionStrings["CamoDatabaseString"].ToString());
SqlCommand aircraftCheckCommand = new SqlCommand("SELECT [Type] FROM [AircraftType]");
aircraftCheckCommand.Connection = aircraftCheckConn;
aircraftCheckConn.Open();
SqlDataAdapter aircraftCheckAdapt = new SqlDataAdapter(aircraftCheckCommand);
DataSet AircraftDS = new DataSet();
aircraftCheckAdapt.Fill(AircraftDS);
AircraftCheck.DataSource = AircraftDS;
AircraftCheck.DataTextField = "Type";
AircraftCheck.DataValueField = "Type";
aircraftCheckConn.Close();
AircraftCheck.DataBind();
foreach (ListItem li in AircraftCheck.Items)
{
li.Selected = true;
}
AircraftCheck.DataBind();
这是我的前端
<asp:CheckBoxList ID="AircraftCheck" runat="server" DataTextField="Type" DataValueField="Type" CellSpacing="10" RepeatColumns="6" RepeatDirection="Horizontal" >
</asp:CheckBoxList>
谢谢
答案 0 :(得分:0)
基于page life cycle,发生绑定Page_Load
项之前调用的CheckBoxList
事件。您可以在Page_Load
CheckBoxList
事件方法中的DataBound
事件中复制相同的代码,并将OnDataBound
标记上的CheckBoxList
处理程序放到相应的方法中:< / p>
ASPX加价
<asp:CheckBoxList ID="AircraftCheck" runat="server" DataTextField="Type" DataValueField="Type" CellSpacing="10" RepeatColumns="6" RepeatDirection="Horizontal"
OnDataBound="AircraftCheck_DataBound">
</asp:CheckBoxList>
代码背后
protected void AircraftCheck_DataBound(object sender, EventArgs e)
{
// SqlConnection binding stuff here, omitted for brevity
AircraftCheck.DataBind();
foreach (ListItem li in AircraftCheck.Items)
{
li.Selected = true;
}
}
类似问题:
How to check all checkboxes in a checkboxlist when page first loads?