我有一个显示复选框的列表,具体取决于用户从下拉框中选择的内容。当后退发生时,下拉框的值发生变化。此外,当发生后退更改复选框时。
我的问题是,如果我从下拉框中选择一个值并说明创建了6个复选框。我决定取消选中第3个方框。然后改变主意并从下拉列表中选择一个新值。创建新复选框后,复选框3将保持未选中状态!?!
我真的无法找到解决这个问题的任何帮助或建议将不胜感激。我还要提一下,复选框内的复选框和下拉列表都可以运行。
以下是生成复选框的代码:
For Each _element In myTools.getElements(templateID, myTools.getConnectionStringFromAirlineName(ddl_Source.SelectedValue)).Rows
Dim tr As New HtmlTableRow
Dim td_elementChecked As New HtmlTableCell
Dim cb_ID As New CheckBox
cb_ID.ID = templateID & _element.item(0)
// As you can see i'm setting check to true each time?
cb_ID.Checked = True
cb_ID.AutoPostBack = True
cb_ID.DataBind()
AddHandler cb_ID.CheckedChanged, AddressOf handlesGenericCheckedChange
Dim td_elementName As New HtmlTableCell
Dim lbl_elementName As New Label
td_elementName.Controls.Add(lbl_elementName)
td_elementChecked.Controls.Add(cb_ID)
tr.Cells.Add(td_elementChecked)
tr.Cells.Add(td_elementName)
table_elements.Rows.Add(tr)
table_elements.DataBind()
present = True
Next
复选框的ID具有意义并且无法更改,我有一种感觉,这可能与它有关。该ID用于指示需要处理的内容。
答案 0 :(得分:0)
您需要提供更多代码,但是当您更改所选下拉列表值时,您似乎正在重绘所有复选框。如果是这种情况,那么新创建的复选框将不会保留您之前分配的“检查”。您可能需要做的是当您回发数据时记录表单的当前状态。记录选择的值,以便在必须重绘表单时可以应用这些更改。
答案 1 :(得分:0)
在重新加载控件之前,您可以创建一个新面板..这样您就重新开始了。这只是一个建议。