隐藏DIV中的复选框列表

时间:2013-03-27 19:10:51

标签: asp.net

我在DIV中有一个CheckboxList。单击按钮时,DIV显示为模式弹出窗口。然后,用户检查复选框列表中的任意数量的项目,然后单击“确定”。这隐藏了div。

一旦用户单击主窗体上的保存按钮,我需要根据单击复选框列表中的项目将参数传递给存储过程,但是当我运行保存代码时,它们总是设置为未选中。我很想知道如何正确地做到这一点。

由于

JQuery的:

 $(document).ready(function () {
        $('#<%=txtLANG.ClientID %>').click(function () {
            $("#overlay-back").dialog({
                resizable: false,
                modal: true,
                width: 500,
                height: 400,
                buttons: {
                    OK: function () {
                        GetLanguages();
                        $(this).dialog("close");
                    },
                    Cancel: function () {
                        $(this).dialog("close");
                    }
                }
            });
        });
    });

在CodeBehind中保存方法

  private void Save()
  {
        List<string> lstItemsChecked = new List<string>();

        for (int i = 0; i < chkTopLanguages.Items.Count; i++)
        {
            if(chkTopLanguages.Items[i].Selected)
                lstItemsChecked.Add(chkTopLanguages.Items[i].Value);
        }
        //stored proc call
  }

  protected void btnSubmit_Click(object sender, EventArgs e)
  {
         Save();
  }

DIV弹出窗口和CheckBoxList的ASPX代码

 <div id="overlay-back" style="display:none;">
  <td rowspan="3" valign="top">
     <asp:CheckBoxList ID="chkTopLanguages" TextAlign="Right" runat="server" />
           <br />
     <asp:TextBox runat="server" ID="txtOtherLanguages" Text="Other Languages..."></asp:TextBox>
  </td>
 </div>

2 个答案:

答案 0 :(得分:0)

尝试将AutoPostBack设置为false:

<asp:CheckBoxList ID="chkTopLanguages" TextAlign="Right" runat="server" AutoPostBack="false" /> 

对于CheckBoxList控件。

答案 1 :(得分:0)

可能会发生这种情况,因为当您关闭弹出窗口时,弹出窗口上的控件无法访问。我不知道确切的原因,但你可以在javascript中创建一个数组变量。每当您选中或取消选中复选框时;在javascript的帮助下,您可以将该变量修改为所有变量的设置。

我长时间使用模态弹出方式,只有这样的问题。 这种方法可能不是最佳方法,但肯定会有效。