Databinding

mercoledì 09 febbraio 2005 - 00.01

lobax Profilo | Junior Member

Ciao ragazzi,
ma perchè mi incarto con ste cose?
sto cercando di fare un menu dinamico una tabella con la possibilità infinite di sottocategegorie

gli elementi con l'id figlio = a null li dovrei mostrare in un linkbutton
quindo ho questo frammento:
Dim ds As New System.Data.DataSet
adapter.Fill(ds)
ds.Relations.Add("NodeRelation", ds.Tables(0).Columns("NodeId_cat"), ds.Tables(0).Columns("ParentNode_cat"))

Dim dbRow As System.Data.DataRow
For Each dbRow In ds.Tables(0).Rows
If (dbRow.IsNull("ParentNode_cat")) Then

Linkbutt1.Text = dbRow("testo_cat")' e così non funziona perchè mi da solo un elemento della tabella.
' se però gli do un output butale "response.write(dbrow("testo_cat") )va ok!
End If
Next dbRow

quindi ho il problema di fare il binding a un botone che apra un dlist o repeater ...
ho fatto un poche di prove con un dataset tipizzato :
ma è la stessa cosa, anche qui non riesco a collegare un bottone, dove mi perdo?
qualche articolo in giro per un menù o qualche cosa di simile?
ciao grazie

Brainkiller Profilo | Guru

Ciao,
costruire un menù in ASP.NET non pare sia una cosa molto facile. C'è infatti sempre il problema che i livelli non possono essere limitati ad un certo numero. Per risolvere questo problema si deve usare la ricorsività, che spesso da problemi di loop che non terminano mai :)

Non ho ben capito tu come stai organizzando questo menù, usi o no DHTML ? Fai un postback ogni volta per ricreare le voci o vuoi che avvenga tutto client side ? Perchè hai la necessità di creare Relations ?

ciao
david

lobax Profilo | Junior Member

Ciao,..
Dunque...l'esigenza principale è quella di costruire un sistema flessibile per la gestione delle categorie e sottocategorie.
Quindi, ho una tabella con un id padre , un id figlio , un testo e un numero "total_sub"che dice se la categoria ha sottocategorie e quante ne ha se non ne ha nessuna è 0.

Ora..., potrebbe essere un albero o un menu , per es: se provassi con il menu potrei utilizzare le librerie free che sono nel vb.net res.kit (component1) e quando arrivo:
For Each dbRow In ds.Tables(0).Rows
If(dbRow.IsNull("ParentNode_cat")) Then
'creo da codice il componente come e se accetta le proprietà è tutto da vedere
Dim newItem As Componente.c1
newItem = CreateItem(dbRow) 'una funzione"createitem"
Menu1.Items.Add(newItem)
'poi popolo il sub ecc.con un'altra routine
PopolaSubMenu(dbRow, newItem)
End If
Next dbRow
Neccessità delle relazioni:
Mah non c'è una necessità specifica, solo che posso accedere alla proprietà getchildrows per popolare il submenu:( For Each childRow In dbRow.GetChildRows("NodeRelation")).
comunque in ogni caso quello che importa è che che vengano visualizzate categorie, e figli sempre sulla stessa lista, per es potrebbe anche essere che quando uno clicca sulla categoria scelta, venga caricata la lista delle sub, e se fa clik sulla sub e ve ne sono altre fa la stessa cosa ,e quando incontra "total_sub" = 0 mi porta alla lista prodotti
Spero di averti fatto capire qualè l'esigenza, sono aperto a qualsiasi suggerimento.
ciao grz
lokax

Brainkiller Profilo | Guru

Io avevo un problema simile al tuo ed ho utilizzato la Treeview contenuta nei Web Controls.
L'hai provata, ti potrebbe andare bene forse ?

ciao
david

lobax Profilo | Junior Member

Avevo trovato quì un pos a riguardo, l'ho scaricato dal link indicato ma non sono riuscito ad installarlo, nella cartella non c'è una dll, mi pare ci fosse scritto che era da compilare, ho provato con il compilatore a riga di comando ma mi da un errore...nn ricordo...esattamente, hai istruzioni in merito?
ciao
grz

Brainkiller Profilo | Guru

Non è necessario compilare niente.
Quando tu scarichi il pacchetto c'è una DLL che devi referenziare nel tuo progetto ed eventualmente copiare nella cartella Bin del tuo progetto.
Inoltre nella Toolbox puoi fare tasto destro aggiungi oggetto, fai sfoglia, cerchi la DLL e la aggiungi.
comparirà così nella ToolBox la TreeView, la trascini sulla Form, e poi via codice inserisci i vari nodi a Runtime.

ciao
david

lobax Profilo | Junior Member

Mha, io sono partito da questo link http://support.microsoft.com/default.aspx?scid=kb;en-us;319441#2, ho scaricato "IE Web Controls" dentro , 3 catelle un .bat e un .rsp ;> "sorgenti", "esempi", e "build", dentro "build">"runtime" contiene immagini e htc, nessuna dll trovata.

To run the IE Web Controls:

1. Copy the contents of the Runtime directory to the webctrl_client\1_0
directory under your top-level site directory. For example, if your
site root is c:\Inetpub\wwwroot, type this at the command prompt:
xcopy /s /i .\build\Runtime c:\Inetpub\wwwroot\webctrl_client\1_0 /y

.....
provato...
ho scaricato qualcos'altro?
ciao grz

lobax Profilo | Junior Member

era da compilare con il compilatore a riga di comando, ora la dll c'è.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5