Установка 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()" />