Jqgrid Baum-Ansicht Adjacencey
Ich bin mit Jqgrid Tree-View-Modell in ma-Anwendung, und was ich sehen kann ist, dass es zeigt Fehler, die als Objekt oder Eigenschaft nicht unterstützt habe grid.Treeview.js und andere Jqgrid-Skript-Datei. Ich weiß nicht, was kann das Problem sein.
Und wenn ich überprüft Sie die Beispielanwendung im Netz für angrenzens Baum-Ansicht und ich habe versucht, die gleiche Sache, aber in asp.net mit den lokalen Daten, die ich nicht bekommen habe. Kann einer mir helfen, wie das gleiche zu tun.
Vielen Dank im Voraus
Dies ist der Beispielcode, der im mit und ich nicht, ob es funktioniert oder nicht.
var myTreeGrid = new Ext.us.tree.TreeGrid({
columns: columnsConfig,
rootVisible: false,
root: rootNode,
loader: new Ext.ux.tree.TreeGridLoader({preloadChildren: true})
});
var rootNode = $('#treegridsamp').jqgrid({
treeGrid: true,
treeGridModel: 'adjacecncy',
ExpandColumn: 'name',
datatype: "local",
mtype: 'Get',
colNames: ['id','Name','MenuId','Menu Name'],
colModel: [
{name:'RowId',index:'RowId',width:300,fixed:true},
{name:'Name',index:'Name',width:300,fixed:true},
{name:'MenuId',index:'MenuId',width:300,fixed:true},
{name:'MenuName',index:'MenuName',width:300,fixed:true},
],
root:[
{id:"1",Name:"Main Menu", MenuId:"1",MenuName:"Menu1"},
{id:"2",Name:"Main Menu1",MenuId:"2",MenuName:"Menu2"},
{id:"3",Name:"Main Menu2",MenuId:"3",MenuName:"Menu3"}
],
pager: '#dvtreegridsamp',
Caption: 'Sample Tree View Model'
})
$("#treegridsamp").jqGrid('navGrid', '#dvtreegridsamp',
{ edit: false, add: false, del: false, search: false, refresh: false });
var mydata=[
{id:"1", Name:"Main Menu", MenuId:"1",MenuName:"Menu1"},
{id:"2", Name:"Main Menu1", MenuId:"2",MenuName:"Menu2"},
{id:"3", Name:"Main Menu2", MenuId:"3",MenuName:"Menu3"},
{id:"1.1", Name:"Sub Menu", MenuId:"1",MenuName:"Menu1"},
{id:"1.2", Name:"Sub Menu1", MenuId:"1",MenuName:"Menu1"},
{id:"1.1.1",Name:"Sub Sub Menu",MenuId:"1",MenuName:"Menu1"},
{id:"2.1", Name:"Main Menu", MenuId:"2",MenuName:"Menu2"},
{id:"2.2", Name:"Main Menu", MenuId:"2",MenuName:"Menu2"},
{id:"3.1", Name:"Main Menu", MenuId:"3",MenuName:"Menu3"},
{id:"3.2", Name:"Main Menu", MenuId:"3",MenuName:"Menu3"},
];
for(var i=0;i<mydata.length;i++) {
$("#treegridsamp").jqGrid('addRowData',i+1,mydata[i]);
}
könnten Sie hängen Sie Ihre Frage mit der JavaScript-und Testdaten, die verwendet werden können, um Ihr problem reproduzieren? Ihre aktuellen problem-Beschreibung ist zu allgemein.
Ich habe befestigt Bitte sehen Sie es und helfen Sie mir, dies zu wissen, in einen besseren Weg, so dass ich weiter fortfahren können
Was ist
Ich meinte, dass du groß - / Kleinschreibung in
Anstelle der Verwendung
Ich habe befestigt Bitte sehen Sie es und helfen Sie mir, dies zu wissen, in einen besseren Weg, so dass ich weiter fortfahren können
Was ist
Ext.us.tree.TreeGrid
und Ext.ux.tree.TreeGridLoader
? Warum verwenden Sie $('#treegridsamp').jqgrid
und nicht $('#treegridsamp').jqGrid
?Ich meinte, dass du groß - / Kleinschreibung in
$('#treegridsamp').jqgrid({treeGrid: true, treeGridModel: 'adjacecncy',...
Sie verwenden sollten $('#treegridsamp').jqGrid({...
statt (jqGrid und nicht jqgrid).Anstelle der Verwendung
addRowData
nach dem raster definiert ist. sollten Sie besser direkt data:mydata
parameter von jqGrid. Die RowId
Spalte undefiniert ist in Ihren Daten. Wollen Sie benennen Sie die Spalte-Namen zu id
?InformationsquelleAutor hkv | 2011-03-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du code kleine simple Fehler, aber das größte problem, das Sie haben, ist, dass Ihr code vorgenommen werden, fügen Sie einfach Zeilen und nicht-Baum-Knoten. Sie können gehen auf die offizielle demo-Seite und wählen Sie unter "Neues in version 3.4" die demo "- Baum Grid-Nähe-Modell".
Schrieb ich die demo, die funktionieren genau wie die demo von der demo von der trirand demo-Seite, aber verwenden nur lokale Daten:
In den Fall, Sie haben zu erweitern die Objekte aus
mydata
mit den Eigenschaftenlevel
,parent
,isLeaf
,expanded
:Hier habe ich etwas modifiziert-id-Werte, denn die Punkte sollten nicht verwendet ids. Zusätzlich habe ich den
expanded
status des "Main Menu1" zutrue
zu demonstrieren nur, dass Sie expandiert einige Knoten automatisch sofort nach dem laden.Modifizierte ich die jqGrid die definition der folgenden
Machte ich den 'id' - Spalte ausgeblendet und reduziert die grid-Größe. Hinzufügen, um die Daten, die ich verwendet
addJSONData
Methode, da es die Knoten im BaumAls Ergebnis erhalten Sie
Sehen Sie die demo-live -hier.
AKTUALISIERT: Wenn Sie jqGrid version 4.0 oder höher ist es wichtig, sich
loaded:true
Eigenschaft für die Baum-Knoten, wenn Sie wollen, weiter ausgebaut haben. Zum Beispiel in dem obigen Beispiel die "Main Menu1" - Element ist ein Knoten (isLeaf:false
), die angezeigt werden sollen ausgebaut (expanded:true
), so sollte man hinzufügenloaded:true
für die item-definition:Weitere Beispiele siehe hier, hier, hier und hier.
AKTUALISIERT 2: Um die Sortierung korrekt zu verwenden
parent:null
oderparent:"null"
stattparent:""
sehen hier für mehr details.Sie sind herzlich willkommen! Ich habe gesehen, dass Sie hat 0 Bewertungen in Ihrem Profil. Wahrscheinlich wissen Sie nicht, dass beginnend mit 15 Renommee-Punkte, die Sie haben Stimmrecht jede Antwort oder Frage. Es sind die einfache Regel: "Wie Sie sehen, die neue Antworten auf Ihre Frage, Stimmen die hilfreichen durch klicken auf den aufwärts weisenden Pfeil Links neben der Antwort.". Die Abstimmung ist sehr wichtig für die stackoverflow-und ich empfehle Ihnen, es zu benutzen.
Ich wollte schreiben in trirand forum kleinen Vorschlag zu machen kleine änderungen in den jqGrid-code zu erlauben, zu verwenden
data
mit Baum grid ohne, benötigt, um zusätzliche call ofaddJSONData
. Ich hoffe also, dass in der nächsten version von jqGrid es wird nicht mehr benötigt.Wie ich versprochen, die ich gepostet Vorschlag, um kleine änderung in jqGrid-code, damit die
data
parameter direkt verwendet werden können.Oleg, ich danke Ihnen so sehr für deine klare, präzise und ausführliche Antwort, Ihre live-Beispiel, und für die folgenden bis Wochen später mit relevanten Informationen. Ich habe gekämpft, mit diesem Thema für Stunden, bevor Sie endlich dieses stack overflow Seite und Sie beantwortete meine Frage sofort. Ich wünschte, ich könnte Stimmen, die Sie mehr als einmal. Cheers, Lee.
InformationsquelleAutor Oleg