Avatar billede c-sharp Nybegynder
25. januar 2004 - 13:06 Der er 22 kommentarer og
1 løsning

Javascript validering i Repeater

Jeg har en slet knap i en repeater, på denne knap vil jeg gerne have lavet en bekræftelse af at posten skal slettes (javascript confirm), Men hvordan laver jeg dette i en repeater?
Avatar billede thor.ostergaard Nybegynder
25. januar 2004 - 13:26 #1
Avatar billede burningice Nybegynder
25. januar 2004 - 13:49 #2
jeg vil nu mene at det nemmeste vil være bare at subclasse Button-klassen, og lave din egen som implementerer en javascript-confirm message.

using System;

namespace MPAConsult.ToolBox.Web.WebControls
{
    /// <summary>
    /// Summary description for Button.
    /// </summary>
    public class Button : System.Web.UI.WebControls.Button
    {
        private bool confirm = false;
        private string confirmMessage;

        public Button() : base()
        {
           
        }

        public bool Confirm
        {
            set
            {
                confirm = value;
            }

            get
            {
                return confirm;
            }
        }

        public string ConfirmMessage
        {
            set
            {
                confirmMessage = value;
            }

            get
            {
                return confirmMessage;
            }
        }

        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            if (this.Confirm)
            {
                if (confirmMessage != null)
                {
                    this.Attributes.Add("onClick", "return confirm('"+ ConfirmMessage +"')");
                }
                else
                {
                    throw new ArgumentNullException("If you want there to be a confirm you need a confirm-message");
                }
            }

            base.Render (writer);
        }

    }
}
Avatar billede c-sharp Nybegynder
25. januar 2004 - 15:40 #3
Hvordan laver jeg en sådan subclasse af Button-klassen?

Er det bare en almenelig .cs klasse eller hvad?
Avatar billede burningice Nybegynder
25. januar 2004 - 16:24 #4
hvis det er i c#, så ja... så opretter du bare en .cs-fil og kopierer den kode jeg her har skrevet ind og compiler
Avatar billede c-sharp Nybegynder
26. januar 2004 - 06:43 #5
Dvs. jeg ligger den i en cs fil der hedder Button.cs, og hvor skal denne klasse så placeres i fil systemet, skal den bare ligge i det projekt jeg laver? For det virker ikke rigtig for mig.
Avatar billede c-sharp Nybegynder
26. januar 2004 - 15:17 #6
virker ikke rigtig for mig.
Avatar billede burningice Nybegynder
27. januar 2004 - 08:14 #7
skriver du alt i notepad og compiler fra commandoprompten, eller bruger du et IDE?
Avatar billede c-sharp Nybegynder
27. januar 2004 - 09:11 #8
Jeg bruger visual studio
Avatar billede burningice Nybegynder
27. januar 2004 - 09:13 #9
så er det vel bare at tilføje en ny class og paste ovenstående kode ind i den.

Hvilket sprog programmerer du i?
Avatar billede c-sharp Nybegynder
27. januar 2004 - 09:21 #10
Jeg skriver kode i c#.

Jeg har prøvet paste ovenstående kode i en ny klasse som hed ImageButton (Jeg laver det på en image button istedet for en button) og har rette lidt i det ovenstående:

Så burde den vel bare overskrive <asp:imagebutton> eller hvad? Men det virker ikke, der kommer ingen confirm boks.

        <asp:ImageButton ImageUrl="images\skraldespand.gif" Confirm=true ConfirmMessage="Test" CommandName=<%# DataBinder.Eval(Container.DataItem, "nyhedsNr") %> runat="server"></asp:ImageButton>
                                                           

    using System;

namespace MPAConsult.ToolBox.Web.WebControls
{

    public class ImageButton : System.Web.UI.WebControls.ImageButton
    {
        private bool confirm = false;
        private string confirmMessage;

        public ImageButton() : base()
        {
           
        }

        public bool Confirm
        {
            set
            {
                confirm = value;
            }

            get
            {
                return confirm;
            }
        }

        public string ConfirmMessage
        {
            set
            {
                confirmMessage = value;
            }

            get
            {
                return confirmMessage;
            }
        }

        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            if (this.Confirm)
            {
                if (confirmMessage != null)
                {
                    this.Attributes.Add("onClick", "return confirm('"+ ConfirmMessage +"')");
                }
                else
                {
                    throw new ArgumentNullException("If you want there to be a confirm you need a confirm-message");
                }
            }

            base.Render (writer);
        }

    }
}
Avatar billede burningice Nybegynder
27. januar 2004 - 09:52 #11
heheh... nej, den overskriver skam ikke noget

du skal manuelt registrere din kontrol på siden med Page Register
Avatar billede c-sharp Nybegynder
27. januar 2004 - 16:43 #12
og hvordan gør jeg det?
Avatar billede burningice Nybegynder
27. januar 2004 - 20:03 #13
åbner dit sdk og søger efter @ Register

Associates aliases with namespaces and class names for concise notation in custom server control syntax.

