Avatar billede kennedk Nybegynder
19. oktober 2007 - 12:31 Der er 54 kommentarer og
1 løsning

Textbox, problemer med at opdatere texten i den , i updatepanel

Hej eksperter! :)
Jeg sidder og roder med en side hvor jeg kører sidens indhold i et updatepanel, indholdet kommer fra flere forskellige WebUserControls.
Jeg loader updatepanelerne ved at sætte et hiddenfield i updatepanelet og bruger en clientsidescript til at lave en postback på det hiddenfeild.
Og så prøver jeg på at lave et system, så jeg kan opdatere et felt i databasen via tekstboksens værdi, men der kommer et problem.

første gang jeg går ind på siden, så kommer det fint i textboxen, men hvis jeg trykker på den næste, så ændres teksten ikke.

Det eneste jeg gør for at sætte teksen i feltet er :

propSide propSide = facSide.GetSide(Convert.ToInt32(Context.Items["sideId"]));
                if (propSide != null)
                {
                    txtHeadline.Text = propSide.Navn;
                    txtText.Text = propSide.Tekst;
                }

Men det er åbenbart ikke nok til at få det til at virke.

Hvordan kan man tvinge den til at hente en ny værdi?
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 12:33 #1
prøv med
propSide propSide = facSide.GetSide(Convert.ToInt32(Context.Items["sideId"]));
                if (propSide != null)
                {
                    txtHeadline.Text = propSide.Navn;
                    txtText.Text = propSide.Tekst;
DitUpdatePanel.Update();             
}
Avatar billede kennedk Nybegynder
19. oktober 2007 - 12:47 #2
Det kan jeg jo ikke tilgå, da den kode er inde fra et WebUserControl. altså en .ascx fil
Avatar billede kennedk Nybegynder
19. oktober 2007 - 12:53 #3
nu har jeg bikset sådan en kode sammen, som virker, men det burde da kunne gøres smartere:

propSide propSide = facSide.GetSide(Convert.ToInt32(Context.Items["sideId"]));
                if (propSide != null)
                {
                    lbltxtHeadlineHolder.Controls.Clear();
                    lbltxtTextHolder.Controls.Clear();

                    TextBox txtHeadline = new TextBox();
                    TextBox txtText = new TextBox();
                    txtHeadline.ID = "txtHeadline" + DateTime.Now;
                    txtText.ID = "txtText" + DateTime.Now;
                    txtHeadline.Text = propSide.Navn;
                    txtText.Text = propSide.Tekst;
                    lbltxtTextHolder.Controls.Add(txtText);
                    lbltxtHeadlineHolder.Controls.Add(txtHeadline);
                }
Avatar billede kennedk Nybegynder
19. oktober 2007 - 13:07 #4
hm.. er stødt på endnu et problem, hvordan opfanger jeg værdierne?
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 13:08 #5
Ja men det drejer sig om at du skal opdaterer dit Updatepanel. Det er hvad der budre være nødvendigt.

Du kan evt tilføje et event på din usercontrol som du kan abonnerer på din hovedsid.
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 13:10 #6
Smid dette i din usercontrol:
public delegate void CustomerEventHandler(EventArgs e);
    public event CustomerEventHandler SomethingChanged;

    if (propSide != null)
                {
                    txtHeadline.Text = propSide.Navn;
                    txtText.Text = propSide.Tekst;
            if(SomethingChanged != null)
{
SomethingChanged(new EventArgs())
}
}
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 13:14 #7
På din side som hoster webusecontrolen laver du et event på den som Onclick på en knap:

OnSomethingChanged="MySomethingChanged"

i codebehind
protected void MySomethingChanged(EventArgs e)
{
DitUpdatePanel.Update(); 
}
Avatar billede kennedk Nybegynder
19. oktober 2007 - 13:17 #8
hvor vil du have at jeg skal smide det hen i min codebehind?
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 13:21 #9
i codebehind på siden som hoster webcontrollen
Avatar billede kennedk Nybegynder
19. oktober 2007 - 13:24 #10
Som her ?
public partial class WebUserControls_RedigerSide : System.Web.UI.UserControl
{
    public delegate void CustomerEventHandler(EventArgs e);
    public event CustomerEventHandler SomethingChanged;

    protected void Page_Load(object sender, EventArgs e)
    {

        propSide propSide = facSide.GetSide(Convert.ToInt32(Context.Items["sideId"]));
        if (propSide != null)
        {
            txtHeadline.Text = propSide.Navn;
            txtText.Text = propSide.Tekst;
            if (SomethingChanged != null)
            {
                SomethingChanged(new EventArgs());
            }
        }

    }
}


