在我的保存按钮上我要清除表格的所有值,我为CheckBoxList海滩做了以下操作。
但它不起作用。为什么如此,它不会使复选框列表中的值清晰
分支就像这样填充:
protected void course_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
int courseId = Convert.ToInt32(course.SelectedValue);
DataTable dt;
dt = placementManager.GetBranchList(courseId);
if (dt.Rows.Count != 0)
{
Branch.DataSource = dt;
Branch.DataTextField = "branch_name";
Branch.DataValueField = "branch_id";
Branch.DataBind();
}
Btnsave.Visible = false;
GridView1.Visible = false;
}
catch (Exception ex)
{
COMMON.logger.Error("Error on course_SelectedIndexChanged:CompanySelected.aspx.cs", ex);
}
if (b)
{
gridNotExist.Text = "Records Successfully inserted for the displayed table, To insert new records select new entries";
this.ViewState.Remove("selectedList");
this.ViewState.Remove("dt");
Session.Abandon();
passout.SelectedIndex = 0;
company.SelectedIndex = 0;
txtpackage.Text = "";
course.SelectedIndex = 0;
Branch.DataSource = null;
Branch.DataBind();
vistDate.Text = "";
txtvenue.Text = "";
//GridView1.Visible = true;
}
}
aspx页面当然有这样的分支:
<asp:UpdatePanel id="update" runat="server">
<contenttemplate>
<td>
<asp:DropDownList ID="course" runat="server" AutoPostBack="True" OnSelectedIndexChanged="course_SelectedIndexChanged" />
<asp:CustomValidator ID="coursenecessaryForSaveButton" runat="server" ControlToValidate="course" ErrorMessage="Select A Course" OnServerValidate="coursenecessaryForSaveButton_ServerValidate" ValidationGroup="save" />
</td>
<td>
<asp:CustomValidator ID="courseNecessary" runat="server" ErrorMessage="Select A Course" OnServerValidate="courseNecessary_ServerValidate" ValidationGroup="verify" />
</td>
<td style="width: 101px">
Branch Name*
</td>
<td style="width: 126px">
<asp:CheckBoxList id="Branch" runat="server" />
</td>
</contenttemplate>
</asp:UpdatePanel>
答案 0 :(得分:0)
<asp:CheckBoxList id="Branch" runat="server" >
与控件的UpdatePanel不同,它触发异步回发 - 并触发你的事件处理程序:course_SelectedIndexChanged
。
将复选框列表放在UpdatePanel中id="update"
,它将解决您的问题。
不过,我会考虑重构你的HTML(以及代码时你的代码)。
例如 - 你有两个UpdatePanel - 为什么?
除了复选框之外,第二个没有任何内容。 UpdatePanel的目的是在没有完整回发的情况下动态更新页面的某些部分(即动态信息)。
在UpdatePanel中只有静态控件(复选框),实际上并没有任何用途。
然而,我的上述答案是在你所追求的目标中黑暗中被刺穿。你是代码隐藏代码确实没有意义:
if (b == true)
b定义在哪里?
Branch.DataSource = null
Branch.DataBind()
你有什么约束力?