Interazione HTML e ASP.NET

mercoledì 28 aprile 2004 - 15.08

l.corallini Profilo | Junior Member

ciao a tutti,
ho una pagina asp in cui viene costruito dinamicamente un menù ad albero grazi all'interazione tra HTML e ASP (ciclando i recordset).
la devo ora trasformarla in una pagina ASPX, come posso fare?
quello che ho provato a fare io all'interno di cicli sui dataset è stato di crearmi stringhe contenenti HTML e poi farne il response.write...qualcosa mi dice che non è corretto l'approccio.[:O]
grazie

luca

l.corallini Profilo | Junior Member

sì l'ho già utilizzato per un altro progetto, ma in questo vogliamo evitare di avere problemi di compatibilità con i browser.

Brainkiller Profilo | Guru

Ci sono problemi se usi il controllo con tutte le sue potenzialità cioè con il DHTML, Javascript ecc.
Mi pare proprio ci sia una possibilità per far sì che ad ogni pressione di un nodo avvenga un postback.
La pagina viene ricostruita dal server e rimandata indietro.
Quindi anche i client che non supportano Javascript o DHTML potrebbero sfruttare questo controllo.
In Whidbey (prossima versione di VS.NET) c'è un controllo TreeView che produce codice compatibile per tutti i browser (si spera).

Intanto tu puoi, invece di usare Response.WRite, creare un oggetto server side Literal (<asp:Literal) e poi assegni alla proprietà .Text quello che passavi alla Response.Write.
Literal è una specie di segnaposto, tu assegni alla proprietà .Text dei tag html e lui li renderizza.

ciao
david

l.corallini Profilo | Junior Member

ho creato il controllo server-side asp:literal.
adesso ho il problema della funzione javascript che deve espandere il menu rendendo visibili le righe che in realtà ho già creato.
questa è la funzione:
function toggle(id,id1,idImg)
{
if (document.all.item(id).style.display=='none')
{
document.all.item(id).style.display='block';
document.all.item(id1).style.display='block';
document.all.item(idImg).src='../Immagini/minus.gif';
return;
}
if (document.all.item(id).style.display=='block')
{
document.all.item(id).style.display='none';
document.all.item(id1).style.display='none';
document.all.item(idImg).src='../Immagini/plus.gif';
return;
}
}

spero ci sia una soluzione applicabile.
grazie ancora

luca

Brainkiller Profilo | Guru

Non ho capito qual è il tuo problema :-|
Ciao

david

l.corallini Profilo | Junior Member

Cerco di spiegarmi meglio, nel codice originale ASP (che vedi qui sotto) si costruisce la tabella del menù ad albero in base alla user-id. il menù principale viene visualizzato, mentre le sottovoci sono nascoste, e cliccando sull'immagine "+" si chiama la funzione javascript che mi rende visibili le sottovoci di menù.
costruendo il menù nel codebehind e poi legandolo all'HTML con il controllo <asp:literal>, come da te suggerito, il click sl "+" mi genera un errore javascript:previsto oggetto. ho anche provato a inserire il codice javascript nel codebehind e restituirlo all'HTML attraverso il controllo asp:literal, ma ho ottenuto lo stesso risultato.
spero di essere riuscito a farmi capire
grazie

luca





<script language="javascript">
<!--
function toggle(id,id1,idImg){
if (document.all.item(id).style.display=='none')
{
document.all.item(id).style.display='block';
document.all.item(id1).style.display='block';
document.all.item(idImg).src='images/minus.gif';
return;
}

if (document.all.item(id).style.display=='block')
{
document.all.item(id).style.display='none';
document.all.item(id1).style.display='none';
document.all.item(idImg).src='images/plus.gif';
return;
}
}
-->
</script>
<%dim objRSVoc
dim objRSAcc%>

<%do while not objRSDir.EOF
strSql = "Select * from accesso where Codice_Accesso = " & objRSDir("Accesso")
set objRSAcc = Server.CreateObject ("ADODB.Recordset")
objRSAcc.open strSql, ObjConn,1,2%>
<table width="100%" align="center">
<tr>
<td width="20%" align="right">
&nbsp;
<img id="img<%=trim(objRSAcc("Descrizione_Accesso"))%>" style="CURSOR: hand" onclick="toggle('<%=trim(objRSAcc("Descrizione_Accesso"))%>','<%=trim(objRSAcc("Descrizione_Accesso"))%>','img<%=trim(objRSAcc("Descrizione_Accesso"))%>')" src="images/plus.gif" width="9" height="9">
&nbsp;&nbsp;
</td>
<td width="80%" align="left">
<font color="#282C8A" size="2" face="Arial,Helvetica">
<b><%=trim(objRSAcc("Descrizione_Accesso"))%></b>
</font>
</td>
</tr>
</table>
<table id="<%=trim(objRSAcc("Descrizione_Accesso"))%>" style="DISPLAY: none" cellSpacing="0" cellPadding="0" width="100%" align="center">
<tbody>
<%strSql = "Select * from accesso_voce where Codice_Accesso = " & objRSDir("Accesso") & " order by Codice_Voce"
set objRSVoc = Server.CreateObject ("ADODB.Recordset")
objRSVoc.open strSql, ObjConn,1,2
do while not objRSVoc.EOF%>
<tr>
<td width="20%" align="left">
&nbsp;
</td>
<td width="80%" align="left">
<a href="<%=trim(objRSVoc("Asp"))%>?U=<%=objRSUsr("Userid")%>" target="f1">
<img src="images/Open.gif" border="0">
</a>
&nbsp;
<a href="<%=trim(objRSVoc("Asp"))%>?U=<%=objRSUsr("Userid")%>" target="f1">
<font color="#303298" size="2" face="Arial,Helvetica">
<%=trim(objRSVoc("Descrizione_Voce"))%>
</font>
</a>
</td>
</tr>
<%objRSVoc.movenext
loop%>
</tbody>
</table>
<%objRSAcc.close
set objRSAcc = nothing
objRSVoc.close
set objRSVoc = nothing%>
<%objRSDir.movenext
loop%>

l.corallini Profilo | Junior Member

ho risolto, il problema era nel codice javascript...
grazie per l'aiuto
luca
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5