og på hvad element skal OnSomethingChanged="MySomethingChanged"
være på?
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 13:32 #11
Ja

Den side hvor controllen er tilføjet på.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 13:34 #12
altså jeg har et panel hvor jeg adder den webusercontrol i. så skal OnSomethingChanged="MySomethingChanged" bare på panelet?
Avatar billede kennedk Nybegynder
19. oktober 2007 - 13:34 #13
en placeholder *
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 13:38 #14
Nej det skal på selve usercontrollen. Hvordan tilføjer du den til placeholderen.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 13:40 #15
protected void Page_Load(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(HiddenFieldToUpdateIndhold.Value))
        {
            string[] strIndhold = HiddenFieldToUpdateIndhold.Value.Split(';');
            if (!string.IsNullOrEmpty(strIndhold[1]) && strIndhold[1] != "0")
            {
                Context.Items.Add("sideId", strIndhold[1]);
            }
            LoadIndhold(strIndhold[0]);
        }
    }

private void LoadIndhold(string userContol)
    {
        // til tjek af rettigheder, om brugeren må loade usercontrollen
        /*
        string[] userControls = new string[2];
        userControls[0] = "Default.ascx;Administrator";
        userControls[1] = "RedigerSide.ascx;SideEdit";

        Boolean boolPermission = false;
        string userControlURL = userContol;
        for (int i = 0; i < userControls.Length; i++)
        {
            string[] userControlsTjek = userControls[i].Split(';');
            if (userControlsTjek[0] == userControlURL)
            {
                boolPermission = CMS.Users.User.hasPermission(userControlsTjek[1], User.UserId);
                break;
            }
        }
        if (!boolPermission)
        {
            userContol = "Beskyttet.ascx";
        }
        */

        if (!string.IsNullOrEmpty(userContol))
        {
            phInholder.Controls.Clear();
            UserControl uc = (UserControl)LoadControl(CMS.CMS._cmsPath + "WebUserControls/" + userContol);
            phInholder.Controls.Add(uc);
        }

    }
Avatar billede kennedk Nybegynder
19. oktober 2007 - 13:42 #16
hvordan vil du sætte den OnSomethingChanged="MySomethingChanged" på usercontrollen ? ved ikke lige hvordan det gøres.
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 14:07 #17
private void LoadIndhold(string userContol)
    {
        // til tjek af rettigheder, om brugeren må loade usercontrollen
        /*
        string[] userControls = new string[2];
        userControls[0] = "Default.ascx;Administrator";
        userControls[1] = "RedigerSide.ascx;SideEdit";

        Boolean boolPermission = false;
        string userControlURL = userContol;
        for (int i = 0; i < userControls.Length; i++)
        {
            string[] userControlsTjek = userControls[i].Split(';');
            if (userControlsTjek[0] == userControlURL)
            {
                boolPermission = CMS.Users.User.hasPermission(userControlsTjek[1], User.UserId);
                break;
            }
        }
        if (!boolPermission)
        {
            userContol = "Beskyttet.ascx";
        }
        */

        if (!string.IsNullOrEmpty(userContol))
        {
            phInholder.Controls.Clear();
            UserControl uc = (UserControl)LoadControl(CMS.CMS._cmsPath + "WebUserControls/" + userContol);
            phInholder.Controls.Add(uc);
if(userContol== "denusercontrolmedevent")
{
uc.SomethingChanged +=new CustomerEventHandler(MySomethingChanged);
}
        }

    }
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 14:07 #18
Husk at give din usercontrol et id.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 14:12 #19
Den giver mig to fejl :
Error    1    'System.Web.UI.UserControl' indeholder ikke en definition af 'SomethingChanged'    C:\Documents and Settings\kekri108\Skrivebord\.NET\cms\cms1\cms\Content.aspx.cs    87    20    C:\...\cms1\


Error    2    Typen eller navneområdenavnet 'CustomerEventHandler' kunne ikke findes (mangler der et 'using'-direktiv eller en assemblyreference?)    C:\Documents and Settings\kekri108\Skrivebord\.NET\cms\cms1\cms\Content.aspx.cs    87    44    C:\...\cms1\
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 14:23 #20
Prøv lige med.
if(userContol== "denusercontrolmedevent")
{
((WebUserControls_RedigerSide)uc).SomethingChanged +=new WebUserControls_RedigerSide.CustomerEventHandler(MySomethingChanged);
}
Avatar billede kennedk Nybegynder
19. oktober 2007 - 14:26 #21
altså jeg fatter da intet :/

