Avatar billede muggen Nybegynder
20. januar 2006 - 14:06 Der er 5 kommentarer og
1 løsning

"Confirm" messagebox i detailsview i ASP.NET 2.0

"Confirm" messagebox i detailsview i ASP.NET 2.0  50 point fra muggen 



X Jeg vil gerne vise en messagebox efter at en bruger har trykket "Delete" i detailsview controllen i ASP.NET 2.0, men før at recorden slettes i databasen. Jeg har med held brugt "OnItemInserted" eventen når jeg opretter en ny record - jeg bruger den tilhørende event handler til at opdatere mit gridview så recorden bliver vist med det samme i griddet. Jeg prøver at bruge "OnItemDeleting" eventen til at vise en confirm messagebox, så brugeren får mulighed for afbryde handlingen. Jeg har følgende event handler klar i min code-behind fil, men hvordan skal koden se ud for at vise en messagebox? Er der evt. andre løsninger end "OnItemDeleting" eventen?

void BookDetailView_ItemDeleting(Object sender, DetailsViewDeleteEventArgs e)
    {
    }
Avatar billede snepnet Nybegynder
20. januar 2006 - 14:33 #1
det skal du gøre clientside .... sådan her på din knap:

// har du en knap
Button btnDelete = new Button(),
btnDelete.Attributes.Add("onclick","return confirm('...')");

mvh
Avatar billede snepnet Nybegynder
20. januar 2006 - 14:35 #2
du kan med fordel lave en confirmbutton - så du kan bruge den i de sammehænge sådan noget er nødvendigt.... her et hurtigt udgangspunkt:

public class ConfirmButton : Button
{
    private string _confirmMessage = "Er du sikker";

    public string ConfirmMessage
    {
        get { return _confirmMessage; }
        set { _confirmMessage = value; }
    }

    protected override void AddAttributesToRender(HtmlTextWriter writer)
    {
        if (_confirmMessage != null && _confirmMessage.Length > 0)
        {
            writer.AddAttribute("onclick", "return confirm('" + _confirmMessage + "');");
        }
        base.AddAttributesToRender(writer);
    }
}

mvh
Avatar billede muggen Nybegynder
20. januar 2006 - 15:06 #3
Snepnet - Jeg sidder i Visual Studio 2005 arbejder i mit detailsview. Jeg er ikke helt sikker på, hvad jeg skal gøre for at følge dit forslag - har du det overblik?
Avatar billede snepnet Nybegynder
20. januar 2006 - 15:17 #4
hvis du angiver din knap sådan her:

<Columns>
    <asp:TemplateField>
    <ItemTemplate>
        <asp:Button ID="btnDelete" runat="server" CommandName="Delete" OnClientClick="return confirm('test');" Text="Delete" />
    </ItemTemplate>
    </asp:TemplateField>
</Columns>

den returnerer brugeren valg i dialogboksen.... klikkes der cancel får du ikke noget postback. klikkes der ok - udføres postback, og du får eksekveret din serverside handler.

det jeg skrev med at lave din egen knap var møntet på at du så kunne sådan noget her istedet (hvis en sådan knap er noget du har behov for flere steder):

<Columns>
    <asp:TemplateField>
    <ItemTemplate>
        <myControls:ConfirmButton ID="btnDelete" runat="server" CommandName="Delete" ConfirmText="blahblah" Text="Delete" />
    </ItemTemplate>
    </asp:TemplateField>
</Columns>

mvh
Avatar billede muggen Nybegynder
20. januar 2006 - 23:54 #5
snepnet - Det virker. Send som svar så du kan få dine point. Tak for hjælpen.
Avatar billede snepnet Nybegynder
20. januar 2006 - 23:58 #6
det var så lidt :o)
mvh
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