[ASP.NET] Webforms-TreeView Server side programming

Pagina: 1
Acties:

  • skiwi
  • Registratie: Februari 2001
  • Laatst online: 05-04 14:13
Hoi,

Ik heb op msdn de ASP.NET Webforms component gedownload en geinstalleerd (http://msdn.microsoft.com...s/webcontrols/default.asp). Ik maak nu een tree op basis van gegevens in mijn SQL database. Ik laad niet de hele tree in 1x maar maak gebruik van de expand event. Zodra een user de tree uitklapt wordt de onderliggende informatie uit de database gehaald. Dit kan allemaal best leuk werken maar: ik wil eigenlijk server side weten welke node in de tree door de gebruiker wordt uitgeklapt. De (javascript) code die hier voor zorgt is:

javascript:__doPostBack('TreeView1','oncollapse,0')
of
javascript:__doPostBack('TreeView1','oncollapse,0.1.0')
etc.

Het gaat dus om de laatste cijfercombinatie. Die vertelt welke node in de tree is geselecteerd. Heeft iemand enig idee hoe ik deze cijfercombinatie server side kan opvragen? Ik ben in mijn c# expand-event al bezig geweest met: SelectedNodeIndex en GetNodeFromIndex. Geen idee of dit de hiermee mogelijk is want helaas is de documentatie op msdn (qua server-side programmeren) niet echt wat.

Iemand enig idee?
Skiwi

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:46

mulder

ik spuug op het trottoir

Het lijkt mij logisch dat er een OnExpand en/of OnBeforeExpand event word afgevuurd, en dit zal ook in MSDN staan.

oogjes open, snaveltjes dicht


  • skiwi
  • Registratie: Februari 2001
  • Laatst online: 05-04 14:13
Ja, het afvangen van die events lukt ook wel maar waar de geselecteerde node informatie? Hoe kan ik daarbij?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:46

mulder

ik spuug op het trottoir

Staat allemaal in MSDN, dat event krijgt TreeViewCancelEventArgs(before) of TreeViewEventArgs (after) mee.

oogjes open, snaveltjes dicht


  • skiwi
  • Registratie: Februari 2001
  • Laatst online: 05-04 14:13
Ik probeer nu de SelectIndexChange event aan de praat te krijgen (zit bij de TreeView properties-events). VS .NET gooit er dan zelf de volgende code bij:
in InitializeComponent():
code:
1
this.TreeView1.SelectedIndexChange += new Microsoft.Web.UI.WebControls.SelectEventHandler(this.TreeView1_SelectedIndexChange);


en
code:
1
2
3
4
private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
    string selectedNode = e.NewNode;
}

Het probleem is dat die event niet eens wordt gestart. Ik heb Autopostback op true staan. Ik kan ook niet echt een duidelijk voorbeeld vinden.

Verwijderd

In winforms gebruik je de BeforeExpand/AfterExpand en AfterCollapse/AfterSelect events. De 'e' parameter bevat de node waar de actie op is gepleegd.

Verwijderd

Bij het event krijg je een parameter waarin de nodeindex te vinden is, dan kan je met de methode GetNodeFromIndex(indexMoetHier) de desbetreffende Node terug vinden.
Je moet Autopostback idd goed instellen, zal wel true moeten zijn, maar dat heeft als nadeel dat je pagina heel vaak gerefreshed zal worden...

Persoonlijk vind ik dit component vrij slecht werken, maar de rest is ook nogal slecht... en de documentatie is al helemaal bagger :(.
Pagina: 1