局部刷新 实现单击DataList中的a标签,弹出自定义div

痴情的路灯 2015-09-24 10:34:56
为方便联系,还劳烦您+个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标签,弹出如下资讯:
...全文
347 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-10-11
  • 打赏
  • 举报
回复
人必有所不为,然后可以有为。
ajianchina 2015-09-29
  • 打赏
  • 举报
回复
既然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。
痴情的路灯 2015-09-29
  • 打赏
  • 举报
回复
引用 4 楼 chengxiaolong518 的回复:
数据加载慢还是先优化下数据库吧,貌似你用的是视图,创建个索引,提高下数据库的查询速度。
没错,是用视图的,好的,如果不用服务器控件,请问使用什么会比较好点呢?谢谢~
痴情的路灯 2015-09-29
  • 打赏
  • 举报
回复
引用 2 楼 ajianchina 的回复:
NO,NO 你都采用了ajax调用数据的方式,为何还要在服务端产生控件?这一过程的时间相对你单纯取得数据要多出数倍到几十倍,就为了你生成一下组织好数据的html文本吗?你这白白耗费服务端的资源了跟网络资源,webform2.aspx改成ashx一般处理程序,单独生成josn数据,webform1调用后在web端组织表格显示出来,会大大的提高你的速度。
其实,前面说的那个方法我还没实现,不过你给我说的josn给我打开了思路,但现在就是不晓得怎么弄,百度了下josn,看到了如下代码,有了大致的思路,就是将我的数据放入 “inputJsonString ”的{}中,还请您指教。

protected void Page_Load(object sender, EventArgs e)
        {
            string inputJsonString = @"
                [
                    {StudentID:'100',Name:'aaa',Hometown:'china'},
                    {StudentID:'101',Name:'bbb',Hometown:'us'},
                    {StudentID:'102',Name:'ccc',Hometown:'england'}
                ]";
            JArray jsonObj = JArray.Parse(inputJsonString);
            string message = @"<table border='1'>
                    <tr><td width='80'>StudentID</td><td width='100'>Name</td><td width='100'>Hometown</td></tr>";
            string tpl = "<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>";
            foreach (JObject jObject in jsonObj)
            {
                message += String.Format(tpl, jObject["StudentID"], jObject["Name"],jObject["Hometown"]);
            }
            message += "</table>";
            lbMsg.InnerHtml = message;
        }
chengxiaolong518 2015-09-29
  • 打赏
  • 举报
回复
而且既然你是异步的,还是不要用服务器控件。
chengxiaolong518 2015-09-29
  • 打赏
  • 举报
回复
数据加载慢还是先优化下数据库吧,貌似你用的是视图,创建个索引,提高下数据库的查询速度。
ajianchina 2015-09-29
  • 打赏
  • 举报
回复
根据你的这一数据特点,都不用将数据序列化为josn,表格数据嘛,极其规律,你可以自定义分割标识符,然后输出文本,这比你采用第三方josn类库进行序列化要快,客户端接收完成后按标识符进行切割为锯齿数组,接下来,你到网上找一个js动态生成表格的函数,将函数生成结果直接赋给$("#info")[0].innerHTML就行了。
ajianchina 2015-09-29
  • 打赏
  • 举报
回复
NO,NO 你都采用了ajax调用数据的方式,为何还要在服务端产生控件?这一过程的时间相对你单纯取得数据要多出数倍到几十倍,就为了你生成一下组织好数据的html文本吗?你这白白耗费服务端的资源了跟网络资源,webform2.aspx改成ashx一般处理程序,单独生成josn数据,webform1调用后在web端组织表格显示出来,会大大的提高你的速度。
痴情的路灯 2015-09-29
  • 打赏
  • 举报
回复
HELP

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