关键字:DataGrid 动态模板 Ajax

我们使用ajax实现无刷新界面时,对于DataGrid,Repeater等列表还是比较麻烦的,经过我的尝试,找出一种比较合理的方法,可以免除对html的加工处理,随时获取到数据列表的HTML content,并且列表格式使用模板,更加容易维护,阅读

原理是将模板写入用户控件,使用LoadTemplate来加载,然后将其赋给DataGrid或Repeater等控件,绑定后输出HTML到客户端

.aspx.cs
[AjaxPro.AjaxMethod]
public string GetListHTML(string old)
{
    Repeater rpt = new Repeater();
    ITemplate temp = Page.LoadTemplate("webusercontrol1.ascx");
    rpt.ItemTemplate = temp;
    rpt.DataSource = Albums.GetFolderList(1);
    rpt.DataBind();

System.Text.StringBuilder sb = new System.Text.StringBuilder();
    System.IO.StringWriter sw = new System.IO.StringWriter(sb);
    HtmlTextWriter writer = new HtmlTextWriter(sw);
    rpt.RenderControl(writer);
    sw.Flush();
    writer.Close();
    sw.Close();

Response.Write(sb.ToString());
}

webusercontrol1.ascx<%@ Control Language="C#" %>
<%# DataBinder.Eval(((RepeaterItem)Container).DataItem, "folderName")%><br />

上面就是列表的全部代码, js端只需调用 类名.GetListHTML 即可快速获取模板化的列表了。

对应DataGrid,可以增加TemplateCollumn等方法来模板化

webusercontrol1.ascx
webusercontrol1.ascx<%@ Control Language="C#" %>
<%# DataBinder.Eval(((DataGridItem)Container).DataItem, "folderName")%><br />

.aspx.cs 部分代码:

DataGrid DataGrid1 = new DataGrid();
        ITemplate temp = Page.LoadTemplate("webusercontrol1.ascx");
        TemplateColumn tc = new TemplateColumn();
        tc.HeaderText = "Test";
        tc.ItemTemplate = temp;
        DataGrid1.Columns.Add(tc);
        DataGrid1.AutoGenerateColumns = false;
        DataGrid1.DataSource = Albums.GetFolderList(1);

DataGrid1.DataMember = "id";
        DataGrid1.DataBind();

全文完

转载于:https://www.cnblogs.com/Truly/archive/2006/08/21/482508.html

利用动态加载模板,配合ajax实现无刷新操作相关推荐

  1. ajax 页面无刷新,Ajax的页面无刷新实现详解(附代码)

    这次给大家带来Ajax的页面无刷新实现详解(附代码),Ajax页面无刷新实现的注意事项有哪些,下面就是实战案例,一起来看一下. ajax (ajax开发) AJAX即"Asynchronou ...

  2. Ajax实现无刷新三联动下拉框

    1.html代码 <HTML>     <HEAD>         <title>Ajax实现无刷新三联动下拉框</title>         &l ...

  3. ajax无刷新留言板远吗,php+ajax制作无刷新留言板,phpajax刷新留言板_PHP教程

    php+ajax制作无刷新留言板,phpajax刷新留言板 本文就是和大家分享一款由php结合ajax实现的无刷新留言板,先给大家看一下最后的效果图: 数据库连接代码如下: index.php文件代码 ...

  4. jQuery+php+ajax实现无刷新上传文件功能

    2019独角兽企业重金招聘Python工程师标准>>> jQuery+php+ajax实现无刷新上传文件功能,还带有上传进度条动画效果,支持图片.视频等大文件上传. js代码: &l ...

  5. AJAX+JavaScript无刷新检查用户名

    AJAX+JavaScript无刷新检查用户名是否可用2009-04-20 16:26   JavaScript 和 Ajax 代码 <script language="javascr ...

  6. 用Atlas来实现一个基于AJAX的无刷新Chatroom

    Atlas是微软提供的一个AJAX工具包,封装了实现AJAX的所需的Java Script,使用起来非常简单,可以直接调用Web Service方法,然后通过Asynchronous Call的方式回 ...

  7. jQuery+Ajax+PHP无刷新分页

    代码需要在后台运行(包括页面index.html,ajax.php,connect.php,还有数据库food.sql) index.html <!DOCTYPE html> <ht ...

  8. 新闻留言php,php+ajax实现无刷新的新闻留言系统,ajax留言系统_PHP教程

    php+ajax实现无刷新的新闻留言系统,ajax留言系统 本文介绍了一款无刷新的新闻留言系统,最简明易懂的一个ajax无刷新留言系统,源码中省略了接受数据验证的过程,大家可根据自己的需求进行扩展,下 ...

  9. php抓取动态数据,php+ajax实现无刷新动态加载数据技术

    我们浏览有些网页的时候,当拉动浏览器的滚动条时到页底时,页面会继续自动加载更多内容供用户浏览.这种技术我暂且称它为滚屏加载技术.我们发现很多网站用到这种技术,必应图片搜索.新浪微博.QQ空间等将该技术 ...

最新文章

  1. 程序员硬核资源:一本贼有趣的设计模式学习pdf
  2. 删除结果集中字段重复的方法
  3. 力扣两数之和 II - 输入有序数组
  4. 通过字符串的方式读取文件的内容
  5. oracle 插入含字符串
  6. java checker_java 英文单词纠正校验框架(Word Checker)
  7. 2018-2019-2 20165209 《网络对抗技术》Exp7: 网络欺诈防范
  8. [WebApi] 捣鼓一个资源管理器--文件下载
  9. 计算机一直进入安全模式开机,电脑启动时自动进入安全模式怎么办
  10. 南京软件企业挨个介绍及计算机学习的一点经验交流
  11. python输出数字怎么办_python怎么输出数字
  12. Quoted-printable 编码认识、介绍、编码解码转换
  13. 机器学习与算法(4)--本地散点平滑估计(LOESS)
  14. 东八区指定时间换算时区
  15. eyoumailserver邮箱服务器与foxmail 邮箱客户端的使用和安装
  16. Java毕业设计-音乐管理系统
  17. 如何确定SAP系统的NetWeaver版本、ERP或S/4HANA的版本
  18. csv文件导入Mysql
  19. 大学android移动开发笔记,基于Android的移动模拟练习系统的设计与实现
  20. 基于 vue.js 的仿QQ聊天室

热门文章

  1. 初步了解:使用JavaScript进行表达式(De Do Do Do,De Da Da Da)
  2. charles和Fiddler感觉哪个更好用
  3. 什么是类型别名?什么是潜在类型?
  4. python之深浅拷贝
  5. mysql启动与关闭(手动与自动)
  6. 《算法基础:打开算法之门》一1.5 拓展阅读
  7. MJExtension简介
  8. java robot类自动截屏
  9. Lucene.net: the main concepts
  10. windows加载符号小计