if (!string.IsNullOrEmpty(userContol))
        {
            phInholder.Controls.Clear();
            UserControl uc = (UserControl)LoadControl(CMS.CMS._cmsPath + "WebUserControls/" + userContol);
            phInholder.Controls.Add(uc);
            uc.ID = userContol;
            if (userContol == "RedigerSide.ascx")
            {
                ((WebUserControls_RedigerSide)uc).SomethingChanged += new WebUserControls_RedigerSide.CustomerEventHandler(MySomethingChanged);
            }
        }


Error    2    Typen eller navneområdenavnet 'WebUserControls_RedigerSide' kunne ikke findes (mangler der et 'using'-direktiv eller en assemblyreference?)    C:\Documents and Settings\kekri108\Skrivebord\.NET\cms\cms1\cms\Content.aspx.cs    87    75    C:\...\cms1\
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 14:30 #22
Ligger din side i et namespace ?
Avatar billede kennedk Nybegynder
19. oktober 2007 - 14:31 #23
nej, det eneste jeg har namespace, er mine .cs filer i app_code mappen.
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 14:35 #24
Hmm skal dine usercontrols loades dynamisk ?
Avatar billede kennedk Nybegynder
19. oktober 2007 - 14:36 #25
Det skal de vel helst, da min ide er at køre det hele i ajax, så siden ikke skal genloades hele tiden.
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 14:41 #26
Du kan jo bare indele din side i flere updatepaneler. Et updatepanel rundt om hele siden gør den som regel kun langsommere.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 14:43 #27
altså på min side har jeg to updatepanels, en til min menu, og en til indholdet.

men det må da være muligt på en eller anden måde.
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 14:47 #28
Det lyder mærkeligt at den ikke kan genkende WebUserControls_RedigerSide.
Det er jo hvad din klasse hedder.
Et lignende eksempel jeg sidder med genkender den fint klassen.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 14:54 #29
skal jeg prøve at porte hele koden for min usercontrol og så den side der loader den ? så du kan få en bedre ide om hvordan det fungere?
Avatar billede kennedk Nybegynder
19. oktober 2007 - 14:56 #30
det vil være mig en stor stor hjælp, men hvis du ikke lyster, er det helt iorden! :)
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 14:59 #31
Du kan godt prøve.
Jeg kigger på den senere.
Skal snart hente min datter.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 15:06 #32
content.aspx = side hvor updatepanels er.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Content.aspx.cs" Inherits="Content" %>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
    <link href="StyleSheet/TreeMenu.css" rel="stylesheet" type="text/css" />
    <link href="StyleSheet/ContextMenu.css" rel="stylesheet" type="text/css" />
    <link href="StyleSheet/Site.css" rel="stylesheet" type="text/css" />
      <script type="text/javascript" src="JavaScript/ContextMenu.js"></script>
      <script type="text/javascript" src="JavaScript/ContextMenuIE.js"></script>
  <script type="text/javascript" src="JavaScript/treeMenu.js"></script>
  <script type="text/javascript">
            function postBackTreeMenu(strTreeMenu) {
            var hiddenField = $get("<%=HiddenFieldToUpdateTreeMenu.ClientID %>");
            if (hiddenField) {
                hiddenField.value = strTreeMenu;
                __doPostBack("<%=HiddenFieldToUpdateTreeMenu.ClientID %>",'');
            }
        }
        function postBackIndhold(side,id) {
            var hiddenField = $get("<%=HiddenFieldToUpdateIndhold.ClientID %>");
            if (hiddenField) {
                hiddenField.value = side + ";" + id;
                __doPostBack("<%=HiddenFieldToUpdateIndhold.ClientID %>",'');
            }
        }
        function ShowIndhold(){
        sideId = getSideId();
        postBackIndhold('RedigerSide.ascx',sideId)
        }
  </script>
