Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Как отменить PostBack


Автор: StepS 7.4.2006, 11:27
Привет, всем !
Есть кнопка, по нажатию на которую, выскакивает javascript:confirm() нужно чтоб по нажатии на Cancel не происходил __doPostBack() как это реализовать ?
Проблема в том что ASP.NET автоматически добавляет на кнопки обработчик __doPostBack, как с этим бороться или может есть альтернативный вариант, но нужно именно кнопка (не ссылка)

Автор: StepS 7.4.2006, 13:17
Нашел !!!
Значит так: если не хотите чтобы был постбэк по нажатю на кнопку нужно просто OnClick прописать так:
Код

  btn.OnClick = "return yourfunction()";

или так :
Код

  btn.Attributes["OnClick"] = "return yourfunction()";


Оператор return обязателен ! иначе работать не будет. И тогда: если yourfunction() вручную делает __doPostBack() тогда все будет ок.

Это все касается только HtmlButton т.к. asp:Button - парситься как <button type = "submit"...>

Автор: Pankon 28.6.2006, 11:36
Цитата(StepS @  7.4.2006,  13:17 Найти цитируемый пост)
"return yourfunction()";
 - Попробовал... На хтмл странице 
Код

onclick="return yourfunction();__doPostBack('btnKuKu','')"
 !!!! doPostBack - присутствует!!! Просто return заканчивает выполнение скрипта.....

Так как же все-таки действительно отключить doPostBack  smile 
т.е. чтобы сервет не генерировал код __doPostBack('btnKuKu','')
 

Автор: Mad 28.6.2006, 11:55
Цитата(Pankon @  28.6.2006,  10:36 Найти цитируемый пост)
Так как же все-таки действительно отключить doPostBack  

а зачем ? smile HtmlButton это server-side control, и соответственно ему этот самый doPostBack просто необходим
если тебе нужен клиентский контрол, тогда зачем использовать HtmlButton, просто вместо
Код

<button id="button1" runat=server></button>

пишем
Код

<input type="button"></button>
 

Автор: Pankon 28.6.2006, 12:16
Цитата(Mad @  28.6.2006,  11:55 Найти цитируемый пост)
а зачем ? 
 Просто хотелось на сервере при load нажначать событиям (btnKuKu.OnClientClick) функции из Page.ClientScript, где программным путем указывались бы ИД, и.д... Можно конечно в хтмл-е <% ... %>, но это уже напоминает "старый" АСП  smile 

Так все таки - есть такая возможность или нет?

Вот например asp:DropDownList имеет свойство AutoPostBack .... smile 
 

Автор: Mad 28.6.2006, 13:22
Цитата(Pankon @  28.6.2006,  11:16 Найти цитируемый пост)
Вот например asp:DropDownList имеет свойство AutoPostBack .... 

это уже немного другое


Цитата(Pankon @  28.6.2006,  11:16 Найти цитируемый пост)
Просто хотелось на сервере при load нажначать событиям (btnKuKu.OnClientClick) функции из Page.ClientScript, где программным путем указывались бы ИД, и.д... Можно конечно в хтмл-е <% ... %>, но это уже напоминает "старый" АСП

вопервых в ASP.NET блоки <%....%> еще никто не отменял, но если тебе всетаки хочеться именно через свойства, то есть такой элемент
<asp:Literal> и ставь ему свойство Text так как тебе нужно, и когда тебе нужно

например
Код

void OnPageLoad()
{
    if (...)
        literal.Text = "<input type='button' id='someid' onclick='clickHandler1()'>...</input>";
    else
        literal.Text = "<input type='button' id='someid' onclick='clickHandler2()'>...</input>";
}

 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)