[英]Dynamic menu options in an ASPX page rendered by C#
我有一個ASPX DropDownList,其ListItem必須從Dynamics CRM中的值動態填充。
觸發某些輸入標簽時更改頁面元素的可見性不是問題-用動態asp:ListItems填充asp:DropDownList是。
具體來說,在加載頁面時,下拉菜單中可見的ListItem必須從我們CRM中每小時更新的最新實體列表中即時填充。
據我所知,ASPX本身不能包含用於C#的邏輯,但是我不知道如何以這種方式填充ListItems。
我確實遇到了這個人的解決方案:
http://aspsnippets.com/articles/creating-dynamic-dropdownlist-controls-in-asp.net.aspx
但是在嘗試對其進行編譯以查看其功能時,我收到了有關多個表單標簽的錯誤。
有任何想法嗎?
具體來說,我有以下ASPX:
<asp:DropDownList id="location" runat="server" onselectedindexchanged="updateOther">
<asp:ListItem>North</asp:ListItem>
<asp:ListItem>South</asp:ListItem>
<asp:ListItem>West</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList id="other" runat="server">
<asp:ListItem>Option 1</asp:ListItem>
<asp:ListItem>Option 2</asp:ListItem>
<asp:ListItem>Option 3</asp:ListItem>
</asp:DropDownList>
我需要它,以便根據在“位置”下拉列表中選擇的位置,使用來自CRM的最新值來更改/更新“其他”中的可用選項。 同樣,“其他”中的值將從“ updateOther”方法中對我們的CRM數據庫進行的即時查詢中填充。
不知道我是否很好地理解了您的問題,但是如果我是您,我會將另一個下拉列表放入用戶控件中,通過jquery將查詢數據作為json參數傳遞給它,並在每次請求時將其加載,如下所示
$.ajax({
type: "POST",
url: "default.aspx/LoadUserControl",
data: "{query: '" + $("#location").val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
//Clear the div before load
$("#SomeDIVinYourPage").before(r.d);
}
});
在你的代碼背后
[WebMethod]
public static string LoadUserControl(string query)
{
using (Page page = new Page())
{
UserControl userControl = (UserControl)page.LoadControl("OtherUserControl.ascx");
page.Controls.Add(userControl);
using (StringWriter writer = new StringWriter())
{
page.Controls.Add(userControl);
HttpContext.Current.Server.Execute(page, writer, false);
return writer.ToString();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.