</head>
<body>
  <!---Her er en masse div til en javascript højreklik-->
   

    <form id="form1" runat="server">
  <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <div id="siteContainer">
        <table id="siteBanner" cellpadding="0" cellspacing="0"><tr><td><b>C</b>ontent<b>M</b>anagement<b>S</b>ystem</td></tr></table>
        <table id="tblCointainer" cellspacing="0" cellpadding="0">
            <tr>
                  <td style="width: 250px;">
                    <table cellpadding="0" cellspacing="0" id="siteMenu">
                        <tr>
                            <td>
                                <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="upTreeMenu">
                                    <ProgressTemplate>
                                    <div style="width: 240px;; height: 640px; z-index: 2; position:absolute; text-align: center;font-family: Tahoma;"><img src="Images/Site/Load.gif" alt="" height="100" style="margin-top: 190px" /><br />Vent venligst...</div>
                                 
                                    </ProgressTemplate>
                                </asp:UpdateProgress>
                                <asp:UpdatePanel ID="upTreeMenu" runat="server"  UpdateMode="Conditional">
                                    <ContentTemplate>
                                        <asp:Label ID="menuHeadline" CssClass="headline" Text="" runat="server"  />
                                      <asp:HiddenField ID="HiddenFieldToUpdateTreeMenu" runat="server" />
                                        <asp:Label ID="lblTreeMenu" runat="server" />
                                    </ContentTemplate>
                                </asp:UpdatePanel>
                            </td>
                        </tr>
                    </table>
                </td>
                <td>
                    <table id="siteIndhold" cellpadding="0" cellspacing="0">
                        <tr>
                            <td style="overflow:scroll;">
                            <asp:UpdateProgress ID="UpdateProgress2" runat="server" AssociatedUpdatePanelID="upIndhold">
                                    <ProgressTemplate>
                                    <div style="width: 600px;; height: 640px; z-index: 2; position:absolute; text-align: center;font-family: Tahoma;"><img src="Images/Site/Load.gif" alt="" height="100" style="margin-top: 190px" /><br />Vent venligst...</div>
                                 
                                    </ProgressTemplate>
                                </asp:UpdateProgress>
                                  <asp:UpdatePanel ID="upIndhold" runat="server" UpdateMode="Conditional" >
                                        <ContentTemplate>
                                            <asp:PlaceHolder ID="phInholder" runat="server"></asp:PlaceHolder>
                                            <asp:HiddenField ID="HiddenFieldToUpdateIndhold" runat="server" Value="Default.ascx;0" />
                                        </ContentTemplate>
                                </asp:UpdatePanel>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

COntent.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;
using CMS.Treemenu;
using System.Resources;
using CMS;

public partial class Content : CMS.Web.CodeBase
{
    protected override string PermissionName { get { return "Administrator"; } }

    protected void Page_Load(object sender, EventArgs e)
    {
        //System.Threading.Thread.Sleep(2000);
        string strTreeMenu = HiddenFieldToUpdateTreeMenu.Value;
        if (strTreeMenu == "")
        {
            strTreeMenu = "TreeMenu";
        }
        if (strTreeMenu == "TreeMenu")
        {
            menuHeadline.Text = "Indhold";
            lblTreeMenu.Text = TreeMenu.WriteTreeMenu("TreeMenu", "Web-integrator", "Images/TreeMenu/node.gif");
        }else if (strTreeMenu == "Users")
        {
            menuHeadline.Text = "Bruger Liste";
            lblTreeMenu.Text = TreeMenu.WriteTreeMenu("TreeMenu", "Liste med brugere!", "Images/TreeMenu/node.gif");
        }
        else
        {
            menuHeadline.Text = "Fejl";
            lblTreeMenu.Text = "Menuen du trykkede ind på findes ikke!";

        }

        if (!string.IsNullOrEmpty(HiddenFieldToUpdateIndhold.Value))
        {
            string[] strIndhold = HiddenFieldToUpdateIndhold.Value.Split(';');
            if (!string.IsNullOrEmpty(strIndhold[1]) && strIndhold[1] != "0")
            {
                Context.Items.Add("sideId", strIndhold[1]);
            }
            LoadIndhold(strIndhold[0]);
        }
    }

