怎么样去掉<asp:Button></asp:Button>回传刷新整个页面问题总结
http://topic.csdn.net/u/20080928/01/9f2faddd-0b17-47c6-8699-da03f623c7e6.html
系统是asp.net2.0的。使用VS2005。使用了ajax。
<asp:Button ID="BtnSearch" OnClientClick="ReqShopProductSales()" runat="server" Text=' <%$ Resources:Resource,Shop_Serach %>' />
这样一个服务器控件。ReqShopProductSales()是JavaScript的方法。客户端点击按钮的时候,ReqShopProductSales()执行成功,数据也成功取得了显示出来(通过alert测试证实,说明JavaScript没有问题)。但马上被asp:Button本身的特性--刷新,回传刷新了整个页面,使得页面上没有了数据。那么,有什么方法或者说怎么样设置,才能不让asp:Button刷新,保持ajax本身的无刷新效果??
已经尝试过几种方法,但没有成功。
例如去掉OnClientClick="ReqShopProductSales()",在!IsPostBack里加入BtnSearch.Attributes.Add("onclick", "return ReqShopProductSales();");结果也不行,按钮仍然会刷新。
我的本来就是input的,由于Text=' <%$ Resources:Resource,Shop_Serach %>' 这句,我不得不改成 <asp:Button/>。
解决办法:
HTML code< asp:Button ID ="BtnSearch" OnClientClick ="return ReqShopProductSales()" runat ="server" Text =' <%$ Resources:Resource,Shop_Serach % > ' /> < script > function ReqShopProductSales(){ /* .....你的代码, */ return false ; // =========================不提交表单,注意你上面的代码不要有return语句,如果有需要return false,不要return true; } </ script >
总结:
关键是OnClientClick="return ReqShopProductSales()" 和return false;。
OnClientClick="return ReqShopProductSales()" 少了个return是不行的。
总的来说,这是一个JavaScript使用技巧的问题,对JavaScript的理解深入与否的问题。