sukumar kathula Ответов: 1

Всплывающее окно модели Ajax не работает внутри панели обновления, здесь я хотел бы вызвать событие для btndeletepic, но не смог


<asp:TemplateColumn>
                    <ItemTemplate>
                        <asp:UpdatePanel ID="UpdatePanel3" UpdateMode="Conditional" runat="server" ChildrenAsTriggers="true">
                            <ContentTemplate>
                                <asp:LinkButton ID="btnDeletePic" runat="server" Text="Delete" OnClick="btnDeletePic_Click" />
                                <asp:ModalPopupExtender ID="ModalPopupExtender2" BackgroundCssClass="modalBackground1"

                                    runat="server" CancelControlID="btnclose" TargetControlID="btnDeletePic" PopupControlID="Panl2">
                                </asp:ModalPopupExtender>
                            </ContentTemplate>
                            <Triggers>
                                <asp:AsyncPostBackTrigger ControlID="btnDeletePic" EventName="Click" />
                            </Triggers>
                        </asp:UpdatePanel>
                        <asp:UpdatePanel ID="UpdatePanel4" UpdateMode="Conditional" runat="server" ChildrenAsTriggers="true">
                            <ContentTemplate>
                                <asp:Panel ID="Panl2" runat="server" CssClass="Popup1" align="center" Style="display: none">
                                    <%--  <iframe style="width: 350px; height: 300px;" id="irm1" src="DisplayImages.aspx" runat="server">
                            </iframe>--%>
                                    <div style="overflow: auto; height: 100px; width: 250px;">
                                        <asp:Label ID="lblMpPicture1" runat="server" ItemStyle-wrap="true" ItemStyle-Width="10px">
                                        </asp:Label><br />
                                        <br />
                                        <asp:Label ID="lblMpPicture2" runat="server" ItemStyle-wrap="true" ItemStyle-Width="10px">
                                        </asp:Label><br />
                                        <br />
                                        <asp:Label ID="lblMpPicture3" runat="server" ItemStyle-wrap="true" ItemStyle-Width="10px">
                                        </asp:Label><br />
                                        <br />
                                        <asp:Label ID="lblMpPicture4" runat="server" ItemStyle-wrap="true" ItemStyle-Width="10px">
                                        </asp:Label><br />
                                        <br />
                                        <asp:Label ID="lblMpPicture5" runat="server" ItemStyle-wrap="true" ItemStyle-Width="10px">
                                        </asp:Label>
                                    </div>
                                    <br />
                                    <asp:Button ID="btnSave" runat="server" Text="Save" />
                                    <asp:Button ID="btnclose" runat="server" Text="Close" />
                                </asp:Panel>
                            </ContentTemplate>

                        </asp:UpdatePanel>
                    </ItemTemplate>
                </asp:TemplateColumn>


Что я уже пробовал:

<asp:TemplateColumn>
                        <itemtemplate>
                            <asp:UpdatePanel ID="UpdatePanel3" UpdateMode="Conditional" runat="server" ChildrenAsTriggers="true">
                                <contenttemplate>
                                    <asp:LinkButton ID="btnDeletePic" runat="server" Text="Delete" OnClick="btnDeletePic_Click" />
                                    <asp:ModalPopupExtender ID="ModalPopupExtender2" BackgroundCssClass="modalBackground1"

                                        runat="server" CancelControlID="btnclose" TargetControlID="btnDeletePic" PopupControlID="Panl2">
                                    
                                </contenttemplate>
                                <triggers>
                                    <asp:AsyncPostBackTrigger ControlID="btnDeletePic" EventName="Click" />
                                </triggers>
                            
                            <asp:UpdatePanel ID="UpdatePanel4" UpdateMode="Conditional" runat="server" ChildrenAsTriggers="true">
                                <contenttemplate>
                                    <asp:Panel ID="Panl2" runat="server" CssClass="Popup1" align="center" Style="display: none">
                                        <%--  <iframe style="width: 350px; height: 300px;" id="irm1" src="DisplayImages.aspx"  runat="server">
                                </iframe>--%>
                                        <div style="overflow: auto; height: 100px; width: 250px;">
                                            <asp:Label ID="lblMpPicture1" runat="server" ItemStyle-wrap="true" ItemStyle-Width="10px">
                                            <br />
                                            <br />
                                            <asp:Label ID="lblMpPicture2" runat="server" ItemStyle-wrap="true" ItemStyle-Width="10px">
                                            <br />
                                            <br />
                                            <asp:Label ID="lblMpPicture3" runat="server" ItemStyle-wrap="true" ItemStyle-Width="10px">
                                            <br />
                                            <br />
                                            <asp:Label ID="lblMpPicture4" runat="server" ItemStyle-wrap="true" ItemStyle-Width="10px">
                                            <br />
                                            <br />
                                            <asp:Label ID="lblMpPicture5" runat="server" ItemStyle-wrap="true" ItemStyle-Width="10px">
                                            
                                        </div>
                                        <br />
                                        <asp:Button ID="btnSave" runat="server" Text="Save" />
                                        <asp:Button ID="btnclose" runat="server" Text="Close" />
                                    
                                </contenttemplate>
                             
                            
                        </itemtemplate>

1 Ответов

Рейтинг:
12

Vincent Maverick Durano

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

Вы можете попробовать удалить UpdatePanel, который обертывает ваш модал, а затем использовать фиктивную/поддельную кнопку в качестве целевого элемента управления, чтобы вы могли вызвать ModalPopup.Show () в вашем коде позади, когда вы нажимаете на кнопку удаления. Например:

<ItemTemplate>
	<asp:LinkButton ID="lnkTarget" runat="server" style="displaye:none;" />
    <asp:Panel ID="pnlPopUp" runat="server" style="display:none" CssClass="modal" >
        Your content
    </asp:Panel>
    <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="lnkTarget" PopupControlID="pnlPopUp" BackgroundCssClass="modal-bg">
    </asp:ModalPopupExtender>
</ItemTemplate>


Затем в событии Click вашей кнопки Delete вы можете найти модал и просто вызвать метод Show() модального типа:

protected void btnDeletePic_Click(object sender, ClickEventArgs e)
{
        LinkButton b = (LinkButton)sender;
        GridViewRow row = (GridViewRow)b.NamingContainer;
        if (row != null)
        {
            ModalPopUpExtender modal = (ModalPopUpExtender)row.FindControl("ModalPopUpExtender1");
            if (modal != null){
                 modal.Show();
            }
        }
}


sukumar kathula

Спасибо, я сделал то же самое , теперь все работает нормально :)

Vincent Maverick Durano

Потрясающе! Не забудьте закрыть эту тему, Если ваша проблема была решена. Таким образом, будущие читатели смогут легко найти решение, которое поможет вам. :)

Vincent Maverick Durano

Похоже, вы не приняли мое решение :(