Avatar billede Slettet bruger
25. april 2010 - 19:34 Der er 4 kommentarer

ASP.NET Gridview Rowcommand CustromControl AJAX ModalPopupExtender

Case:

På min nested .net page har jeg et gridview som ved rowcommand aktivere ajax ModalPopupExtender in en customcontrol. I ModalPopupExtender  panelet er jeg lavet en knap som lukker popup igen. Alt sammen virker tilsydenladen som det skal.

MEN.. 11 gang jeg klikker på "Vælg" i en række i Gridview, og resultare i en rowcommand, så åbnes Popup forkert. Det vil sige at baggrunden er ikke deaktiveret og kan herfor klikke på indholdet som ikke er i popup. Desuden er popup heller ikke top most.

Jeg syndes det er meget mærkeligt og kan ikke helt finde ud af hvor fejlen ligger.

Nogle forslag ????????????????
Avatar billede Slettet bruger
25. april 2010 - 19:58 #1
Jeg har fejlsøgt lidt mere. Det skyldes ikke noget med gridview. Jeg kan fremkalde samme fejl ved at jeg laver en knap som popup igennem usercontrol
Avatar billede Slettet bruger
25. april 2010 - 20:51 #2
WebForm.aspx
---------------------------------------------------
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm.aspx.vb" Inherits="WebApplication1.WebForm" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<!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></title>
    <style type="text/css">
            .modalBackground
        {
            background-color: black;
            filter: alpha(opacity=60);
            opacity: 0.6;
        }
        .modalPopup
        {
          background-color:Transparent;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></asp:ToolkitScriptManager>
    <div>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"><ContentTemplate>
                <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
            <asp:Button id="btnShowPopup" runat="server" style="display:none" Text="Test" />
            <asp:ModalPopupExtender ID="mdlPopup" runat="server" TargetControlID="btnShowPopup" PopupControlID="pnlPopup" BackgroundCssClass="modalBackground" X="0" Y="0" />
            <asp:Panel ID="pnlPopup" CssClass="modalPopup" runat="server" style="display:none" ScrollBars="Auto" Height="100px" Width="100px" BackColor="White">
                <asp:LinkButton ID="btnCancel" runat="server" CssClass="ControlLink" text="Cancel"></asp:LinkButton>
            </asp:Panel>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    </form>
</body>
</html>
Avatar billede Slettet bruger
25. april 2010 - 20:52 #3
WebForm.aspx.vb
---------------------------------------------------------------
Public Class WebForm
    Inherits System.Web.UI.Page

    Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles LinkButton1.Click
        Me.mdlPopup.Show()
    End Sub

    Private Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancel.Click
        Me.mdlPopup.Hide()
    End Sub

End Class
Avatar billede Slettet bruger
25. april 2010 - 20:58 #4
Hvis jeg ændre modalextemder tag til dette og fjerner de 2 handles virker det:

<asp:ModalPopupExtender ID="mdlPopup" runat="server" TargetControlID="LinkButton1" CancelControlID="btnCancel" PopupControlID="pnlPopup" BackgroundCssClass="modalBackground" X="0" Y="0" />

Jeg konkludere heraf at fejlen kommer når man dynamisk laver mdlPopup.Show og mdlPopup.Hide når ModalPopupExtender er placeret inde i updatepanel. Bemærk at der kun skal 6 click til nu før at popup fejler. Hvis jeg placeret endnu et updatepanel ville jeg komme op på de 11.
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
Kurser inden for grundlæggende programmering

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