日期:2014-05-17  浏览次数:20514 次

.net怎么样用ajax实现带母板页的局部刷新?
RT,分类导航是在母版页里的,现在点击导航链接整个页面都会刷新,我用框架试了,局部刷新可以实现,但底部框架高度不能自适应,在网上看了很多种方法也没有解决。。现在想用ajax解决,我还是个菜鸟,网上很多教程看不明白,求大侠们帮帮忙,能给个详细点的教程,真心谢谢大家了!

如果有其他方法能解决这个问题,也希望大家多多相助

ajax控件要怎样使用?要放在哪里?

------解决方案--------------------
底部框架的高度不能自适应这明显的是网页的布局问题
也就是css问题

ajax控件直接拖放就行
这个甚至可以说与net根本没什么太大关系的一个知识点
在最上面放一个scriptmanager
在你要更新的地方用updatepanel 套住
就完了

不要打着菜鸟的头衔 去问这个问题
你倒不如静下心来去了解ajax控件

------解决方案--------------------
给你一个我以前写的页面吧,也是用的ajax,读取数据。

-------------------------------------------------------Javascript------------------------------------
//创建XMLHttpRequest对象
var request = false;
try {
request = new XMLHttpRequest(); //火狐、Opera等
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");//IE7、8
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP"); //IE6及之前版本
} catch (failed) {
request = false;
}
}
}
if (!request) {
alert("Error initializing XMLHttpRequest!");
}
function getTotal(obj) {
var url = "WorkloadAffirm_Handler.ashx?";
var para = obj.value;
request.open("post", url, true);
request.onreadystatechange = updatePage;
//使用post传值方式,必须设置请求标头
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
request.send(para);
}
//取回数据后,刷新页面
function updatePage() {
if (request.readyState == 4 && request.status == 200) {
var data = request.responseText;
var dataJson = eval(data)[0];
//用户提交过,就禁用提交控件
if (dataJson.Check == 'true') {
var btnSubmit = document.getElementById('<%=btnSubmit.ClientID %>');
btnSubmit.disabled = true;
btnSubmit.value = '已提交';

}
document.getElementById('<%=lblOrderTotal.ClientID %>').innerText = dataJson.Total;
document.getElementById('<%=lblEdit.ClientID %>').innerText = dataJson.Edit;
document.getElementById('<%=lblAffirmTotal.ClientID %>').innerText = dataJson.Affirm;
document.getElementById('<%=lblAffirmPer.ClientID %>').innerText = dataJson.AffirmPer;
}
}

---------------------------------------------------ashx-------------------------------------------------------
<%@ WebHandler Language="C#" Class="WorkloadAffirm_Handler" %>

using System;
using System.Web;

public class WorkloadAffirm_Handler : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";

// string str = "[{'name':\"wang\",\"age\":12}]";
string day = "";
//检索今天的数据
if (context.Request.Params[0] == "today")
{
day = "0";
}
//检索昨天的数据
else
{
day = "1";
}

string result = GetWorkload(day);
//当客户端使用post方式时,必须清空
context.Response.Clear();
context.Response.Write(result);
context.Response.End();
}