注意UPdatePanel只是封装了AJAX,也就是本质还是AJAX,像那种功能你完全可以用AJAX来做,我给你段纯JS的AJAX代码,你也可以用Jquery方式的AJAX。
// 初始化XMLHTTP
var XmlHttp; try { // Firefox, Opera 8.0+, Safari XmlHttp = new XmlHttpRequest(); } catch (e) { // Internet Explorer try { XmlHttp = new ActiveXObject("Msxml2.XmlHttp"); } catch (e) { try { XmlHttp = new ActiveXObject("Microsoft.XmlHttp"); } catch (e) { alert("您的浏览器不支持AJAX!"); } } } }
//向后台ASHX文件提交 XmlHttp.Open("POST", "AddNoFile.ashx?xmid=" + xmid + "&category=" + category + "&col=" + col, true); XmlHttp.send(null); XmlHttp.onreadystatechange = function () { if (XmlHttp.readystate == 4 || XmlHttp.readystate == 'complete') { //成功后干的事,我这是以返回succed认为成功的,然后用JS把页面控件的值改变
if (XmlHttp.responsetext == "succed") { if (gridrow.childNodes[4] != null) { gridrow.childNodes[4].innerHTML = 2; } else if (gridrow.childNodes[1] != null) { gridrow.childNodes[1].innerHTML = 2; } } } }
Updatepanel示例
//这个必须有
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
//声明开始
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate>
//此处放你要无刷的控件 </ContentTemplate>
<Triggers>//响应回发的JS的控件
<asp:PostBackTrigger ControlID="PostButton" />
</Triggers>
//无刷结束
</asp:UpdatePanel>
后台事件就像平常一样添加,注意某些非runat="server" 要调整时,必须用如下代码
ScriptManager.RegisterStartupScript(this.UpdatePanel1, Page.GetType(), "closeZj", "<script>newzj();</script>", false);
实现不了吧。。。。Gridview是一整个控件,要刷新就都刷了。。。不可能只刷一部分吧。。。而且,只刷一部分你想一下,你还要连接数据库布不,那你咋写啊?
就是这样
如果网站上使用asp.net ajax这个框架太大了,使用jquery还好些