Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leute, ich habe ein Problem und zwar habe ich ein GridView in meinem Framework, welches sich ExtJS schimpft. Dort werden diverse Daten in gruppenansicht (Groupingstore) hineingeladen und angezeigt. So nun will ich aber andere aktuellere Daten dort angezeigt bekommen, nur die Frage ist wie aktualisiere, update oder refreshe ich diese Tabelle? Dieses Framework ist sehr umfangreich und kompliziert. Danke im Voraus

Geschrieben

Viele Dank erstmal :) Ja das mit dem Refresh hab ich schon in der API gelesen nur ich weiss nicht wie ich das anwende. ich bin totaler ExtJS Neuling:(

Hier ist einmal der DataStore:

aktuell_DataStore = new Ext.data.GroupingStore({

groupOnSort: true,

//Verbindung zu der database.php herstellen, da diese Datei die Daten anfordert

proxy: new Ext.data.HttpProxy({

url:'database.php',

method: 'GET',

timeout:9000000

}),

baseParams:{ip: ip_num, dataToshow: data_show, task: "GETALL"},

autoLoad: true,

//Ein Parser, der die gelieferten Daten unterteilt und in Bereiche aufteilt

reader: new Ext.data.JsonReader({

root:'results',

totalProperty:'total',

id: 'id'

},[

{name: 'hostname', type:'string', mapping:'hostname'},

{name: 'ipv4_addr', type:'string', mapping:'ipv4_addr'},

{name: 'ipv6', type:'string', mapping:'ipv6'},

{name: 'ondemand', type:'string', mapping:'ondemand'},

{name: 'command', type:'string', mapping:'command'},

{name: 'datetime', type:'string', mapping:'datetime'},

{name: 'profile', type:'string', mapping:'profile'},

{name: 'description', type:'string', mapping:'description'},

{name: 'result', type:'string', mapping:'result'}

]),

//Das Feld datetime ist die aktivierte Spalte die angezeigt wird, wenn der Geraetetab offen ist

sortInfo: {field: 'datetime', direction: "ASC"},

groupField: 'datetime'

});

und hier einmal das Grid:

aktuell_ListingEditorGrid = new Ext.grid.GridPanel({

monitorResize:true,

id: 'aktuell_ListingEditorGrid',

store: aktuell_DataStore,

cm: aktuell_ColumnModel,

anchor:'100% 90%',

viewConfig: {forceFit:true},

plugins: [expander,new Ext.ux.grid.GridFilters({ //Im Menue des Spaltennamens wird ein Filter implementiert

filters:[{type: 'string', dataIndex: 'datetime'}, //der nach einem eingegebenen Datum Filter

{type: 'string', dataIndex: 'command'},

{type: 'string', dataIndex: 'ondemand'}]

})],

loadMask:true,

listeners:{

render: function(aktuell_ListingEditorGrid){

aktuell_ListingEditorGrid.loadMask.show();

},

delay : 100,

single : true

},

renderTo: document.body,

columnLines: true,

view: new Ext.grid.GroupingView({

startCollapsed: true,

forceFit: true,

groupTextTpl:'{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'

}),

Wo muss ich jetzt was machen? o.O

Geschrieben

Schau dir mal das Beispiel unter http://dev.sencha.com/deploy/dev/examples/grid/binding-with-classes.js an.

Vielleicht reicht dir ja bereits der Aufruf:


Ext.StoreMgr.get('gridBookStore').load();

Wobei, du noch die storeId setzen und anpassen must. Oder du probierst es mit:

aktuell_DataStore.load();

Du kannst das ganze periodisch in einem Interval machen oder über ein Element auslösen.

Vielleicht must du auch bei wiederholten Aufrufen die reload-Methode des Stores benutzen (siehe http://dev.sencha.com/deploy/dev/docs/output/Ext.data.Store.html).

Geschrieben

ok gut ich hab das jetzt eingefügt an der stelle wo ich es haben möchte.

jetzt hab ich nur noch ein kleines problem und zwar wie bekomme ich jetzt meine ermittelten daten aus der datenbank in die tabelle? übrigens reload habe ich gestern ebenfalls versucht nur bei mir hat es nicht geklappt und heute wo du es sagst geht es :S. hm naja aufjedenfall muss ich doch die daten aus der DB als paramter an die load bzw reload funktion übergeben oder?

Geschrieben
hm naja aufjedenfall muss ich doch die daten aus der DB als paramter an die load bzw reload funktion übergeben oder?

Das Reload sollte deinen Store aktualisiert haben. Jetzt sollte da Update deiner UI via refresh() den Rest erledigen.

Geschrieben

kannst du mir das ein meinem code zeigen wo ich das platzieren muss bzw wie die anweisung lautet. refresh macht sinn aber ich weiß nicht mit was ich das in verbindung bringen soll. muss ich das so machen:

Ext.StoreMgr.get('aktuell_DataStore').refresh();

oder wie?

Geschrieben

das mit getview() bringt nichts weil er das aktuell_listingeditorgrid allgemein nicht kennt. somit kann er auch nicht drauf zugreifen. er refresht die tabelle also lädt irgendwas aber übernimmt keine werte

zwei infos noch:

1. ich will das datastore und das grid aus einer anderen datei refreshen

2. die daten aus der DB liegen mir als json codierte daten vor

und die ermittelten daten muss ich doch i-wie an das datastore wieder übergeben

Geschrieben

das ist mir schon klar aber es muss trotzdem möglich sein das store aus einer anderen datein zu aktualisieren. ich meine im grunde genommen lädt er die sachen ja neu nur wenn ich die ermittelten daten nirgends übergebe wie soll er sie dann anzeigen?^^

Geschrieben

Du erzeugst ein Store-Objekt. Dieses kann dazu genutzt werden die Daten zu aktualisieren (neu einlesen).

Die View hält eine Referenz auf dieses Objekt und wird gerendert. Ändert sich das Model (der Store), muss die View neu gerendert werden. Wird keine Referenz gehalten, sondern eine Kopie, erfolgt vor dem erneuten Rendern eine Zuweisung des neuen Stores.

Du kannst dein Panel als globale Variable anlegen, entweder direkt unter document oder an ein beliebiges Objekt hängen.

Geschrieben

kannst du mir das anhand meines oben geposteten quellcodes zeigen wo ich das objekt erzeugen muss. ich hab kaum erfahrung mir dem framework deswegen frage ich soviel nach. ich hab ein großes problem damit zu verstehen wie ich die neu ermittelten daten jetzt an den datastore übergebe, weil wenn ich den datastore nur neu lade also mit .load() dann hat er ja immernoch nciht die ermittelten daten. die liegen ja immernoch in einer variable bei mir.

ich übergebe einen wert an eine datenbank php worauf mir dann werte aus der datenbank geliefert werden. die gelieferten werte sind in der variable content enthalten und jetzt will ich sie wie schon erwähnt in das grid bekommen, wo allerdings schon werte enthalten sind.

if (window.XMLHttpRequest)

{

xmlhttp=new XMLHttpRequest();

xmlhttp.open("POST","database.php",true);

xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

xmlhttp.send('wert='+searchvalue+'&dataToshow='+data_show+'&task=SEARCHING');

xmlhttp.onreadystatechange = interpretRequest;

var content = xmlhttp.responseText;

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...