0

我有一个名为“ddlFiles”的 div。它包含一个 DropDownList,其中包含一堆 id。我想要做的是让用户选择一个 id,然后通过传入选定的值来执行操作。(存储过程需要它)该操作第一次通过。但是当我再次尝试选择一个 id 时,它会使用旧的 id 而不是新的。因此,为了让我传入正确的 id,我必须让用户选择一个新 id 两次,然后才能真正采用第二个新 id。

(注意:viewExpensesGrid 是我的 flexigrid)——不是很有用,但我想我会把它添加进去。

这是我从 DropDownList 获取所选值的函数,然后将其传递给函数:

 function getCaseFiles(canMoveExpenses) {
            //create Popup with content from div
            $('#ddlFiles').dialog({
                autoOpen: true,
                height: 'auto',
                width: 'auto',
                modal: true,
                buttons: {
                    "Ok": function () {
                        var dropDownList = document.getElementById("ddlCaseFilesNew");
                        var newCaseDdl = dropDownList.options[dropDownList.selectedIndex].value;
                        //alert("newCaseDdl = " + newCaseDdl);

                        var oldCaseFile = $("#hidCaseFile").val();
                        //alert(oldCaseFile);

                        if (newCaseDdl != -1) {
                            moveCasefile(canMoveExpenses, newCaseDdl, oldCaseFile);
                            $(this).dialog('close');
                            $("#viewExpensesGrid").flexReload();//simply refresh flexigrid
                        }
                        else {
                            showMessage("Error. Please Select a Value From The Lists.");
                        }
                    },
                    Cancel: function () {
                        $(this).dialog('close');
                        $("#viewExpensesGrid").flexReload();
                    }
                }
            });
        }

这是我的 div =“ddlFiles”:

<div id="ddlFiles">
    <label>
        Select new CaseFile:</label>
    <asp:DropDownList runat="server" ID="ddlCaseFilesNew" DataSourceID="dsCaseFiles"
        DataTextField="Display" DataValueField="FileID" 
        OnPreRender="ddl_PreRender" Width="300px"/>
</div>

我的存储过程需要一个新的 CaseId 和一个旧的 CaseId,hidCaseFile 是一个 hiddenField。(这已经包含旧文件 ID。

4

1 回答 1

1

尝试改变这个:

var dropDownList = document.getElementById("ddlCaseFilesNew");

有了这个

var dropDownList = $("#<%= ddlCaseFilesNew.ClientID %>");

执行时,服务器控件的 ID 与 ID 标签中指定的 ID 不同,因此您应该使用其 ClientID 获取它,而不是“ddlCaseFilesNew”。

于 2012-10-01T14:12:26.877 回答