    private void LoadIndhold(string userContol)
    {
        // til tjek af rettigheder, om brugeren må loade usercontrollen
       
        string[] userControls = new string[2];
        userControls[0] = "Default.ascx;Administrator";
        userControls[1] = "RedigerSide.ascx;SideEdit";

        Boolean boolPermission = false;
        string userControlURL = userContol;
        for (int i = 0; i < userControls.Length; i++)
        {
            string[] userControlsTjek = userControls[i].Split(';');
            if (userControlsTjek[0] == userControlURL)
            {
                boolPermission = CMS.Users.User.hasPermission(userControlsTjek[1], User.UserId);
                break;
            }
        }
        if (!boolPermission)
        {
            userContol = "Beskyttet.ascx";
        }
       

        if (!string.IsNullOrEmpty(userContol))
        {
            phInholder.Controls.Clear();
            UserControl uc = (UserControl)LoadControl(CMS.CMS._cmsPath + "WebUserControls/" + userContol);
            phInholder.Controls.Add(uc);
            uc.ID = userContol;
            if (userContol == "RedigerSide.ascx")
            {
                ((WebUserControls_RedigerSide)uc).SomethingChanged += new WebUserControls_RedigerSide.CustomerEventHandler(MySomethingChanged);
            }
        }

    }
   
    protected void MySomethingChanged(EventArgs e)
    {
        upIndhold.Update();
    }
}


Regiger side.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="RedigerSide.ascx.cs" Inherits="WebUserControls_RedigerSide" %>
<asp:Label ID="lblEdit" CssClass="headline" Text="Rediger" runat="server" />
<asp:Panel ID="panelEdit" runat="server">
Overskrift:
    <asp:TextBox ID="txtHeadline" runat="server"></asp:TextBox><br />
Tekst:<br /><asp:TextBox ID="txtText" runat="server"></asp:TextBox><br />
    <asp:Button ID="btnOK" runat="server" Text="Gem ændringer" />  <asp:Button ID= "btnCanel" runat="server" Text="Anullér" /></asp:Panel>
<asp:Label ID="lblError" runat="server" Visible="false" />

rediger.ascx.cs
using System;
using CMS.SideEdit;
using System.Web.UI.WebControls;
public partial class WebUserControls_RedigerSide : System.Web.UI.UserControl
{
    public delegate void CustomerEventHandler(EventArgs e);
    public event CustomerEventHandler SomethingChanged;

    protected void Page_Load(object sender, EventArgs e)
    {

        propSide propSide = facSide.GetSide(Convert.ToInt32(Context.Items["sideId"]));
        if (propSide != null)
        {
            txtHeadline.Text = propSide.Navn;
            txtText.Text = propSide.Tekst;
            if (SomethingChanged != null)
            {
                SomethingChanged(new EventArgs());
            }
        }

    }
}


Håber det giver dig en ide.
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 20:14 #33
Muligvis ligger problemmet i den side som du nedarver fra:
Det betyder muligvis at du ikke kan finde din usercontrol som en standard klasse.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 20:23 #34
den fil den nedarver fra ser sådan her ud:

namespace CMS.Web
{
    public class CodeBase : System.Web.UI.Page
    {
        protected virtual string PermissionName { get { return String.Empty; } }
        public CodeBase()
        {
            this.PreInit += new EventHandler(CodeBase_PreInit);
        }

        void CodeBase_PreInit(object sender, EventArgs e)
        {
            if (String.Equals(Request.Path, FormsAuthentication.LoginUrl))
                return;

            bool hasPermission = false;

            if (String.IsNullOrEmpty(PermissionName))
                hasPermission = true;

            if ((User == null || User.UserId == 0) && !hasPermission)
            {
                RedirectToLogin();
            }
            if (!hasPermission)
            {
                hasPermission = User.hasPermission(PermissionName, User.UserId);
            }
            if (!hasPermission)
            {
                RedirectToLogin();
            }
        }
        public void Login(string username, string password, Boolean remember)
        {

            User user = User.Authenticate(username, password);
            if (user == null)
            {
                Context.Items["error"] = "loginError";
                return;
            }

            HttpCookie authCookie = new HttpCookie("auth");
            authCookie.HttpOnly = true;
            authCookie.Values["name"] = user.Username;
            if (remember)
                authCookie.Expires = DateTime.Now.AddDays(30);

            Response.Cookies.Add(authCookie);
            Context.Items["User"] = user;
            RedirectAfterLogin();
        }

        public bool IsUserLoggedIn
        {
            get { return Context.Items["isAuthenticated"] != null; }
        }

        public new User User
        {
            get { return Context.Items["User"] == null ? new User(0) : Context.Items["User"] as User; }
        }

        protected void RedirectToLogin()
        {
            if (String.Equals(Request.Path, FormsAuthentication.LoginUrl))
                Response.Redirect(Request.RawUrl);

            if (!String.IsNullOrEmpty(FormsAuthentication.LoginUrl))
                Response.Redirect(String.Format("{0}?ReturnUrl={1}", FormsAuthentication.LoginUrl, Request.Path));

            Response.StatusCode = 403;
            throw new HttpException(403, "Forbidden");
        }

