ラジオボタン付きのdropDownListがあります。ドロップダウンリストを(名前、IDなどで)並べ替えるためのラジオボタンがあります。DropDownListは、ストアドプロシージャを介してデータベースによって入力されています。更新パネルに囲まれています。
<div id="casefiles">
<ajaxToolkit:ToolkitScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<div id="rbfileByHolder" runat="server">
<label>Sort By</label>
<span><asp:RadioButton class="aspRBs" GroupName="rbfileByNameOrID" ID="rbMyFiles" Text="My Files" Checked="true"
runat="server" AutoPostBack="True" OnCheckedChanged="rbMyFiles_CheckedChanged" /></span>
<span><asp:RadioButton class="aspRBs" GroupName="rbfileByNameOrID" id="rbByFileID"
Text="By File ID" runat="server" AutoPostBack="True"
oncheckedchanged="rbByFileID_CheckedChanged" /></span>
<span><asp:RadioButton class="aspRBs" GroupName="rbfileByNameOrID" id="rbByFileName"
Text="By File Name" runat="server" AutoPostBack="True"
oncheckedchanged="rbByFileName_CheckedChanged" /></span>
</div><br />
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<label>Select New CaseFile</label>
<asp:DropDownList runat="server" ID="ddlCaseFiles" DataSourceID="dsMyCaseFiles" DataTextField="Display" DataValueField="FileID" OnPreRender="ddl_PreRender" Width="524px" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="ddlCaseFiles" ToolTip="Casefile Required" InitialValue="-1" Text="*" Display="Dynamic" />
<ajaxToolkit:ListSearchExtender ID="ddlExtCaseFiles" runat="server" PromptCssClass="ListSearchExtenderPrompt" TargetControlID="ddlCaseFiles" BehaviorID="ddlExtCaseFiles" Enabled="True"/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rbByFileName" EventName="CheckedChanged" />
<asp:AsyncPostBackTrigger ControlID="rbByFileID" EventName="CheckedChanged" />
<asp:AsyncPostBackTrigger ControlID="rbMyFiles" EventName="CheckedChanged" />
</Triggers>
</asp:UpdatePanel>
</div>
これがポップアップにコントロールを表示するための私のjavascript関数です:
//create popup with dropdownLists then call moveCaseFile
function getCaseFiles(canCopyTo) {
//create Popup with content from div
$('#casefiles').dialog({
autoOpen: true,
height: 'auto',
width: 'auto',
modal: true,
buttons: {
"Ok": function () {
debugger;
alert("test");
var t = $("#casefiles");
},
Cancel: function () {
$(this).dialog('close');
$("#viewExpensesGrid").flexReload();
}
}
});
}
そして、これが背後にある関連コードです(ラジオボタンの並べ替えとドロップダウンリストのデフォルト値の割り当て):
protected void rbByFileName_CheckedChanged(object sender, EventArgs e)
{
ddlCaseFiles.DataSourceID = "dsCaseFilesReverse";
ddlCaseFiles.DataTextField = "Display";
ddlCaseFiles.DataValueField = "FileID";
}
protected void rbByFileID_CheckedChanged(object sender, EventArgs e)
{
ddlCaseFiles.DataSourceID = "dsCaseFiles";
ddlCaseFiles.DataTextField = "Display";
ddlCaseFiles.DataValueField = "FileID";
}
protected void rbMyFiles_CheckedChanged(object sender, EventArgs e)
{
ddlCaseFiles.DataSourceID = "dsMyCaseFiles";
ddlCaseFiles.DataTextField = "Display";
ddlCaseFiles.DataValueField = "FileID";
}
protected void ddl_PreRender(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
try
{
if (ddl.Items[0].Value != "-1")
ddl.Items.Insert(0, new ListItem("--Select--", "-1"));
}
catch
{
ddl.Items.Insert(0, new ListItem("--Select--", "-1"));
}
}
Ok。詳細を説明する時間です。
ポップアップが表示され、次のように表示されると想定されます。![ここに画像の説明を入力] [1]
myFilesをクリックすると、ドロップダウンリストが並べ替えられ、(ストアドプロシージャを介して)所有しているすべてのファイルが表示されます。したがって、ラジオボタンごとに、(ストアドプロシージャを介して)さまざまな情報でさまざまに並べ替えられます。しかし、私の問題は、ラジオボタンを選択すると(そしてストアドプロシージャを実行する必要がある場合)、次のエラーが発生することです。
Uncaught Sys.WebForms.PageRequestManagerServerErrorException:Sys.WebForms.PageRequestManagerServerErrorException:サーバーでの要求の処理中に不明なエラーが発生しました。サーバーから返されたステータスコードは次のとおりです:404
私がそれを台無しにしていると思うのは、UpdatePanel/AutoPostbackです。ドロップダウンリストを更新するだけでなく、ページも更新しようとしますが、別のリンクなどに更新します。子猫がドロップキックされる前に助けてください
これは私がクロムデバッガーから得るエラーです:
Uncaught Sys.WebForms.PageRequestManagerServerErrorException:Sys.WebForms.PageRequestManagerServerErrorException:サーバーでの要求の処理中に不明なエラーが発生しました。サーバーから返されたステータスコードは次のとおりです:404
AutoPostback = "true"を追加すると、これらのエラーはすべて発生しました。