У меня есть ситуация, когда на странице есть 7-8 выпадающих списков, которые имеют большой объем данных для привязки. У меня есть список радиокниг с двумя вариантами выбора и при выборе любого из них я получаю данные из кеша и связываю все выпадающие списки, которые занимают около 6-7 секунд. Но я не использую весь раскрывающийся список каждый раз, поскольку базовая функциональность основана на диапазоне дат. Поэтому я думал, что если бы я мог загрузить раскрывающийся список по требованию, то есть по щелчку стрелки вниз, я бы привязал выпадающее меню, это было бы лучше, и пользователю не нужно было ждать эти 6-7 секунд при переключении между radioobuttonlist выбор. Я попытался вызвать функцию JS в раскрывающемся списке onClick и оттуда уволить событие одной кнопки. Я получаю данные, населенные щелчком выпадающего меню, но выпадающее меню рушится, как только данные привязаны, и пользователь должен снова щелкнуть, чтобы выбрать из выпадающего списка элементов. Мне просто интересно, может ли кто-нибудь дать мне идею, чтобы выпадающий список не будет рушиться и остается после привязки, или полное представление о ленивой загрузке выпадающего списка. Я также указал некоторые из моего кода из моего POC.Загрузка выпадающего списка по щелчку стрелки раскрывающегося списка/ленивая загрузка выпадающего списка
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/ xhtml1- transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" language="javascript">
function load() {
//debugger;
var dropdown = document.getElementById('DropDownList1');
var ln = dropdown.options.length;
if (ln == 0) {
var btn = document.getElementById('Button1');
btn.click();
}
dropdown.click();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"/>
<div>
<asp:DropDownList ID="DropDownList1" runat="server" onClick="javascript:load();">
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" Style="display: noone;"/>
</div>
</form>
</body>
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
ArrayList arr = new ArrayList();
arr.Add("Item1");
arr.Add("Item2");
arr.Add("Item3");
DropDownList1.DataSource = arr;
DropDownList1.DataBind();
}
}
</html>