【问题标题】:ASP.NET AJAX ModalPopupExtender - opening with wrong buttonASP.NET AJAX ModalPopupExtender - 使用错误的按钮打开
【发布时间】:2011-12-29 09:42:06
【问题描述】:

我在使用 AJAX ModalPopupExtender 控件时遇到问题。我要做的是单击一个按钮,使用带有按钮单击事件的 Yahoo API 触发邮政编码查找,将其显示在 ShowModalDialog 框中的 asp 面板中,然后关闭对话框。我还需要页面上的单独按钮,以使用与此完全分开的表单提交信息。

我已将目标按钮设置如下:

<asp:Button ID="btnStockist" runat="server" BackColor="#2C3473" OnClick="btnStockist_Click" />

modalpopup如下:

<ajax:ModalPopupExtender ID="mpeStockist" runat="server" okcontrolid="btnOkay" targetcontrolid="btnStockist" popupcontrolid="pnlDisplay" 
                            popupdraghandlecontrolid="PopupHeader" drag="true" backgroundcssclass="ModalPopupBG" ></ajax:ModalPopupExtender> 

实际发生的情况是,当单击目标按钮时,弹出窗口打开但事件未触发(未完成邮政编码查找)。但是,单击同一页面上单独的、不相关的按钮会触发事件,并且查找工作完美。我可以正常关闭对话框。我尝试使用 CSS 隐藏目标按钮作为一种快速解决方法,但问题是页面上的任何其他按钮似乎都会触发查找方法和 modalpopup,无论它们的点击事件被编程为做什么,我需要它们工作分开。

如果有什么用,面板代码在这里:

<asp:Panel ID="pnlDisplay" style="display:none" runat="server">
                <div class="PopupContainer">
                    <div class="PopupBody">                        
                        <div align="center">Local Suppliers</div>
                        <br /><br />
                        <asp:label ID="lblError" runat="server"></asp:label>
                        <asp:UpdatePanel ID="upAlternatives" runat="server" UpdateMode="Conditional">
                            <ContentTemplate>
                            <asp:DataList ID="dlStockist_Select" runat="server">
                                <HeaderTemplate>
                                    <table cellpadding="5" width="680">
                                        <tr>
                                            <td>Name</td>
                                            <td>Address</td>
                                            <td>Town/City</td>
                                            <td>Miles (Approx)</td>                                                                        
                                        </tr>
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <tr>
                                        <td><%# DataBinder.Eval(Container.DataItem, "CNAM") %></td>
                                        <td><%# DataBinder.Eval(Container.DataItem, "CADD1") %></td>
                                        <td><%# DataBinder.Eval(Container.DataItem, "CADD3")%></td>                                
                                        <td align="center"><%# DataBinder.Eval(Container.DataItem, "Distance")%></td>                          
                                    </tr>
                                </ItemTemplate>
                                <FooterTemplate>
                                    </table>            
                                </FooterTemplate>
                            </asp:DataList>
                            </ContentTemplate>
                        </asp:UpdatePanel>
                        <asp:LinkButton ID="btnOkay" runat="server" visible="true" Text="Close" CommandName="Update" BorderColor="#FFFFFF" BackColor="#000000" 
                            BorderWidth="3" BorderStyle="Double" ForeColor="White" Font-Size="13pt" style="cursor: pointer; padding: 1px 15px 1px 15px; 
                            margin-top: 10px;" Font-Underline="False"></asp:LinkButton> 
                    </div>
                </div>
            </asp:Panel>

提前感谢您的帮助

【问题讨论】:

    标签: asp.net asp.net-ajax ajaxcontroltoolkit modalpopupextender


    【解决方案1】:

    如下添加一个按钮

    <asp:Button Text="targetbutton" ID="tgtbtn" runat="server" Style="display: none" />
    

    在modulpopup的targetcontrolid中设置这个按钮的id(因为不能为null)

    在 btnStockist 的点击事件中

    通过代码打开你的 modulapopup

    protected void btnStockist_Click(object sender, EventArgs e)
    {
       mpeStockist.Show();
    }
    

    【讨论】:

    • 完美,正是我所需要的。谢谢!不知道为什么它会起作用(modalpopup 有点奇怪?)但它解决了它。
    • @odinel 欢迎您,请参阅此以获取更多信息asp.net/web-forms/tutorials/ajax-control-toolkit/modalpopup/…
    • 问题还没有解决,在 mozilla 浏览器中不工作。但是用谷歌浏览器没问题。
    猜你喜欢
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多