2014-02-25 6 views
5

DropDownLists SelectedIndexChanged() Event füllt die ListBox auf der Seite. Offensichtlich wird die Seite zurück auf den Server gestellt. Gibt es eine Möglichkeit, dies ohne vollständiges Postback zu erreichen?Wie DropDownLists SelectedIndexChanged() ohne PostBack funktioniert?

protected void ddlTablo_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    List<string> list = new List<string>(); 
    ListBox1.Items.Clear(); 
    var columnNames= from t in typeof(Person).GetProperties() select t.Name; 
    foreach (var item in columnNames) 
    { 
     list.Add(item); 
    } 
    ListBox1.DataSource = list; 
    ListBox.DataBind(); 
} 

Antwort

6

Sie könnten die DropDownList in eine <asp:UpdatePanel> setzen und AutoPostBack="true" auf die DropDownList setzen. Sie müssen den Trigger auf das Ereignis SelectedIndexChanged setzen.

Etwas Ähnliches (nicht vergessen, das Script Manager)

<asp:ScriptManager ID="ScriptManager1" runat="server" /> 

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:DropDownList ID="drop1" runat="server" OnSelectedIndexChanged="ddlTablo_SelectedIndexChanged" /> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostbackTrigger ControlID="drop1" EventName="SelectedIndexChanged" /> 
    </Triggers> 
</asp:UpdatePanel> 
+0

Hallo, kannst du bitte erklären, welchen Unterschied der "AsyncPostbackTrigger" macht? Für mich sieht es so aus, als hätte ich den gleichen Effekt ohne es? Da setze ich das erste Dropdown auf AutoPostBack = "true". (Im Aktualisieren einer zweiten DDL nach was in der ersten gewählt wurde) –

+0

Sie können eine Antwort auf Ihre Frage hier sehen: http://stackoverflow.com/questions/15330089/difference-between-asyncpostbacktrigger-and-postbacktrigger-on-updatepanel . Im Grunde wird ein Sync-Postback das gesamte Formular posten und laden, während ein Async-Postback nur einen Teil der Seite neu lädt. – slfan

3

können Sie Ajax-Aufruf senden, asp.net mit UpdatePanel oder jQuery ajax verwenden. Dies tut Postback nicht und Ihre ganze Seite wird nicht aktualisiert.

Das UpdatePanel ist recht einfach und einfach zu bedienen. ASP.net ajax wird die asyn-Aufrufe für Sie generieren, während jQuery ajax Sie wahrscheinlich benötigen, um HTML mit Javascript zu rendern.

+0

Was für gehen? – Jude

+1

Jede Art von Ajax (Async-Aufruf) könnte verwendet werden. – Adil

0

Im Code-Snippet, fügen Sie diesen Parameter: AppendDataBoundItems="True"

<asp:DropDownList ID="ddlGroupNameFilter" 
    runat="server" 
    AutoPostBack="true" 
    AppendDataBoundItems="true" 
    OnSelectedIndexChanged="ddlLeadgroupName_SelectedIndexChange"> 
</asp:DropDownList> 
Verwandte Themen