2016-01-04 10 views
5

Ich arbeite an einem MVC-Projekt, in dem ich ein ViewModel in mehreren Teilansichten innerhalb einer Tabelle anzeigen. Ich habe eine Steuerung, bei der der Benutzer ändern, wie die Tabelle angezeigt wird, wie folgt aus:Die beste Methode zum Sortieren der Seitendisposition auf der Clientseite

<table> 
<tr> 
    <td> 
    partial view 1 partial view 2 
    </td> 
</tr> 
<tr> 
    <td> 
    partial view 3 partial view 4 
    </td> 
</tr> 
</table> 

oder

<table> 
<tr> 
    <td> 
    partial view 1 
    </td> 
</tr> 
<tr> 
    <td> 
    partial view 2 
    </td> 
</tr> 
<tr> 
    <td> 
    partial view 3 
    </td> 
</tr> 
<tr> 
    <td> 
    partial view 4 
    </td> 
</tr> 
</table> 

Jedes Mal, wenn ein Benutzer ändern möchte, wie die Ansicht angezeigt wird, muss er Klicken Sie auf den Submit-Button der von, und die Anwendung muss die Anfrage an den Server stellen, die Ergebnisse erhalten und gemäß einem Flag (TableDisposition = 1 oder 2) einige divs laden.

Ich weiß, das ist nicht der beste Weg, es zu tun, aber mein Mangel an Wissen in Bezug auf clientseitige Codierung (javascript/jquery) macht es mir unmöglich, dies auf eine effizientere Weise zu tun.

Jede Eingabe wird sehr geschätzt.

BEARBEITEN: Gelöst in den Kommentaren.

+0

wird sich das Ergebnis ändern, wenn der Benutzer auf die Schaltfläche Senden klickt? oder es gibt das gleiche Ergebnis zurück? –

+0

Wenn der Benutzer eine neue Anfrage mit der Senden-Schaltfläche absetzt, werden sich die Ergebnisse ändern. Das wird erwartet, weil es eine Such-/Detailansicht ist. – Rambo3

+1

Sie legen einfach eine neue Schaltfläche, um die Ansicht zu ändern. Füllen Sie beide div mit Werten, wenn Sie auf Senden klicken und nur ein div anzeigen. Wenn Benutzer auf die Schaltfläche klickt, um die Ansicht zu ändern, blende das aktuelle div aus und zeige das andere div .. –

Antwort

1

Zuerst habe ich angefangen, das viewModel in zwei Tabellen zu laden, jede in einem Div mit absoluter Positionierung. Dann machte ich eine Funktion einer dieser Tabellen zu verstecken:

$(function() { 
     $("#divTable1").css('visibility', 'hidden'); 
}); 

Schließlich habe ich eine Funktion, die durch Drücken einer Taste ausgelöst wird:

$("#btnAlternateView").click(function() { 
    if ($("#divTable2").css('visibility') == 'hidden') { 
     $("#divTable2").css('visibility','visible'); 
     $("#divTable1").css('visibility', 'hidden'); 
    } 
    else { 
     $("#divTable2").css('visibility','hidden'); 
     $("#divTable1").css('visibility', 'visible'); 
    } 
}); 

Und das war es. Klappt wunderbar.

Verwandte Themen