My WebPage has two textbox & one button.On button click I call script enabled webservice asynchronously still why my page go for postback to server?
<%@dotnet.itags.org.PageLanguage="C#"AutoEventWireup="true"CodeFile="page2.aspx.cs"Inherits="page2" %>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>Untitled Page</title>
<scriptlanguage="javascript"type="text/javascript">
<!--
function Button1_onclick(){
ret= WebService.Hello(document.getElementById('TextBox1').value,OnComplete,OnTimeOut,OnError);
return(true);
}
function OnComplete(args){
document.getElementById('TextBox2').value=args;
}
function OnTimeOut(args){
alert('Timeout');}
function OnError(args){
alert('error');}
// -->
</script></head>
<body>
<formid="form1"runat="server">
<div>
<asp:TextBoxID="TextBox1"runat="server"></asp:TextBox>
<asp:ButtonID="Button1"runat="server"Text="Button"OnClientClick="Button1_onclick();"/>
<asp:TextBoxID="TextBox2"runat="server"></asp:TextBox>
<asp:ScriptManagerID="ScriptManager1"runat="server">
<Services>
<asp:ServiceReferencePath="WebService.asmx"/>
</Services>
</asp:ScriptManager>
</div>
</form></body>
</html>
===============================================
WebService
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;///<summary>
/// Summary description for WebService
///</summary>
[WebService(Namespace ="http://tempuri.org/")][WebServiceBinding(ConformsTo =WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService()]
publicclassWebService : System.Web.Services.WebService {public WebService () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]publicstring Hello(string msg) {
return"Hello"+msg;}
}
function Button1_onclick()
{
ret= WebService.Hello(document.getElementById('TextBox1').value,OnComplete,OnTimeOut,OnError);
return false; // return(true); you need to return false instead of true. if you return false it doesn't do post back.
}
Thanks,
Kiran
Still same condition it does post back.I tried same application with HTML controls textboxes & button it works fine but when I tried with server side control it posts back
Hi,
can you post code that you used for testing.
Thanks,
Kiran
here is code with HTML textboxes & button for same script enabled webservice
<%@.PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default" %>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server">
<title>Untitled Page</title>
<scriptlanguage="javascript"type="text/javascript">
<!--
function Button1_onclick(){
ret= WebService.Hello(document.getElementById('Text1').value,OnComplete,OnTimeOut,OnError);return(true);
}
function OnComplete(args){
document.getElementById('Text2').innerText=args;
}
function OnTimeOut(args){
alert('Timeout');}
function OnError(args){
alert('error');}
// -->
</script> </head><body>
<formid="form1"runat="server">
<asp:ScriptManagerID="ScriptManager1"runat="server">
<Services>
<asp:ServiceReferencePath="WebService.asmx"/>
</Services>
</asp:ScriptManager>
<div>
<inputid="Text2"type="text"/>
<inputid="Text1"type="text"/>
<inputid="Button1"type="button"value="button"language="javascript"onclick="return Button1_onclick()"/>
</div>
</form> </body></html>
Hi,
function Button1_onclick() still returns true.
did you change it to return false. and tried it.
Thanks,
Kiran
yeah.......I did change it to false & tested it ,it does post back .The code which I posted doesn't postback but its withHTML control which works fine & I am trying to do same webservice code but with server control.
Hi,
can you change below code
<asp:ButtonID="Button1"runat="server"Text="Button"OnClientClick="Button1_onclick();"/>
to
<asp:ButtonID="Button1"runat="server"Text="Button"OnClientClick="return Button1_onclick();"/>
make sure that function is called. keep alert message in Button1_onclick function so you know that function got invoked when you click Button1_onclick.
Thanks,
Kiran
Thank you Kiran it works just fine.But I didn't get difference b/nButton1_onclick() & return Button1_onclick() could you please explain it?
Thanks
Manisha.
event = "return function()" if function returns false the event gets canceled.
if your case we are forcefully canceling onclick event by returning false.
event = "function()" doesn't matter what function returns.
Thanks,
Kiran
No comments:
Post a Comment