2013-07-05 3 views
0

У меня есть ModalPopupExtender, который содержит пользовательский элемент управления (.ascx).
Я хочу закрыть всплывающее окно, нажав кнопку, находящуюся в пользовательском элементе управления (.ascx).
Я хочу сделать это на стороне клиента (Jquery, Javascript)Чтобы закрыть ModalPopupExtender, который содержит .ascx (пользовательский элемент управления)

ModalPopupExtender:

<asp:HiddenField ID="hidPopup" runat="server" /> 
    <ajaxToolkit:ModalPopupExtender ID="Surface1ModulePopup" PopupControlID="divPopup" 
    runat="server" TargetControlID="hidPopup" CancelControlID="btnimageclose" > 
    </ajaxtoolkit:ModalPopupExtender> 
    <div id="divPopup" class="over_line" style="visibility:hidden;"> 
     <div class="TxConsultPopUp_Window" style="background-color: #f2fbff; height: 235px; 
      width: 156px; border: 1 px solid #4490d2; margin-left: -140px; margin-top: 0px;"> 
      <div class="forg_head"> 
       <div class="head_txt" style="width: 119px; text-align: left;"> 
        Surface Selections</div> 
       <div class="close_but" style=" width:26px;"> 
        <asp:ImageButton ID="btnimageclose" runat="server" ImageUrl="images/close.png" OnClientClick="javascript:CloseWin();return false;" /> 
       </div> 
      </div> 
      <asp:Panel ID="panel1" runat="server"> 
       <UC1:Surface id="Surf1Surface" runat="server"> 
      </UC1:Surface> 
      </asp:Panel> 
     </div> 
    </div> 

Чтобы открыть его я использовал это:

var modalPopupBehaviorCtrl = $find('<%=Surface1ModulePopup.ClientID %>'); 
modalPopupBehaviorCtrl.show(); 
var ScheduledTreatments = document.getElementById("divPopup"); 
ScheduledTreatments.style.visibility = "visible"; 

ПОЖАЛУЙСТА ПОМОГИТЕ МНЕ ЖДАТЬ ОТВЕТА ОТ 1 DAY.STACKFLOW ЭКСПЕРТЫ ПОЖАЛУЙСТА ОТВЕЧАЕТ ЭТО

+0

См http://forums.asp.net/t/1191311.aspx/1 и http://weblogs.asp.net/ashicmahtab/archive/2009 /05/06/how-to-show-hide-a-modalpopupextender-using-javascript.aspx – PiLHA

+0

@PiLHA использует пользовательский контроль в popup.My usercontrol содержит btn, на котором я хочу закрыть всплывающее окно. У кликов Ur есть элемент управления на той же странице –

ответ

1

Мой первый ответ на этот вопрос, так что пальцы скрещены, он работает для вас.

Идентификатор, используемый в CancelControlID, является подмножеством всего пути (XPath) элемента управления, поэтому, если вы расширите идентификатор, чтобы включить имя usercontrol, а также заставите его иметь статическое имя, тогда вы можете ссылаться на него.

Наша конвенция об использовании имен в США разделяет ее знаком доллара ($), поэтому вы можете изменить CancelControlID="btnimageclose" на CancelControlID=Surf1Surface$nameofyourbutton. (Я считаю, что вы можете изменить то, что используется, так что вам нужно будет проверить отображаемое содержимое, для которого вы используете.)

Вам также потребуется установить ClientIDMode=Static свойство на кнопку в UserControl

это работает для меня, с этим кодом:

определение ModalPopupExtender:

<ajaxToolkit:ModalPopupExtender ID="showReferences" runat="server" 
CancelControlID="ucShowACarersFeedback$CloseWindow" TargetControlID="reviewsButton" 
PopupControlID="referencesPanel" BackgroundCssClass="ModalPopupBG"> 

панель, которая всплывает

<asp:Panel CssClass="popupConfirmation" ID="referencesPanel" Style="display: none;" 
    runat="server"> 
    <uc:ShowACarersFeedback runat="server" ID="ucShowACarersFeedback" /> 
</asp:Panel> 

Кнопка в элементе управления usShowACarersFeedback

<asp:Button ID="CloseWindow" runat="server" Text="Close Feedback window" ClientIDMode=Static /> 
Смежные вопросы