ASP.NET C#をAJAX Professionalで使用しています(http://www.ajaxpro.info)
1)Panelコントロールを備えたdivコンテナがあります。Panelコントロールは、codebehind関数で生成されるDropDownListを保持する必要があります。
<div id="divDDL" runat="server">
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
</div>
2)コードビハインド関数にデータを送信するJSスクリプト関数「getDDL」があり、生成されたPanelおよびDropDownListコントロールで応答を受信します。
function getDDL(lng)
{
MyCodebahindClass.GetDDL(0, lng, callbackDDL);
//callbackDDL is a response function
}
function callbackDDL(response)
{
//here the response with the generated DropDownList and Panel control comes to the div element
document.getElementById('<%=divDDL.ClientID %>').innerHTML = response.value;
}
3)Codebehind関数 "GetDDL"は、生成されたDropDownListをPanelコントロール内に返す必要があります。
[Ajax.AjaxMethod]
public Panel GetDDL(int itemId, int lng)
{
PanelID = Panel1.ID;
DropDownList rubricDDL = new DropDownList();
rubricDDL.ID = "Fashionable_Catheter";
rubricDDL.DataTextField = "title";
rubricDDL.DataValueField = "id";
rubricDDL.DataSource = %LINQ STUFF%;
rubricDDL.DataBind();
panelID.Controls.Add(rubricDDL);
return panelID;
}
4)JS応答を介して生成されたPanelとDropDownListを取得しようとすると、「System.Web.UI.Design.Panel」などのテキストのみが表示され、DropDownListのみを生成しようとしました。同様のテキストが「System」と表示されます。 Web.UI.Design.DropDownList」。
しかし、これら2つのコントロールを取得するために分離コード関数を呼び出すと、問題なく表示されます。JSで取得できないのはなぜですか?私はすべてをうまく行い、何百万回もデバッグしましたが、問題は見られませんでした。JavaScriptの何が問題になっているのか理解できませんか?どんな助けでも大歓迎です。