[ASP.NET/VB] "Queuen" van stored procedures tussen postbacks

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 06-09 20:35

Wijnbo

Electronica werkt op rook.

Topicstarter
Huidige situatie:

Pagina met data, bewerkingen door gebruiker. "Opslaan" knop. Binnen pagina losse "grids" met te bewerken data. Nu is het zo dat de pagina zelf (Losse tekstvelden, dropdownlists, etc) opgeslagen wordt met een druk op de opslaan knop. Pagina wordt opgeslagen via een stored procedure

Echter, data in grids word per row opgeslagen, dus elke keer dat een row bewerkt is, word deze opgeslagen / geannuleerd. Per "rowsave" wordt een SP aangeroepen.

Gewenste situatie:
Gehele pagina opslaan in 1 keer.
Mooiste is dat de gebruiker lekker kan klussen met de rows, en dat de pagina op de 1 of andere manier de verschillende stored procedures bijhoudt. Is hier een bepaalde techniek voor?

Zelf zat ik al te denken aan dingen opslaan in een sessie of viewstate, maar ik heb het gevoel dat dit beter kan.
Maak overigens gebruik van LINQ, en pagina staat in updatepanel. De grids staan zelf ook weer in een updatepanel.

Wie heeft hier een goed idee over? Het liefst zou ik verschillende stored procedures "queuen" en in 1 keer doorvoeren in een button click method.

Acties:
  • 0 Henk 'm!

Verwijderd

Kan je niet het probleem oplossen door met AJAX per bewerking informatie op te slaan? Hierdoor wordt er alleen rekenkracht/bandbreedte gebruikt wat er nodig is. :)

Acties:
  • 0 Henk 'm!

  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 06-09 20:35

Wijnbo

Electronica werkt op rook.

Topicstarter
Verwijderd schreef op donderdag 04 februari 2010 @ 11:14:
Kan je niet het probleem oplossen door met AJAX per bewerking informatie op te slaan? Hierdoor wordt er alleen rekenkracht/bandbreedte gebruikt wat er nodig is. :)
Heb je daar een voorbeeld van? Ik zit wel vast aan de stored procedures.

Acties:
  • 0 Henk 'm!

Verwijderd

Wijnbo schreef op donderdag 04 februari 2010 @ 11:22:
[...]


Heb je daar een voorbeeld van? Ik zit wel vast aan de stored procedures.
Sure, je moet hier denken aan wat frontend (javascript) code. Het makkelijkste is om hiervoor een toolkit zoals Prototype of Dojo te gebruiken. Met behulp van dojo toolkit ziet een dergelijke event handler er zo uit:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Clicked a button named rowButton in a grid, resulting in a AJAX procedure
dojo.connect(rowButton, 'onclick', doAjax);

  function doAjax() {
   
   var rowID = 123; //Get the rowID
   
    var rowObj = new Object();
    rowObj.var1 = 'Row var 1';
    rowObj.var2 = 'Row var 2';
    //Filling an object with data from the row and then serialize the data
    var rowdata = dojo.toJson(rowObj);

  dojo.xhrPost({
    url:'/server/controller/action',
    handleAs:'text',
    postData:'rowid=' + rowID+ '&data=' + rowdata,
    load:function(transport){
      //Do something with the server response
    }
  });
}


Serverside zal je na het verzenden van de data dan de informatie moeten verwerken en in een database wat veranderen. De server stuurt informatie terug (of enkel een code HTTP:200) als alles goed is verlopen) waarna je code de callback functie uitvoert.

Ik zal even zoeken of ik ergens live een goed voorbeeld voor je kan vinden :)

Acties:
  • 0 Henk 'm!

  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 06-09 20:35

Wijnbo

Electronica werkt op rook.

Topicstarter
Bedankt alvast :-)

Nu ben ik niet veel verder gekomen dan wat kleine serializable classes in een list in de viewstate te kiepen, en dan die verwerken. Werkt opzich ook maar heb gevoel dat het efficienter kan!