Avatar billede joshin Nybegynder
26. april 2006 - 23:40 Der er 8 kommentarer og
1 løsning

Rækkefølge kode afvikles i

Jeg har en side med en usercontrol på. Usercontrolen har bl.a. en knap, med tilhørende event som ændre variable i contolen.

Hvis jeg tlgør variablerne fra sidens Page_Load metode før jeg fat i de "gamle" værdier. Det må handle om at knappens event metode afvikles efter Page_Load.

Kan man få fat i de nye variable (sat af knappens event) og nå at bruge dem til at bygge en del af siden?
PS. jeg koder i C#
Avatar billede snepnet Nybegynder
26. april 2006 - 23:43 #1
ja dine button-eventhandlers ol. kører efter page_load.
du kan godt få fat i dine variable fra usercontrollen - men det ville være det mest hensigtsmæssige af dig hvis du gjorde det eventbaseret.... således at du f.eks. havde et datachanged event på din usercontrol.
det kunne du så abbonnere på i koden til din form - og gøre det på siden der skal gøres.
mvh
Avatar billede innercitydk Nybegynder
26. april 2006 - 23:45 #2
Page load afvikles når siden genereres. Knappens event metode afvikles først når der klikkes på knappen. Jeg forstår ikke helt dit spørgsmål da knappens kode jo først udføres efter siden er loadet. Hvis du har faste variabler som siden skal genereres ud fra skal dette gøres i page load.
Avatar billede joshin Nybegynder
26. april 2006 - 23:59 #3
snepnet: lyder som det jeg har brug for, kan du smide et par linier kode?
(hvordan laves et datachanged event / aboneres på det?)

innercitydk: Når brugeren vælger på userkontrollen, vil jeg på en enkelt side vise ekstra information i forhold til disse valg. Jeg skal altså behandle eventet fra knappen i userkontrollen, og herefter hente værdier fra ucerkontrollen på siden der indeholder controllen, og bruge dem videre.
Avatar billede snepnet Nybegynder
27. april 2006 - 00:02 #4
hæng lige på - så får du et eksempel.
mvh
Avatar billede snepnet Nybegynder
27. april 2006 - 00:07 #5
du får et lidt fjollet eksempel ... håber du kan se idéen.

// usercontrol - aspx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="SomeControl.ascx.cs" Inherits="UserControls_SomeControl" %>
<asp:TextBox ID="txtData" runat="server" OnTextChanged="txtData_TextChanged"></asp:TextBox>
<asp:Button ID="btnAction" runat="server" Font-Underline="True" Text="Button" />

// usercontrol - kode
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;
using System.ComponentModel;

public partial class UserControls_SomeControl : System.Web.UI.UserControl
{
    public event EventHandler DataChanged;

    protected virtual void OnDataChanged(EventArgs e)
    {
        if (DataChanged != null)
        {
            DataChanged(this, e);
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void txtData_TextChanged(object sender, EventArgs e)
    {
        OnDataChanged(EventArgs.Empty);
    }
}


// testside - aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TestPage.aspx.cs" Inherits="TestPage" %>

<%@ Register Src="UserControls/SomeControl.ascx" TagName="SomeControl" TagPrefix="uc1" %>

<!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>
        <uc1:SomeControl ID="SomeControl1" runat="server" OnDataChanged="sc_DataChanged" />   
    </div>
    </form>
</body>
</html>

// testside - kode
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 TestPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void sc_DataChanged(object sender, EventArgs e)
    {
        Response.Write("Data changed in usercontrol");
    }
}

mvh
Avatar billede snepnet Nybegynder
27. april 2006 - 00:08 #6
du kan naturligvis sikre dig at sender og eventargumentet bliver af nogle lidt mere interessante typer, men det kan vi tage senere hvis du kan bruge modellen.
mvh
Avatar billede joshin Nybegynder
27. april 2006 - 00:24 #7
snepnet: Perfekt det funger bare, smid er svar
Avatar billede snepnet Nybegynder
27. april 2006 - 00:49 #8
kommer her :o)
mvh
Avatar billede thrytter Nybegynder
27. april 2006 - 00:53 #9
Prøv nedenstående for yderligere info:
http://msdn2.microsoft.com/en-us/library/ms178472(VS.80).aspx
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester