Я пытаюсь реализовать IButtonControl
для пользовательского элемента управления кнопки, который не является производным от обычной кнопки ASP.NET.У меня все события и свойства реализованы и передаются с сервера на клиент.
Проблема в том, что PostBackUrl
работает только тогда, когда у меня есть обычная кнопка в форме.Что я делаю, это следующее.
theForm.action = this._postbackUrl;
__doPostBack(this._uniqueID, v);
} catch (ex) { }
Но затем я получаю сбой проверки MAC ViewState, если на странице есть только моя кнопка и я нажимаю на нее.Предположительно, это потому, что сайт не был готов изменить его с помощью моей кнопки, поэтому подумал, что это небезопасно.
Кто-нибудь знает способ обойти это?Я посмотрел на код кнопки ASP, и они делают несколько вещей, некоторые из которых являются внутренними.
Ничего из этого не работает.Они включают в себя:
this.Page.ClientScript.RegisterForEventValidation(postbackOptions);
// where postbackOptions is built based upon my control
m = Page.GetType().GetMethod("RegisterWebFormsScript", BindingFlags.Instance | BindingFlags.NonPublic);
m.Invoke(Page, new object[] { });
m = Page.GetType().GetMethod("RegisterPostBackScript",
BindingFlags.Instance | BindingFlags.NonPublic);
m.Invoke(Page, new object[] { });
Последние два должны были появиться скрипт WebForms_DoPostbackWithOptions.
Кто-нибудь сталкивался с подобными проблемами или есть идеи?
Пожалуйста, и спасибоДэйв