В настоящее время я разрабатываю веб-приложение и создаю несколько пользовательских элементов управления.Я создал пользовательскую «модальную кнопку», которая наследуется от веб-элемента управления и, и INamingContainer, элемент управления использует emebedded ресурсы для регистрации клиентского кода (FancyBox jQuery), модальная кнопка отображает Iframe в модальном режиме и отлично работает на моемСтраница Default.aspx.
Проблема:
Я попытался объявить другой элемент управления «модальная кнопка» на другой странице, однако всплывающее окно не может выполнить обратную передачу.Я исследовал ошибку и обнаружил, что _DoPostBack не генерируется на этой странице.поэтому я добавил метод: this.Page.ClientScript.GetPostBackClientHyperlink (this, "") ;.Это сгенерировало функцию _doPostBack и вызвало пост обратно, однако модал не открывается во второй раз!
Вот мой сценарий на стороне клиента, сгенерированный в моем методе управления, переопределяющем CreateChildControls ():
// http://fancybox.net/
StringBuilder jQueryInclude = new StringBuilder();
jQueryInclude.Append("$(document).ready(function () { ");
// Uses ".class" selector
jQueryInclude.AppendFormat("$('.{0}').fancybox( ", this.ModalViewID);
jQueryInclude.Append(" { ");
jQueryInclude.Append(" 'titlePosition': 'outside',");
jQueryInclude.Append(" 'modal': 'true', ");
jQueryInclude.Append(" 'transitionIn': 'elastic', ");
jQueryInclude.Append(" 'transitionOut': 'fade', ");
jQueryInclude.Append(" }); ");
jQueryInclude.Append("});");
var closeMethod = String.Format("{0}_CloseDialog()", close.ClientID);
jQueryInclude.Append(" function METHOD_NAME { ").Replace("METHOD_NAME", closeMethod);
jQueryInclude.Append(" $.fancybox.close(); ");
jQueryInclude.AppendFormat(" __doPostBack('<%= {0} %>', '' )", close.ClientID); // Postback on close to reload iframe
jQueryInclude.Append(" } ");
close.OnClientClick = closeMethod;
//user preference else all modals will be same
Page.ClientScript.RegisterClientScriptBlock(typeof(ModalButton), String.Format("{0}_fancyBox", this.ModalViewID), jQueryInclude.ToString(), true);
Что мне нужно знать:
Как обеспечить этот пользовательский "modalbutton "генерирует функцию _DoPostBack и также открывается снова, когда она была отправлена обратно.
Заранее спасибо