Лучший способ - определить, какой элемент управления, вызвавший обратную передачу, переопределить метод protected
Page.RaisePostBackEvent
.Этот метод используется инфраструктурой ASP.NET для уведомления серверного элемента управления, вызвавшего обратную передачу, о том, что он должен обработать входящее событие обратной передачи:
public class MyPage : Page
{
protected override void RaisePostBackEvent(
IPostBackEventHandler sourceControl,
string eventArgument
)
{
// here is the control that caused the postback
var postBackControl = sourceControl;
base.RaisePostBackEvent(sourceControl, eventArgument);
}
}
Код, который вы предоставили, должен работать в сценарии, когда на стороне клиента *Функция 1006 * отображается на странице (например, если вы используете только одну кнопку, например <asp:Button runat="server" ID="btnSubmit" Text="submit" UseSubmitBehavior="true" />
, она не будет отображаться).
Если даже в случае, когда отображается функция __doPostBack
,но параметр __EVENTTARGET
является пустым, это означает, что поведение по умолчанию для функции __doPostBack
нарушается пользовательским / несовместимым кодом JavaScript в большинстве случаев.В этом случае даже инфраструктура ASP.NET не сможет правильно обрабатывать события обратной передачи.