Кнопка Eventhandler не срабатывает, когда в CollapsibleExtender внутри ModalpopupExtender - PullRequest
0 голосов
/ 10 января 2012

У меня есть подробный вид внутри ModalPopupExtender, который работает отлично. В разделе нижнего колонтитула подробного просмотра я разместил несколько кнопок ссылок.

Когда нажата кнопка ссылки, она должна вызвать CollapsiblePanelExtender, который создается динамически. Пока все работает так, как должно быть. Ниже приведена часть подробного обзора внутри modalpopup

<Toolkit:ModalPopupExtender ID="mdlPopup" runat="server" TargetControlID="btnShowPopup" 
    PopupControlID="pnlPopUp" BackgroundCssClass="modalBackground" 
    PopupDragHandleControlID="DragHandle"  DropShadow="true"/>
<asp:Panel ID="pnlPopUp" runat="server" style="display:none;" 
    CssClass="popUpStyle">
    <asp:Panel ID="DragHandle" runat="server" CssClass="drag" ></asp:Panel>
    <asp:DetailsView ID="dvwDetailsUser" runat="server"  
         AutoGenerateRows="False" 
         Width="100%" 
         onitemcommand="dvwDetailsUser_ItemCommand" 
         FooterStyle-HorizontalAlign="Right"  
         ForeColor="#990000" 
         BorderWidth="0px" >                   
         <Fields>
          <asp:BoundField DataField="GivenName" HeaderText="First name" />
          <asp:BoundField DataField="SurName" HeaderText="Last name" />
          <asp:BoundField DataField="DisplayName"  HeaderText="DisplayName" />
          <asp:BoundField DataField="SamAccountName"  HeaderText="Account" />
          <asp:BoundField DataField="EmailAddress" HeaderText="E-mail" />
          <asp:CheckBoxField DataField="Enabled" HeaderText="user enabled" />
          <asp:BoundField NullDisplayText="" />
          <asp:BoundField DataField="DistinguishedName" 
              HeaderText="DistinguishedName" />
         </Fields> 
         <FooterStyle HorizontalAlign="Right" />
            <FooterTemplate >
               <asp:LinkButton ID="btnProperties" 
           runat="server" CommandName="Remove" Text="Remove" />
            </FooterTemplate>
            <HeaderStyle BackColor="#FFCD4A" Font-Bold="True" 
             HorizontalAlign="left" />
            <AlternatingRowStyle BackColor="#EFEFEF" />
    </asp:DetailsView>
</asp:Panel>

Расширитель modalpopup и подробный вид помещаются в панель обновления. когда я нажимаю кнопку ссылки во всплывающем окне, отображается складная панель.

Внутри складной панели у меня также есть кнопка, созданная динамически. Когда я нажимаю кнопку, новый обработчик событий, который прикреплен к кнопке, не запускается.

protected void dvwDetailsUser_ItemCommand(object sender, DetailsViewCommandEventArgs e)
{
   if (e.CommandName == "Remove")
        DeleteAccount();
   end if
}

public void DeleteAccount()
{

    Panel p = new Panel();
    Button btnRemove = new Button();

    p.ID = "pnlDeleteAccount";
    p.GroupingText = "Remove" + dvwDetailsUser.Rows[2].Cells[1].Text;

    btnRemove.Text = "Remove"
    btnRemove.ID = "Apply";
    btnRemove.CausesValidation = false;

    btnRemove.UseSubmitBehavior = false;
    btnRemove.Click += new EventHandler(btnRemove_Click);
    p.Controls.Add(btnRemove);

    CollapsiblePanelExtender cpe = new CollapsiblePanelExtender();

        cpe.TargetControlID = p.UniqueID;
        cpe.ExpandControlID = p.UniqueID;
        cpe.CollapseControlID = p.UniqueID;
        cpe.AutoCollapse = false;
        cpe.AutoExpand = false;
        cpe.ScrollContents = false;
        cpe.SuppressPostBack = false;
        cpe.ExpandDirection = CollapsiblePanelExpandDirection.Vertical;
        cpe.Page = this.Page;

        pnlPopUp.Controls.Add(cpe);
        cpe.Controls.Add(p);


    mdlPopup.Show();
 }

public void btnRemove_Click(object sender, EventArgs e)
{
    Response.Redirect("UserAccount.aspx");
}

Я поместил response.redirect, чтобы увидеть, будет ли происходить событие btnRemove_click при нажатии кнопки удаления.

Я что-то здесь упускаю?

...