ASP.NET AJAX ModalPopupExtender - открытие с неправильной кнопкой - PullRequest
1 голос
/ 29 декабря 2011

У меня проблемы с элементом управления AJAX ModalPopupExtender.Я пытаюсь щелкнуть кнопку, вызвать поиск по почтовому индексу с помощью Yahoo API с событием нажатия кнопки, отобразить его на панели asp в поле ShowModalDialog, а затем закрыть диалоговое окно.Мне также нужна отдельная кнопка на странице, чтобы отправить информацию, используя форму, полностью отделенную от этой.

Я установил целевую кнопку следующим образом:

<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>

Заранее спасибо за помощь

1 Ответ

1 голос
/ 29 декабря 2011

Добавьте еще одну кнопку, как указано ниже

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

Установите идентификатор этой кнопки в targetcontrolid модуля modulpopup (поскольку она не может быть нулевой)

и в событии click btnStockist

открой свой модуль по коду

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