<%@ Register tagprefix="tagprefix" Namespace="namespace" Assembly="assembly" %>
<%@ Register tagprefix="tagprefix" Tagname="tagname" Src="pathname" %>

Attributes
tagprefix
An alias to associate with a namespace.
tagname
An alias to associate with a class.
Namespace
The namespace to associate with tagprefix.
Src
The location (relative or absolute) of the declarative user control file to associate with the tagprefix:tagname pair.
Assembly
The assembly in which the namespace that you are associating with tagprefix resides.
Note  The assembly name does not include a file name extension.

Example
The following code fragment uses @ Register directives to declare tagprefix and tagname aliases for a server control and a user control. The first directive declares the MyTag alias as a tag prefix for all controls residing in the MyCompany:MyNameSpace namespace. The second directive declares Acme:AdRotator as a tagprefix:tagname pair for the user control in the file Adrotator.acscx. The aliases are then used in custom server-control syntax within the form to insert an instance of each server control.
<%@ Register Tagprefix="MyTag" Namespace="MyCompany:MyNameSpace" Assembly="MyAssembly" %>
<%@ Register Tagprefix="Acme" Tagname="AdRotator" Src="AdRotator.ascx" %>
<HTML>
<body>
  <form runat="server">
      <MyTag:MyControl id="Control1" runat="server" /><BR>
      <Acme:AdRotator file="myads.xml" runat="server" />
  </form>
</body>
</HTML>
Avatar billede c-sharp Nybegynder
28. januar 2004 - 22:07 #14
JA du må meget undskylde jeg spørg så meget, men jeg hvad mener du når du skriver "åbner mit sdk og søger efter @ Register" ? er det nogte der skal ligge i mit projekt, eller i c:\programmer\Microsoft.NET\sdk ?
Avatar billede burningice Nybegynder
28. januar 2004 - 22:17 #15
du har ikke .Net SDK'et installeret ? well, du kan finde det samme ved at gå ind på MSDN http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/cpref_start.asp
Avatar billede c-sharp Nybegynder
31. januar 2004 - 14:12 #16
Det du prøver at fortælle mig er det følgende:

Jeg skal registrer min komponent i toppen af min aspx side:

<%@ Register TagPrefix="minKnap" TagName="billedeKnap" Src="ImageButton.cs" %>


og bruge den på følgended måde i min kode:

<minKnap:billedeKnap ImageUrl="images\skraldespand.gif" id="Imagebutton1" CommandName=<%# DataBinder.Eval(Container.DataItem, "nyhedsNr") %> runat="server" confirm="true">

Det virker heller ikke rigtig for mig
Avatar billede burningice Nybegynder
02. februar 2004 - 12:37 #17
må jeg se koden i din cs-fil?
Avatar billede c-sharp Nybegynder
02. februar 2004 - 22:29 #18
Det er her, hvis det var den cs fil du mente

using System;

namespace MPAConsult.ToolBox.Web.WebControls
{

    public class ImageButton : System.Web.UI.WebControls.ImageButton
    {
        private bool confirm = false;
        private string confirmMessage;

        public ImageButton() : base()
        {
           
        }

        public bool Confirm
        {
            set
            {
                confirm = value;
            }

            get
            {
                return confirm;
            }
        }

        public string ConfirmMessage
        {
            set
            {
                confirmMessage = value;
            }

            get
            {
                return confirmMessage;
            }
        }

        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            if (this.Confirm)
            {
                if (confirmMessage != null)
                {
                    this.Attributes.Add("onClick", "return confirm('"+ ConfirmMessage +"')");
                }
                else
                {
                    throw new ArgumentNullException("If you want there to be a confirm you need a confirm-message");
                }
            }

            base.Render (writer);
        }

    }
}
Avatar billede burningice Nybegynder
03. februar 2004 - 11:32 #19
Src skal pege på en usercontrol... altså en ascx-fil. For at bruge ovenstående knap skal du compile den in din assembly og bruge følgende Register-tag:

<%@ Register tagprefix="minKnap" Namespace="MPAConsult.ToolBox.Web.WebControls" Assembly="nNavn_på_din_assembly (oftest navnet på din dll-fil, uden .dll" %>

og så bruger du den sådan her

<minKnap:ImageButton ImageUrl="images\skraldespand.gif" id="Imagebutton1" CommandName=<%# DataBinder.Eval(Container.DataItem, "nyhedsNr") %> runat="server" confirm="true">
Avatar billede c-sharp Nybegynder
03. februar 2004 - 13:57 #20
Hvordan lave jeg en ascx-fil, og når jeg har compilet den til dll, hvor placere jeg så dll-filen?
Avatar billede burningice Nybegynder
03. februar 2004 - 22:34 #21
dll-filen skal ligge i din bin-mappe i roden af webhotellet
Avatar billede c-sharp Nybegynder
03. februar 2004 - 22:53 #22
Så lykkes det langt om længe at få det til at virke :-)

Tusind tak for din tålnodighed og hjælp!!

Smid et svar så du kan få nogle velfortjente point!
Avatar billede burningice Nybegynder
04. februar 2004 - 10:15 #23
det er jeg glad for at høre :)
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