局部刷新 实现单击DataList中的a标签,弹出自定义div解决思路
局部刷新 实现单击DataList中的a标签,弹出自定义div
为方便联系,还劳烦您+个Q:786838943,小弟在此感激不尽!
功能介绍: DataList中,单击a标签,弹出div,传入参数,刷新div中的GridView
目前实现:以上功能参照 JS弹出DIV 已经实现以上功能,但不是局部刷新,大数据量的情况下网页响至少要两分钟,而且经常出现异常,还请各位大神指点一二。
我也用了ajax,但是没弄清除,代码如下:
webform1.aspx
webform2.aspx 中就随便放了个gridview
页面加载效果如下图所示:

单击a标签,弹出如下资讯:

------解决思路----------------------
NO,NO
你都采用了ajax调用数据的方式,为何还要在服务端产生控件?这一过程的时间相对你单纯取得数据要多出数倍到几十倍,就为了你生成一下组织好数据的html文本吗?你这白白耗费服务端的资源了跟网络资源,webform2.aspx改成ashx一般处理程序,单独生成josn数据,webform1调用后在web端组织表格显示出来,会大大的提高你的速度。
------解决思路----------------------
根据你的这一数据特点,都不用将数据序列化为josn,表格数据嘛,极其规律,你可以自定义分割标识符,然后输出文本,这比你采用第三方josn类库进行序列化要快,客户端接收完成后按标识符进行切割为锯齿数组,接下来,你到网上找一个js动态生成表格的函数,将函数生成结果直接赋给$("#info")[0].innerHTML就行了。
------解决思路----------------------
数据加载慢还是先优化下数据库吧,貌似你用的是视图,创建个索引,提高下数据库的查询速度。
------解决思路----------------------
而且既然你是异步的,还是不要用服务器控件。
------解决思路----------------------
既然josn就josn吧,不过你的表格数据跟规律啊,可以自己组织josn字符串,不需要依赖第三方josn类库,举个例子
A B C
1 a1 a2
2 b1 b2
像上面的一个表格数据,你可以写个方法将数据组织成这样的josn字符串:
[{"A":1,"B":"a1","C":"a2"},{"A":2,"B":"b1","C":"b2"}]
然后在web端直接用jquery解析json,接下来通过js函数来动态生成table。
为方便联系,还劳烦您+个Q:786838943,小弟在此感激不尽!
功能介绍: DataList中,单击a标签,弹出div,传入参数,刷新div中的GridView
目前实现:以上功能参照 JS弹出DIV 已经实现以上功能,但不是局部刷新,大数据量的情况下网页响至少要两分钟,而且经常出现异常,还请各位大神指点一二。
我也用了ajax,但是没弄清除,代码如下:
webform1.aspx
<script language="javascript">
function test(c_id) {
$.ajax({
type: "get", url: "WebForm2.aspx?id=" + c_id.id,
success: function (data) {
$("#info")[0].innerHTML = data;
}
});
}
</script>
//---------------------------------
// DataList在这里,因为很多就不弄出来了,底下有图,是实现的了,
// 但是就是运行太慢,如何提高效率,还请各路大神指点一二
//---------------------------------
<div id="info" class="pop">
////将WebForm2数据填充进来
</div>
webform2.aspx 中就随便放了个gridview
protected void Page_Load(object sender, EventArgs e)
{
string id = Request.QueryString["id"];
string sql = string.Format("select * from View_Table1 where Id = '{0}'", id);
DataTable dt = DBHelp.GetDataTable(sql); //公共类,链接sql的
GridView1.DataSource = dt;
GridView1.DataBind();
// 这个就不晓得对不对,还是说其他的方式。
//Response.Write(" <script language=javascript>document.getElementById('pop').innerHTML;</script>");
}
页面加载效果如下图所示:
单击a标签,弹出如下资讯:
------解决思路----------------------
NO,NO
你都采用了ajax调用数据的方式,为何还要在服务端产生控件?这一过程的时间相对你单纯取得数据要多出数倍到几十倍,就为了你生成一下组织好数据的html文本吗?你这白白耗费服务端的资源了跟网络资源,webform2.aspx改成ashx一般处理程序,单独生成josn数据,webform1调用后在web端组织表格显示出来,会大大的提高你的速度。
------解决思路----------------------
根据你的这一数据特点,都不用将数据序列化为josn,表格数据嘛,极其规律,你可以自定义分割标识符,然后输出文本,这比你采用第三方josn类库进行序列化要快,客户端接收完成后按标识符进行切割为锯齿数组,接下来,你到网上找一个js动态生成表格的函数,将函数生成结果直接赋给$("#info")[0].innerHTML就行了。
------解决思路----------------------
数据加载慢还是先优化下数据库吧,貌似你用的是视图,创建个索引,提高下数据库的查询速度。
------解决思路----------------------
而且既然你是异步的,还是不要用服务器控件。
------解决思路----------------------
既然josn就josn吧,不过你的表格数据跟规律啊,可以自己组织josn字符串,不需要依赖第三方josn类库,举个例子
A B C
1 a1 a2
2 b1 b2
像上面的一个表格数据,你可以写个方法将数据组织成这样的josn字符串:
[{"A":1,"B":"a1","C":"a2"},{"A":2,"B":"b1","C":"b2"}]
然后在web端直接用jquery解析json,接下来通过js函数来动态生成table。