Как установить TargetContrlID в ModalPopupExtender с помощью элемента управления в GridView - PullRequest
7 голосов
/ 07 мая 2011

Как мне установить TragetContriID на HyperLink внутри GridView?

Я пробовал это:

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
                        PopupControlID="Panel1" 
                        CancelControlID="btnCancel" 
                        OnCancelScript="HideModalPopup()"
                        TargetControlID="GridView1$HyperLink1">
</asp:ModalPopupExtender>

Но у меня ошибка: нет GridView1$HyperLink1

1 Ответ

8 голосов
/ 13 мая 2011

Установка TargetControlID для ModalPopupExtender в основном запускает клиентскую функцию Show этого ModalPopup при нажатии на элемент управления.Поэтому вам нужно подключить элементы управления самостоятельно.

Во-первых, поскольку ModalPopupExtender нужен TargetControlID, вы должны добавить фиктивный элемент управления, чтобы связать модальное всплывающее окно с:

<asp:Button runat="server" 
            ID="HiddenTargetControlForModalPopup" 
            style="display:none"/> 

И связать ModalPopupExtender TargetControlID с ним

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
                        PopupControlID="Panel1" 
                        CancelControlID="btnCancel" 
                        OnCancelScript="HideModalPopup()"  
                        TargetControlID="HiddenTargetControlForModalPopup">
</asp:ModalPopupExtender>

Так что у ModalPopupExtender теперь есть цель, которая ничего не делает.Теперь нам нужно выполнить работу цели.Вам нужна функция javascript, чтобы показать ModalPopup со стороны клиента.

<script type="text/javascript">
     var ModalPopup='<%= ModalPopupExtender1.ClientID %>';

     function ShowModalPopup() {
         //  show the Popup     
         $find(ModalPopup).show();
     }
</script>   

Затем вы должны сопоставить событие OnClientClick элемента управления в gridview с этой функцией javascript.Из вашего кода я вижу, что вы используете asp:HyperLink, я не думаю, что он поддерживает событие OnClientClick, поэтому вам, вероятно, нужно переключить его на asp:LinkButton.

<asp:LinkButton ID="LinkButton1" runat="server" 
                OnClientClick="ShowModalPopup()" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...