清除复选框列表

时间:2010-09-02 11:39:03

标签: asp.net

在我的保存按钮上我要清除表格的所有值,我为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>

1 个答案:

答案 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()

你有什么约束力?