webForumDet fria alternativet

Göra eget event på asp:treeview

.NET

8 svar · 483 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#1

i en asp:treeview finns det ett OnSelectedNodeChanged-event. Men om man klickar på samma menylänk som redan är vald så körs ju inte det eventet.

Finns det något sätt att göra egna events så att man kan göra ett event som körs även när du klickar på det menyalternativ som redan är valt? Om man kan overrida events på nåt sätt eller vad det heter?

Medlem sedan aug. 20003 575 inlägg
#2

Om du ärver från Treview så borde du komma åt någon funktion som heter OnSelectedNodeChanged funktion som i sin tur triggar eventet.

Medlem sedan dec. 19996 721 inlägg
#3

Det lär bli knepigt. Visst kan du ärva Treeview, men det vore lättare att få den att hindra ett existerande event, snarare än att utöka. Du skulle kunna prova med att overrida RaisePostBackEvent, göra den valda noden till "ovald" och sedan låta base.RaisePostBackEvent sköta resten.

Medlem sedan sep. 2005673 inlägg
#4

Hm, okej... men hur overridar man ett event? Jag hittade en sida som jag tror kanske kan vara det jag söker men jag förstår inte riktigt hur det fungerar...

http://msdn2.microsoft.com/en-us/library/system.windows.forms.treevieweventargs.aspx

Medlem sedan sep. 2005673 inlägg
#5

Såg ett svar i ett annat forum där de sa att man kanske kunde sätta en onclick på varje nod i ondatabound-eventet, någon som vet hur man gör det?

Eller går det att fånga upp något i page_loaden där man kan kolla om det är treeview-kontrollen kan klickade i?

Medlem sedan aug. 20003 575 inlägg
#6

Hmm, det kanske finns något Node.Attributes.Add("Onclick", "vad nu som skall hända");

Medlem sedan dec. 19996 721 inlägg
#7

Du ska inte overrida något event. RaisePostBackEvent är en vanlig void-metod.

Medlem sedan sep. 2005673 inlägg
#8

Jag är lite korkad så jag hänger inte med riktigt här alltså... :) Vad är ett raisepostbackevent och hur kopplar man ihop det med en länk i min treeview? Problemet är att det är ett par textboxar vars värden hämtas/bearbetas när man klickar i treeviewn. Med andra ord, om jag ändrar värdet i någon av textboxarna men klickar på den nod som redan är vald i treeviewn så kan jag inte koppla det till ett event och det blir fel...

Den kör ju page_load när man klickar på noden en andra gång, men jag verkar aldrig kunna få fram att klicket kommer från min treeview!

Medlem sedan dec. 19996 721 inlägg
#9

1. Skapa en egen klass som ärver TreeView
2. Overrida RaisePostBackEvent i din klass (RaisePostBackEvent är en metod, inget event)
3. Deselecta den selectade noden i RaisePostBackEvent, och skicka sedan vidare till base.RaisePostBackEvent

280 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
148 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)