「ddlFiles」というdivがあります。多数のIDを含むDropDownListが含まれています。私がやろうとしているのは、ユーザーにIDを選択させ、選択した値を渡して操作を実行することです(ストアドプロシージャにはそれが必要です)。操作は最初から機能します。しかし、IDを再度選択しようとすると、新しいIDではなく古いIDが使用されます。したがって、正しいIDを渡すには、実際に2番目の新しいIDを取得する前に、ユーザーに新しいIDを2回選択させる必要があります。
(注: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が含まれています。