vad jag förstår finns det tre sätt att göra detta på. Det vettiga är väl som vanligt att antingen använda querystring eller posta informationen. Det funkar bra från första sidan men då jag går vidare tappar jag mina properties. Har du kollat att page1.proUserName fungerar (har ett värde) före du kör Server.Transfer? Propertien sätt men finns ej kvar då jag försöker plocka fram värdet på den andra sidan. För mig funkar det utmärkt (även om jag inte tycker om tekniken), har du kollat att din egenskap verkligen har ett värde före du kör server.transfer? Det kanske är jag som är helt ding i huvudet...passa data mellan webforms
1. sessions
2. querystrings
3. properties
Då jag använder alt 3 och försöker få med mig data från en form till en annan stöter jag på proplem.
Använder hyperlink objekt och vill i dess onclick event skicka användaren till min andra webform.
Där skapar jag en referens till min första webform och försöker komma åt dess property.
När jag då skriver ut detta värde får jag hela tiden 0 och inte det värde jag stoppat in i propetien?
Har någon ett bra tips?Sv: passa data mellan webforms
Jag förmodar att du läst på msdn/dokumentation om detta eftersom du försöker läsa av en egenskap från en annan sida. Generellt tycker jag det upplägget verkar knöligt eftersom det kräver:
- Att man gör en server.transfer i första sidan.
- Den mottagande sidan måste känna till från vilken sida (klass) informationen kommer ifrån.
Mitt tips är att antingen posta informationen eller använda querystring. Sessionsobjektet skall du inte använda för att skicka information mellan två sidor.
Om du fortfarande vill pröva server.transfer varianten så får du skicka upp lite kod så att man kan se ev. fel.
/TommySv: passa data mellan webforms
'från sida
Server.Transfer("settings.aspx")
'till motagande sida
Private Sub Page_Load....
Dim myPage As page1
myPage = (CType(Context.Handler, page1))
Response.Write(myPage.proUserName()
End Sub
Om jag inte har datat i någon server kontroll måste jag då inte använda denna metod?Sv: passa data mellan webforms
I vart fall så känns det fortfarande som att du hellre skall använda:
Vid bara några enklare parameterar querystring t ex
page2.aspx?proUserName=NilsPetter
Om det är många värden och page1 och page2 hör ihop, t ex page1 är en inmatningssida och page2 är resultat/visningssida så skall allt göras i en sida. Då använder du Panel, ex:
<code>
<asp:panel id="inputPanel" runat="server visible="true">
<asp:textbox id="userNameTextBox" runat="server"></asp:textbox>
</asp:panel>
<asp:panel id="viewPanel" runat="server visible="false">
<asp:label id="userNameLabel" runat="server"></asp:label>
</asp:panel>
</code>
Sedan är det bara växla visible egenskapen på panelerna när du vill "byta sida".
/TommySv: passa data mellan webforms
Det verkar ju smidigt att använda properties men det måste ju fungera från mer än en sida.Sv: passa data mellan webforms
<code>
Public Class prop1
Inherits System.Web.UI.Page
Public WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
Protected WithEvents saveButton As System.Web.UI.WebControls.Button
Protected WithEvents sendButton As System.Web.UI.WebControls.Button
Public testString As String = "Min teststräng som public variabel"
+#Region " Web Form Designer Generated Code "
Public Property TheText() As String
Get
If Not ViewState("TheText") Is Nothing Then
Return ViewState("TheText").ToString
Else
Return String.Empty
End If
End Get
Set(ByVal Value As String)
ViewState("TheText") = Value
End Set
End Property
Private Sub saveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles saveButton.Click
TheText = TextBox1.Text
End Sub
Private Sub sendButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sendButton.Click
Server.Transfer("prop2.aspx")
End Sub
End Class
Public Class prop2
Inherits System.Web.UI.Page
Protected WithEvents Label2 As System.Web.UI.WebControls.Label
Protected WithEvents Label3 As System.Web.UI.WebControls.Label
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
Dim inputPage As prop1 = CType(Context.Handler, prop1)
Label1.Text = inputPage.TheText
Label2.Text = inputPage.TextBox1.Text
Label3.Text = inputPage.testString
End If
End Sub
+#Region " Web Form Designer Generated Code "
End Class
</code>
/TommySv: passa data mellan webforms
Jag inte avänder ngn serverObjekt typ textbox utan tilldelar min property ett värde som jag får från databasen och flyttar mig sedan till nästa sida. Då får jag med mig min property och jag tilldelar då detta värde till en ny propery för just denna sida. Går sedan vidarde till sida 3 där jag vill plocka fram detta värde . Nu uppstår detta proplem, värdet i min property har försvunnit.
/tack