2016-05-31 3 views
0

Ich folgte nur, aber meins ist in php, Show different Jqgrid formats in the same page Ich möchte auch die gleiche Art von Optionen, wenn ich ein Element aus Dropdown auswählen alle Spalten außer wenigen verstecken möchten, vor allem ich nicht verstanden dies und wie diesen Code zu schreiben, in phpZeige verschiedene Spalten auf Auswahl von Dropdown in jqGrid

<table width="100%"> 
<tr> 
<td>Tipo de Equipo :</td> 
<td><% =Html.DropDownList("TipoId", (SelectList)ViewData["tiposdeEquipo"], "--Seleccione--", new { @id = "displaydropdown" })%> </td> 
</tr> 
<tr> 
<td colspan="2"><input type="submit" value="Mostrar" /></td> 
</tr> 
</table> 

wie dieser Code funktioniert, indem das Mostrar klicken, helfen Sie mir bitte ich ein Anfänger bin.

Dies ist mein Code

<select id="displaydropdown" name="displaydropdown"> 
<option selected>Change Type</option> 
<option value="A">option1</option> 
<option value="B">option2</option> 
<option value="C">option3</option> 
</select> 

<div class="box A" align="center"><table id="jqGrid" ></table><div id="jqGridPager"></div></div> 
<script type="text/javascript"> 

var lastsel; 

$(function() { 
     $("#jqGrid").jqGrid({ 
     url:'server.php', 
     editurl: 'update.php', 
     datatype: "json", 
     shrinkToFit: true, 
     colModel:[ 
      {label:'COUNT',name:'ID',align:"center"}, 
      {label:'EMPLOYEE LOGIN',name:'Employee_Login',align:"center"}, 
      {label:'NEW LEAD',name:'New_Value',align:"center"}, 
      {label:'REASON/COMMENTS',name:'Requestor_NOTES',align:"center"}, 
      {label:'EXISTING LEAD',name:'Existing_Value',align:"center"}, 
       ],    
     rowNum:200, 
     rowList:[400,300,200], 
     onCellSelect: function (rowid, iCol, cellcontent, e) { 
      if (rowid && rowid !== lastsel) { 
       $('#jqGrid').restoreRow(lastsel); 
       lastsel = rowid; 
      } 
     $('#jqGrid').editRow(rowid, true, iCol); 
      }, 
     pager: '#jqGridPager', 
     sortorder: "asc", 
     viewrecords: true, 
     height:'300px', 
     width:'750' 

    }); 
    jQuery("#jqGrid").jqGrid('navGrid',"#jqGridPager",{edit:false,add:false,del:false,search:false}); 
    //$('#jqGrid').jqGrid('setGridWidth', '1300'); 
    }); 

    $("#displaydropdown").change(function() { 
     var display = $("#displaydropdown option:selected").val(); 
     if (display == 'A') 
     { 
      $('#jqGrid').hideCol('ID'); 
      $('#jqGrid').showCol('Req_Date'); 
      $('#jqGrid').showCol('App_WeekBeginning'); 

     } 
     else if (display == 'B') { 
      $('#jqGrid').hideCol('App_WeekBeginning'); 
      $('#jqGrid').showCol('Req_Day'); 
      $('#jqGrid').showCol('App_Week'); 

     } 
     else if (display == 'C') { 
      $('#jqGrid').hideCol('App_Week') 
      $('#jqGrid').showCol('ID'); 
      $('#jqGrid').showCol('Req_Date'); 
     } 
    }); 



</script> 
+0

Welches Problem genau hast du (was ist nicht funktionieren)? Der Code 'jQuery (document) .ready (function() {...});' und '$ (function() {...});' tu ** das gleiche **: du solltest nicht platzieren eine wartet auf das Dokument, das in einem anderen bereit ist. Welches Format haben die Daten von 'url:' server.php'' (ein Beispiel mit 2-3 Zeilen wäre hilfreich)? Sie sollten niemals 'name' -Eigenschaft in' colModel' mit den Werten verwenden, die Leerzeichen (wie ''NEW LEAD'') oder Sonderzeichen' name:' EXISTING LEAD' enthalten. Es ist schlecht, 'index'-Eigenschaften zu verwenden. Wahrscheinlich möchten Sie 'label: 'EMPLOYEE LOGIN', Name: 'Req_Date'' verwenden? – Oleg

+0

Es ist wichtig, in jede Frage über jqGrid die Information aufzunehmen, welche Version von jqGrid Sie verwenden und von welchem ​​fork von jqGrid ([freies jqGrid] (https://github.com/free-jqgrid/jqGrid), kommerziell [Guriddo jqGrid JS] (http://guriddo.net/?page_id=103334) oder ein altes jqGrid in Version <= 4.7). Eine weitere häufige Bemerkung: Ich würde Ihnen empfehlen, [die Antwort] (http://stackoverflow.com/a/34976517/315935) zu betrachten, die ein Beispiel für das Aufrufen von 'editRow' und' restoreRow' in 'beforeSelectRow' zeigt und 'onSelectRow' und die Verwendung von' savedRow' Parameter anstelle von 'liessel'. – Oleg

+0

Danke @Oleg für die Antwort, ich werde umbenennen zu Label von Name. Ich benutze [Guriddo jqGrid JS] (http://guriddo.net/?page_id=103292), –

Antwort

1

Die Methoden showCol und hideCol sollte den Wert von name Eigenschaft von colModel und nicht der Wert von index Eigenschaft, wie in Ihrem aktuellen Code verwenden. Darüber hinaus wird die name-Eigenschaft verwendet, um id einiger interner jqGrid-Elemente zu erstellen. Daher sollte der Wert der Eigenschaft name keine Leerzeichen enthalten, die in HTML5 verboten sind (siehe here). Ich nehme an, dass Sie

{label:'EMPLOYEE LOGIN',name:'Req_Date',align:"center"} 

zum Beispiel statt

{name:'EMPLOYEE LOGIN',index:'Req_Date',align:"center"} 

Nach den Änderungen der Code $('#jqGrid').showCol('Req_Date'); sollte funktionieren verwenden wollte.

+0

, ich habe diesen dummen Zweifel, nehme an, dass ich in meiner MySQL-Datenbank eine Tabelle mit 3 Spalten 'ID',' FIRSTNAME', 'LASTNAME' habe. wie man diese Spaltennamen verwendet, um Daten mit jqGrid zu holen. Ich dachte, 'name' Schlüsselwort in' colModel' zu verwenden. –

+0

und können Sie meinen Code überprüfen, ich habe es bearbeitet .. ist es korrekt –

+0

@SunilSharma: Funktioniert der Code jetzt? Können Sie Spalten verstecken/anzeigen? Die Namen der Spalten der Tabellen in der Datenbank können keine Beziehung zum Format der Daten haben, die Sie vom Server zurückgeben. Ich habe dich in meinem ersten Kommentar gefragt: ** Welches Format haben die Daten von URL: 'server.php' (ein Beispiel mit 2-3 Zeilen wäre hilfreich)? **. Wie viele Zeilen insgesamt möchten Sie anzeigen lassen (100, 1000, 10000, 1000000)?Ihr aktueller Code verwendet keine 'loadonce: true' Optionen, daher haben Sie wahrscheinlich ** Server Side ** Paging und Sortierung von Daten implementiert. Ist es so? – Oleg

Verwandte Themen