Laden dropdownlist auf klicken Sie auf den dropdown-Pfeil/lazy loading von dropdown

Ich habe eine situation, wo auf der einen Seite gibt es 7-8 dropdowns, die große Menge an Daten gebunden werden. Ich habe eine radiobutton-Liste mit 2 Auswahlmöglichkeiten und auf die Auswahl einer von Ihnen, der ich die Daten aus dem cache und binden alle dropdowns, die dauert etwa 6-7 Sekunden. Aber, ich brauche nicht alle der dropdown-jeder Zeit als grundlegende Funktionalität basiert auf einen Datumsbereich. Also dachte ich mir , wenn ich könnte, laden Sie die dropdown-on-demand, d.h. auf klicken Sie auf der dropdown-Pfeil, ich würde binden Sie das dropdown, das es besser wäre und der Benutzer nicht warten, für diejenigen, die 6-7 Sekunden beim Umschalten zwischen dem radiobuttonlist-Entscheidungen. Ich habe versucht, den Aufruf einer JS-Funktion auf dropdown onClick und von dort nur ein button event. Ich bin immer die Daten aufgefüllt dropdown-click-aber das dropdown bekommt zusammenbrach, sobald die Daten gebunden ist, und Benutzer müssen klicken Sie erneut auf wählen Sie aus der dropdownlist Elemente.Ich Frage mich, ob jemand kann mir eine Vorstellung also, dass das dropdown nicht zusammenbrechen und bleibt nach dem binden, oder sonst eine volle Idee von lazy loading von der dropdown-Liste. Ich habe auch angegeben, manche meinen code von meinem 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>
InformationsquelleAutor user258427 | 2010-09-17
Schreibe einen Kommentar