Avatar billede vraa Nybegynder
21. april 2005 - 17:23 Der er 4 kommentarer og
1 løsning

Inkluder ascx i aspx via codebehind

Jeg har prøvet følgende for at inkludere en ascx fil på min aspx side via codebehind filen.

plhInkluderSide.Controls.Add(LoadControl "gaestebog/skriv.ascx"));

I denne ascx fil har jeg nogle form elementer med tilhørende validering og en submit knap til. Jeg kan hverken få knappen til at validere eller til at reagere på knap_Click funktionen.

Nogen der ved hvad jeg måske gør galt?
Avatar billede burningice Nybegynder
21. april 2005 - 17:32 #1
der mangler et ( i LoadControl, men går ud fra det bare er en fejl når du har pastet det ind her

må vi prøve at se lidt mere kode fra din ascx?
Avatar billede vraa Nybegynder
22. april 2005 - 09:05 #2
Du får lige det hele :-) Det er en gæstebog

skriv.ascx
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="skriv.ascx.cs" Inherits="juelsmindecamping.dk.gaestebog.skriv" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<!-- JavaScript handling SOAP WebCam
function HL(element, on)
{
if (!on)
{
element.style.backgroundColor = '#6699CC';
element.style.color = 'white';
element.style.borderColor = '#6699CC';
} else {
element.style.backgroundColor = '#E1F0FF';
element.style.color = 'blue';
element.style.borderColor  = '#FFFFFF';
}
return false;
}
function sp(_serial,_page)
{
document.write( '<a href="http://www.wanadoo.fr/pages_per'+
'so/estat/bin/pwpestat_stat.cgi"><img src'+
'="http://perso.estat.com/cgi-bin/perso/'
+_serial+'?'
+'&n='+Math.round (Math.random () * 1000000000000000)
+'&page='+escape(_page.length?_page:document.title)
+'&referer='+escape(document.referrer)+'" BORDER=0><\/A>')
}
//-->
        </script>
        <script language="JavaScript" for="HLLink" event="onmouseover">
return HL( this, true );
        </script>
        <script language="JavaScript" for="HLLink" event="onfocus">
return HL( this, true );
        </script>
        <script language="JavaScript" for="HLLink" event="onmouseout">
return HL( this, false );
        </script>
        <script language="JavaScript" for="HLLink" event="onblur">
return HL( this, false );
        </script>
<div class="main-left">
    <TABLE id="Table5" width="100%" border="0">
        <TR>
            <TD align="right"></TD>
            <TD>
                <DIV align="left"><FONT face="verdana" color="#003366" size="4"><B>Gæstebog</B></FONT></DIV>
            </TD>
        </TR>
        <TR>
            <TD align="right"><FONT face="verdana" size="2"><asp:label id="Label1" runat="server">Navn</asp:label></FONT></TD>
            <TD><asp:textbox id="TextBoxName" runat="server" Width="300px"></asp:textbox><asp:requiredfieldvalidator id="RequiredFieldValidator4" runat="server" ErrorMessage="Indtast venligst dit navn"
                    ControlToValidate="TextBoxName"></asp:requiredfieldvalidator></TD>
        </TR>
        <TR>
            <TD align="right"><FONT face="verdana" size="2"><asp:label id="Label2" runat="server">E-Mail</asp:label></FONT></TD>
            <TD><asp:textbox id="TextBoxEMail" runat="server" Width="300px"></asp:textbox><asp:requiredfieldvalidator id="RequiredFieldValidator3" runat="server" ErrorMessage="Indtast venligst din e-mail adresse"
                    ControlToValidate="TextBoxEMail"></asp:requiredfieldvalidator><asp:regularexpressionvalidator id="RegularExpressionValidator1" runat="server" ErrorMessage="Indtast venligst en gyldig e-mail adresse"
                    ControlToValidate="TextBoxEMail" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:regularexpressionvalidator></TD>
        </TR>
        <TR>
            <TD align="right"><FONT face="verdana" size="2"><asp:label id="Label3" runat="server">Titel på hjemmeside</asp:label></FONT></TD>
            <TD><asp:textbox id="TextBoxHomepageTitle" runat="server" Width="300px"></asp:textbox></TD>
        </TR>
        <TR>
            <TD align="right"><FONT face="verdana" size="2"><asp:label id="Label4" runat="server">Adresse på hjemmesiden</asp:label></FONT></TD>
            <TD><asp:textbox id="TextBoxHomepageURL" runat="server" Width="300px">http://</asp:textbox></TD>
        </TR>
        <TR>
            <TD align="right"><FONT face="verdana" size="2"><asp:label id="Label5" runat="server">Lokalitet</asp:label></FONT></TD>
            <TD><asp:textbox id="TextBoxLocation" runat="server" Width="300px"></asp:textbox><asp:requiredfieldvalidator id="RequiredFieldValidator2" runat="server" ErrorMessage="Indtast venligst din lokalitet"
                    ControlToValidate="TextBoxLocation"></asp:requiredfieldvalidator></TD>
        </TR>
        <TR>
            <TD align="right"><FONT face="verdana" size="2"><asp:label id="Label6" runat="server">Kommentar</asp:label></FONT></TD>
            <TD><asp:textbox id="TextBoxComments" runat="server" Width="300px" Height="110px"></asp:textbox><asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" ErrorMessage="Indtast venligst en kommentar"
                    ControlToValidate="TextBoxComments"></asp:requiredfieldvalidator></TD>
        </TR>
        <TR>
            <TD></TD>
            <TD><asp:checkbox id="CheckBoxPrivate" runat="server" Width="380" Font-Size="8" Font-Name="verdana"
                    Text="PRIVAT - Kun hjemmesidens ejer må se min email"></asp:checkbox><BR>
            </TD>
        </TR>
        <TR>
            <TD></TD>
            <TD><asp:button id="ButtonContinue" runat="server" Text="Send indlæg"></asp:button></TD>
        </TR>
    </TABLE>
