- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- file .aspx parte del codice non è letto
-
file .aspx parte del codice non è letto
ho creato questo file nominato menu.inc che includo nella pagina.aspx con questo script:
<%@ Page Language="vb" %>
<html>
<body>
<%
Response.WriteFile ("menu.inc")
%>
</body>
</html>il problema è questo:
quando richiamo il file pagina.aspx viene eseguito solo una parte del codice (quello in blu), la parte del codice in rosso non è letto.
Dov'è l'errore?<%@ Page Language="VB" %>
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled 1</title>
</head>
<body>
<form id="form1" runat="server">
**<table style="width: 100%">
<tr>
<td bgcolor="#008000">Pagina</td>
</tr>
** **<tr>
<td>
<asp:Menu runat="server" id="Menu1" BackColor="Red" BorderColor="Navy" BorderStyle="Solid" BorderWidth="1px" Font-Bold="True" Orientation="Horizontal">
<Items>
<asp:menuitem Text="1" Value="1">
</asp:menuitem>
<asp:menuitem Text="2" Value="New Item">
</asp:menuitem>
<asp:menuitem Text="3" Value="New Item">
</asp:menuitem>
</Items>
</asp:Menu>
</td>
</tr>
**</table>
</form>
</body>
</html>
-
Ciao Zeck, quello che stai facendo è sbagliato, perchè Response.WriteFile scrive il contenuto del file nell'output, mentre tu devi eseguire il contenuto del file, quindi devi usare una cosa diversa, tipo l'include.
-
...ok!!
Dunque, se lo scrivo così<%@ Page Language="vb" %>
<html>
<body><% Response.WriteFile ("menu.inc") %> </body>
</html>
viene eseguita solo una parte di "menu.inc"
se lo scrivo così
<%@ Page Language="vb" %>
<html>
<body><!--#include file="menu.inc"-->
</body>
</html>non viene eseguito nulla!
*Come devo impostare per far eseguire completamente il file menu.inc?
*
-
Che vuol dire che non viene eseguito nulla? In ogni caso, non puoi mettere i tag html e body in entrambi file, perchè senò nel file finale ci sono due volte!!!
-
ciao cali1981,
probabilmente non mi spiego bene.Ho questo script che vorrei ripetere su più pagine:
<%@ Page Language="VB" %>
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled 1</title>
</head>
<body>
<form id="form1" runat="server">
**<table style="width: 100%">
<tr>
<td bgcolor="#008000">Pagina</td>
</tr>
****<tr>
<td>
<asp:Menu runat="server" id="Menu1" BackColor="Red" BorderColor="Navy" BorderStyle="Solid" BorderWidth="1px" Font-Bold="True" Orientation="Horizontal">
<Items>
<asp:menuitem Text="1" Value="1">
</asp:menuitem>
<asp:menuitem Text="2" Value="New Item">
</asp:menuitem>
<asp:menuitem Text="3" Value="New Item">
</asp:menuitem>
</Items>
</asp:Menu>
</td>
</tr>
**</table>
</form>
</body>
</html>salvo lo script che chiamiamo menu.inc.
A questo punto creo una pagina (nome pagina.aspx) che richiami il contenuto di **menu.inc **con questo script:
**<%@ Page Language="vb" %>
<html>
<body><%
Response.WriteFile ("menu.inc")
%></body>
</html>
**
carico tutto e apro la pagina "pagina.aspx" cosa vedo?
La tabella verde con la scritta Pagina, cioè la parte scritta in blu del file menu.inc<table style="width: 100%">
<tr>
<td bgcolor="#008000">Pagina</td>
</tr>mentre questa parte in rosso che contiene un menu di navigazione non viene letta
<tr>
<td>
<asp:Menu runat="server" id="Menu1" BackColor="Red" BorderColor="Navy" BorderStyle="Solid" BorderWidth="1px" Font-Bold="True" Orientation="Horizontal">
<Items>
<asp:menuitem Text="1" Value="1">
</asp:menuitem>
<asp:menuitem Text="2" Value="New Item">
</asp:menuitem>
<asp:menuitem Text="3" Value="New Item">
</asp:menuitem>
</Items>
</asp:Menu>
</td>
</tr>
Dov'è l'errore?
E' sbagliata la pagina menu.inc o sbaglio il codice in pagina.aspx?
Se è sbagliata pagina.aspx qual' lo script completo che andrebbe scritto?grazie 1000 per la tua disponibilità
-
Come ti ho detto prima, quello che hai dentro menu,inc non è uno script ma è una pagina aspx, che se viene inclusa in un'altra pagina aspx crea un casino, perche vede due volte i tag di apertura di html e body. Potresti postare l'aoutput preciso che ha quando vedi pagina.aspx?
-
Ciao Zeck,
In Asp.net gli include non si usano (francamente non so nemmeno se sono supportati...). Hai quindi 2 alternative:
- Master page
- User controlVisto che a quanto ho capito il menu dovrebbe essere riproposto in tutte le pagine ti conviene creare una master page contenente il menu e poi crei le pagine a cui occorre il menu, impostando sulla pagina la master page che hai creato.
Altrimenti metti la tabella contenente il menu in una User Control e poi richiami la User Control nelle pagine in cui vuoi che siano presenti i menu.
Spero di averti aiutato
-
come suggerito ho usato la master page per richiamare un "titolo" comune a più pagine, lo script prodotto è questo:
<%@ Page Language="VB" masterpagefile="Titolo.master" title="Untitled 1" %>
Domanda:
come si fa ad aggiungere una seconda master page contenete il menu?(sempre per il concetto di voler ripetere su più pagine stessi contenuti)
Ho provato ma due richiami a master page non sono accettati.:?
-
Non puoi mettere il menu nella stessa master page?
-
@zeck said:
come suggerito ho usato la master page per richiamare un "titolo" comune a più pagine, lo script prodotto è questo:
<%@ Page Language="VB" masterpagefile="Titolo.master" title="Untitled 1" %>
Domanda:
come si fa ad aggiungere una seconda master page contenete il menu?(sempre per il concetto di voler ripetere su più pagine stessi contenuti)
Ho provato ma due richiami a master page non sono accettati.:?vorrei provare anche con le user control ma non riesco a trovare lo "script" per richiamare la pagina, qualcuno mi può aiutare? grazie
-
@cali1981 said:
Non puoi mettere il menu nella stessa master page?
si posso, ma si ripropone il problema con tabelle di testo ecc.
vorrei trovare una soluzione che permetta di inserire in una pagina contenuti creati singolarmente.
-
con php è una cosa possibile; basta fare
<?php
include '_menu.php';
?><?php
include 'php/scheda_tecnica.php';
?>e si hanno due "tabelle" indipendenti una sopra l'altra.
Possibile che in ASP.NET non si riesca a fare una cosa del genere?
-
Puoi fare un user control, se usi VS basta che lo trascini nella pagina dove vuoi metterlo. Per quanto riguarda la master page, cosa intendi che poi avresti problemi con le tabelle di testo?
Per l'inserimento dell'UserControl in asp.net devi registrarlo in cima alla pagina con:<%@ Register TagPrefix="MyUC" TagName="Test" Src="uc.ascx" %>
E poi dentro puoi usarlo con
<MyUC:Test runat="server" />
-
Grazie cali1981 per il tuo aiuto!
non ho VS, vorrei riuscire a far funzionare il codice che hai postato:
<%@ Register TagPrefix="MyUC" TagName="Test" Src="uc.ascx" %>
dentro
<MyUC:Test runat="server" />ma non ci riesco!!
il file che vorrei inserire sono questi:
_menu.ascx
_titolo.ascxcome devo scrivere questo
<%@ Register TagPrefix="MyUC" TagName="Test" Src="uc.ascx" %> ?
e questo
<MyUC:Test runat="server" /> ?grazie
-
Provato con
<%@ Register TagPrefix="ucMenu" TagName="menu" Src="menu.ascx" %>
<ucMenu:menurunat="server" />
-
@cali1981 said:
Provato con
<%@ Register TagPrefix="ucMenu" TagName="menu" Src="menu.ascx" %>
<ucMenu:menurunat="server" />
appare questo errore (vedi jpg allegata)
Ho impostato le pagine così:
pagina che deve caricare il file menu1.ascx
**<%@ Register TagPrefix="ucMenu1" TagName="menu1" Src="menu1.ascx" %>
**<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>prova</title>
</head>
<body>
**<ucMenu1: menu1 runat="server" />
**<form id="form1" runat="server">
</form>
</body>
</html>menu1.ascx
<%@ Register TagPrefix="ucMenu1" TagName="menu1" Src="menu1.ascx" %>
<head>
<style type="text/css">
.style1 {
background-color: #008000;
}
.style2 {
background-color: #FF00FF;
}
</style>
</head>
<table style="width: 100%">
<tr>
<td class="style1"> </td>
<td> </td>
</tr>
<tr>
<td class="style2"> </td>
<td> </td>
</tr>
</table>
-
Il file menu1.ascx non deve contenere register!
-
Come diceva Cali, la direttiva register va messa solo nella pagina che richiama la usercontrol, **non **nella usercontrol stessa.
Inoltre hai inserito questo HTML nel file menu.ascx
[HTML]
<head>
<style type="text/css">
.style1 {
background-color: #008000;
}
.style2 {
background-color: #FF00FF;
}
</style>
</head>
<table style="width: 100%">
<tr>
<td class="style1"> </td>
<td> </td>
</tr>
<tr>
<td class="style2"> </td>
<td> </td>
</tr>
</table>
[/HTML]
ma è sbagliato, poichè non deve esserci alcun tag head in un usercontrol (poiché lo richiami all'interno del tag body), e gli stili li devi definire all'esterno dello UserControl, ad esempio in un file css che includi tramite la pagina chiamante. Quindi il contenuto corretto del menu sarrebbe questo
[HTML]
<table style="width: 100%">
<tr>
<td class="style1"> </td>
<td> </td>
</tr>
<tr>
<td class="style2"> </td>
<td> </td>
</tr>
</table>
[/HTML]Cmq, come avrai capito gli include del php si traducono in UserControl in Asp.net (non è sempre vero, ma in linea di massima si..).
-
@Holin said:
Quindi il contenuto corretto del menu sarrebbe questo
[html]
<table style="width: 100%">
<tr>
<td class="style1"> </td>
<td> </td>
</tr>
<tr>
<td class="style2"> </td>
<td> </td>
</tr>
</table>
[/html]Cmq, come avrai capito gli include del php si traducono in UserControl in Asp.net (non è sempre vero, ma in linea di massima si..).
Grazie, tutto Ok!!
Ho fatto come avete suggerito voi e in effetti il file viene riconosciuto e "incluso" nella pag .aspx.
Domanda:
se provo a inserire un menu fatto in asp nella pagina .ascx la pagina in .aspx non viene più letta!!:x[html]
<table style="width: 100%">
<tr>
<td class="style1"> </td>
<td><asp:Menu runat="server" id="Menu1" BackColor="#B5C7DE" Font-Size="0.8em" Font-Names="Verdana" StaticSubMenuIndent="10px" ForeColor="#284E98" DynamicHorizontalOffset="2">
<StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
<DynamicHoverStyle BackColor="#284E98" ForeColor="White" />
<DynamicMenuStyle BackColor="#B5C7DE" />
<StaticSelectedStyle BackColor="#507CD1" />
<DynamicSelectedStyle BackColor="#507CD1" />
<DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
<StaticHoverStyle BackColor="#284E98" ForeColor="White" /></asp:Menu>
</td>
</tr>
<tr>
<td class="style2"> </td>
<td> </td>
</tr>
</table>
[/html]E' un problema di compatibilità tra asp e asp.net??:bho:
Se si come converto quel tipo di menu in asp.net?:?Grazie 1000 per il vostro aiuto.
-
Si certo, non puoi mettere asp e asp.net insieme, anche in asp c'è il menu, con vs lo trovi nel toolbox...