        protected void RedirectAfterLogin()
        {

            if (Request.QueryString["ReturnUrl"] != null)
            {
                Response.Redirect(Request.QueryString["ReturnUrl"]);
            }

            if (!String.IsNullOrEmpty(FormsAuthentication.DefaultUrl))
                Response.Redirect(FormsAuthentication.DefaultUrl);

            Response.Redirect("~/Default.aspx");
        }
    }
}
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 20:28 #35
Så kommer den også til at ligge i et Namespace. Derfor kan content.aspx formodentlig ikke genkende usercontrol klassen.
Prøv evt som en test at smide usercontrol klassen i et namespace.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 20:32 #36
altså at den skal nedarve fra en tom klasse som er omringet af et namespace? forstår jeg det rigtigt?
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 20:46 #37
prøv med:
namespace CMS.Web
{
public partial class WebUserControls_RedigerSide : System.Web.UI.UserControl
{
    public delegate void CustomerEventHandler(EventArgs e);
    public event CustomerEventHandler SomethingChanged;

    protected void Page_Load(object sender, EventArgs e)
    {

        propSide propSide = facSide.GetSide(Convert.ToInt32(Context.Items["sideId"]));
        if (propSide != null)
        {
            txtHeadline.Text = propSide.Navn;
            txtText.Text = propSide.Tekst;
            if (SomethingChanged != null)
            {
                SomethingChanged(new EventArgs());
            }
        }

    }
}
}
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 20:46 #38
Husk at andre i page directive på aspx siden
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 20:50 #39
*ændre
Avatar billede kennedk Nybegynder
19. oktober 2007 - 20:51 #40
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="RedigerSide.ascx.cs" Inherits="CMS.Web.WebUserControls_RedigerSide" %>

Sådan vil jeg tro, men den kommer med fejlen

Error    2    Typen eller navneområdenavnet 'WebUserControls_RedigerSide' kunne ikke findes (mangler der et 'using'-direktiv eller en assemblyreference?)    C:\Documents and Settings\kekri108\Skrivebord\.NET\cms\cms1\cms\Content.aspx.cs    88    75    C:\...\cms1\
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 21:14 #41
hmmm jeg fatter efterhånden hat af det.
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 21:14 #42
Det virker hos mig.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 21:14 #43
Nu har jeg prøver at fjerne de namespaces der var rundt om codebase og usercontrol, og den skriver den samme fejl som jeg lige har nævnt.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 21:16 #44
vil du prøve at sende dit projekt, hvis det er et lille et og så jeg kan prøve at lege med det? så kan jeg se hvad jeg gør galt.
Er nemlig ret grøn på .net som du vel tydeligvis kan høre.
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 21:23 #45
Nej det er ikke noget test projekt.
Så det er ikke noget jeg kan udleverer.
I det bruger jeg også Usercontroller som er defineret på aspx siden.
Jeg bruger så bare et multiview til at skifte mellem de forskellige visninger.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 21:28 #46
Okay
hm.
Hvordan bruger man så et multiview?
Jeg bliver desværre forstyrret lige nu, vender tilbage.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 22:38 #48
hvordan skal jeg så sætte usercontrolet ind i mit multiview?
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 22:42 #49
lav et multiview med et view og så træk din usercontrol ind på siden.
Avatar billede kennedk Nybegynder
19. oktober 2007 - 22:46 #50
Hvis jeg bare hiver ind laver den et a href?
Avatar billede kennedk Nybegynder
19. oktober 2007 - 22:50 #51
aah har fundet ud af det. Det vil jeg så lege med. Du skal have mange mange tak, du fortjener flere point end der er sat til spørgsmålet
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 22:54 #52
Tjaa det går nok.
Man kan altid ændre antallet af points.
Men jeg klarer mig.
Tillader mig ihvertifald at lægge et svar :)
Avatar billede kennedk Nybegynder
19. oktober 2007 - 23:14 #53
Nu virker det allerede med at den ændre teksten.
Men nu hvis jeg lavet et onclick event på den , så kommer den gamle tekst fra databasen, og ikke den fra textboksen..
Avatar billede kennedk Nybegynder
19. oktober 2007 - 23:14 #54
skal jeg lave en ny post på exp eller har du en hurtig løsning?
Avatar billede dr_chaos Nybegynder
20. oktober 2007 - 20:12 #55
Ingen hurtig løsning desværre-
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