Вы можете добавить код в свои OnInit и OnLoad, чтобы пропустить выполнение кода, который они содержат, путем проверки на Request.IsPostback и если какой-то конкретный элемент управления вызвал его (обратная передача); например:
<asp:CheckBox runat="server" ID="MyCheckbox" AutoPostBack="true" />
if(this.Request.IsPostback && this.Request.Form["__EVENTTARGET"] == this.MyCheckbox.ID)
{
return;
}
Потому что я не проверить это, если ваш флажок вложенные в других элементах управления, которые привели бы к его ClientID и UniqueID быть значением ID предваряются родительской Controls', а затем проверить эти 2 свойство выше. Кроме того, вы можете изменить это условие на явно противоположное, чтобы вы могли обернуть полный код тела в этом блоке IF (если это то, что вы предпочитаете, или если вам не нравятся несколько операторов возврата в одном методе).
Надеюсь, я хорошо понял - это сэкономит некоторую обработку; однако он может иметь отрицательные побочные эффекты (например, если у вас есть код, который динамически добавляет элементы управления в дерево управления, в методах init/load на сервере, то вы хотите, чтобы они выполнялись всегда, даже в этом случае, в противном случае viewstate из этих элементов управления dyn станет недействительным).
Значит, вы не хотите обрабатывать сервер событий, и вы также не хотите обрабатывать его с помощью Javascript? Хм, я не уверен, что есть другие альтернативы, чем это. Если я не понял ваш вопрос. –
Я хочу обработать сервер событий. Я просто не хочу делать полную обратную передачу – Soader03