</div>


skriv.ascs.cs:
namespace juelsmindecamping.dk.gaestebog
{
    using System;
    using System.IO;
    using System.Text;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Xml;
    using System.Xml.XPath;
    using Juelsminde_Camping;

    /// <summary>
    ///        Summary description for skriv.
    /// </summary>
    public class skriv : System.Web.UI.UserControl
    {
        protected System.Web.UI.WebControls.CheckBox CheckBoxPrivate;
        protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
        protected System.Web.UI.WebControls.TextBox TextBoxComments;
        protected System.Web.UI.WebControls.Label Label6;
        protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
        protected System.Web.UI.WebControls.TextBox TextBoxLocation;
        protected System.Web.UI.WebControls.Label Label5;
        protected System.Web.UI.WebControls.TextBox TextBoxHomepageURL;
        protected System.Web.UI.WebControls.Label Label4;
        protected System.Web.UI.WebControls.TextBox TextBoxHomepageTitle;
        protected System.Web.UI.WebControls.Label Label3;
        protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator1;
        protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator3;
        protected System.Web.UI.WebControls.TextBox TextBoxEMail;
        protected System.Web.UI.WebControls.Label Label2;
        protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator4;
        protected System.Web.UI.WebControls.TextBox TextBoxName;
        protected System.Web.UI.WebControls.Button ButtonContinue;
        protected System.Web.UI.WebControls.Label Label1;

        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        ///        Required method for Designer support - do not modify
        ///        the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.ButtonContinue.Click += new System.EventHandler(this.ButtonContinue_Click);
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion

        private void ButtonContinue_Click(object sender, System.EventArgs e)
        {
            //Load guestbook database
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load( Server.MapPath("guestbook.xml") );

            //Get private status
            string strPrivate;
            if ( CheckBoxPrivate.Checked )
                strPrivate = "yes";
            else
                strPrivate = "no";

            //Create a new element
            XmlElement elem = xmldoc.CreateElement("guest");
            elem.SetAttribute("private", strPrivate);

            //Add the new guest as the first node
            xmldoc.DocumentElement.PrependChild(elem);

            addTextElement( xmldoc, elem, "name", TextBoxName.Text );
            addTextElement( xmldoc, elem, "email", TextBoxEMail.Text );
            addTextElement( xmldoc, elem, "homepage", TextBoxHomepageTitle.Text );

            XmlAttribute newAttr = xmldoc.CreateAttribute("url");
            newAttr.Value = TextBoxHomepageURL.Text;

            elem.LastChild.Attributes.Append( newAttr );
           
            addTextElement( xmldoc, elem, "location", TextBoxLocation.Text );
            addTextElement( xmldoc, elem, "comment", TextBoxComments.Text );

            //Write date
            string strDate = DateTime.Now.ToLongDateString() +
                " - " +
                DateTime.Now.ToLongTimeString();

            addTextElement( xmldoc, elem, "date", strDate );

            xmldoc.Save( Server.MapPath("guestbook.xml") );

            Response.Redirect("View.aspx");
        }

        private void addTextElement( XmlDocument doc, XmlElement nodeParent, string strTag, string strValue )
        {
            XmlElement nodeElem = doc.CreateElement( strTag );
            XmlText nodeText = doc.CreateTextNode( strValue );
            nodeParent.AppendChild( nodeElem );
            nodeElem.AppendChild( nodeText );
        }
    }
}
Avatar billede vraa Nybegynder
22. april 2005 - 09:07 #3
Det er en fejl mht. parantesen. Siden vises fint når jeg loader det ind på en aspx side, men ingen validering forekommer og knappen reagerer ikke på dens respektive funktion.
Avatar billede vraa Nybegynder
22. april 2005 - 14:46 #4
Jeg bruger forresten et URL rewriter modul så når der f.eks. indtastes www.mitdomaene.dk/gaestebog er det, det samme som www.mitdomaene.dk/default.aspx?id=15
Avatar billede vraa Nybegynder
22. april 2005 - 18:15 #5
Jeg gjorde det på en anden måde. Det var min URL ReWriting der drillede, så den gik jeg væk fra mht. til gæstebogen.
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