Аз съм изправен пред проблем с бутоните.
Искам да се извърши валидиране от страна на клиента (да речем, че изберете максимум само 4 квадратчета в даталист).
Използвах INPUT TYPE = "BUTTON" RUNAT = "SERVER" стил на маркер. и сложете Onserverclick = "someservermethod", което работи добре.
Написах Validate () и добавих onclick = "returnvalidate (); "за горната HTML маркировка и мислех, ако тя върне невярно, тогава кодът на страната ми на сървъра someservermethod () няма да се изпълни и работи страхотно, както се очакваше
Но когато се върна вярно, мислех, че ще уволни моята someservermethod (), но не работи. Някакви мисли за това защо не работи?
HTML МАРКУП ПО-долу за бутона
button onclick="return ValidateSelection();" type="button" id="btnSubmit"
runat="server" onserverclick="btnSubmit_Click"
КОД НА КЛАВИАТУРА
function ValidateSelection()
{
if(good)
{
// I expect that my server side code btn_Submit would have got called. But
// it doesn"t get called.
return true;
}
else
{
//This works great. Not calling the server side method for the button
alert("something happened");
return false;
}
}
Мисля, че се забърквам с форматирането. Извинете.
Отговори:
4 за отговор № 1Контролът, който използвате в момента, е HtmlButton, който не е "подходящ" за това, което се опитвате да направите, като вашия onclick
презаписва необходимия код от страна на клиента за обратно публикуване.
Това, от което се нуждаете, е бутонът, който поддържа презаписване от страна на клиента onclick
и все още изпълнявайте публикацията обратно, както обикновено.
Променете маркировката на това и тя трябва да работи:
<asp:button OnClientClick="return ValidateSelection();" id="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit"></asp:Button>