16 messaggi dal 05 aprile 2007
Salve a tutti,

Mi sono da poco addentrato in Asp.net sviluppando in C#. Precedentemente sviluppavo in PHP, ma nonostante abbia seguito un'ottima guida mi sono imbattuto in un problema: usando le master page, non riesco a passare valori tra pagine usando il PostBackUrl, e cioè io ho su una prima pagina un panel contenente un semplice Textbox con un pulsante al quale ho impostato la proprietà PostBackUrl, e una seconda pagina la quale utilizzando l'oggetto PreviousPage deve prendere il valore immesso nel textbox della prima pagina.
Tutto funziona correttamente se le pagine sono senza MasterPage, ma non funzionano più con la MasterPage.

Sapete consigliarmi come risolvere?

Incollo qua il codice della MasterPage3.aspx
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage3.master.cs" Inherits="MasterPage3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
</asp:contentplaceholder>
</div>
</form>
</body>
</html>

Codice pagina Default.aspx
<%@ Page Language="C#" MasterPageFile="~/MasterPage3.master" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Panel ID="Panel1" runat="server" Height="50px" Width="355px">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" PostBackUrl="~/Default2.aspx" Text="Button" />
</asp:Panel>
</asp:Content>

Codice pagina Default2.aspx
<%@ Page Language="C#" MasterPageFile="~/MasterPage3.master" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Panel ID="Panel1" runat="server" Height="50px" Width="344px">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
<asp:Button ID="Button1" runat="server" Text="Button" /></asp:Panel>
</asp:Content>
Codice pagina Default2.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Default4 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
// se abbiamo una pagina di provenienza
if (PreviousPage != null)
Button1.PostBackUrl = PreviousPage.AppRelativeVirtualPath;
// verifichiamo un postback incrociato
if (PreviousPage.IsCrossPagePostBack)
Label1.Text = "Questo è un cross-post";
else
Response.Write("Questo è un Server.Transfer");
Label1.Text = "<br /> Hai selezionato: ";

// cerchiamo quale
TextBox box = (TextBox)Master.Page.PreviousPage.FindControl("TextBox1");
Label1.Text = String.Format("{0}{1}", Label1.Text, box.Text);
}
catch (Exception ex)
{
Label1.Text = String.Format("Eccezione: {0}", ex.Message);
}
}
}

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.