1

ASP.NET で jQuery の複数選択ドロップダウンを使用しています。選択したすべての値を取得する必要がありますが、ポストバック後にサーバー側のドロップダウン リストから最後に選択した値のみを取得しています。

脚本:

<script type="text/javascript">
    $(document).ready(function () {
        $('.department).multiselect({
            show: ["bounce", 5], hide: ["blind", 1],
            close: function () {
                debugger;
                var values = new Array();
                $(this).multiselect("getChecked").each(function (index, item) {
                     values.push($(item).val());
                });
                $("input[id*=selectedValues]").val(values.join(","));
                document.getElementById("<%=hdnDepartment.ClientID %>").value = values;
           }
       })
      .multiselectfilter();
    });
</script>
<asp:HiddenField ID="hdnDepartment" runat="server"></asp:HiddenField>
<asp:HiddenField ID="hdnEmployee" runat="server" />
<asp:DropDownList ID="ddlDepartment" runat="server" Width="150px" CssClass="department" onselectedindexchanged="ddlDepartment_SelectedIndexChanged" AutoPostBack="True">
</asp:DropDownList>
4

1 に答える 1

1

値を結合してから、非表示のフィールドに書き込んでみてください。

$('[id*=hdnDepartment]").val(values.join()) ;

        //OR 
document.getElementById("<%=hdnDepartment.ClientID %>").value = values.join();

また、ポストバックが発生すると、ベントが失われているように見えます。したがって、ポストバックが完了したら、それを再接続する必要があります..これを試してください。

<script type="text/javascript">
    $(document).ready(function () {
        PostBack();

        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(PostBack);
    });

    function PostBack(){
        $('.department).multiselect({
            show: ["bounce", 5], hide: ["blind", 1],
            close: function () {
                debugger;
                var values = new Array();
                $(this).multiselect("getChecked").each(function (index, item) {
                     values.push($(item).val());
                });
                $("input[id*=selectedValues]").val(values.join(","));
                document.getElementById("<%=hdnDepartment.ClientID %>").value = values;
           }
       })
      .multiselectfilter();
    }
</script>
于 2012-09-21T05:49:23.017 に答える