网上关于Repeater折叠一般都是直接绑定上去,然后设置样式隐藏显示,可是这样是不太合理的,应该是客户需要的时候,你才去加载出来.所以,自己研究了一段时间,总结出下面的实现方案

首先是控件部分

 <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<HeaderTemplate>
<tr class="category">
<td>
<div class="sortable">装车单编码</div>
</td>
<td>
<div class="sortable">装车部门</div>
</td>
<td>
<div class="sortable">装车员</div>
</td>
<td>
<div class="sortable">日期</div>
</td>
<td>
<div class="sortable">物流公司</div>
</td>
<td>
<div class="sortable">配送状态</div>
</td>
<td width="10%">操作</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr class='<%#(Container.ItemIndex+1)%2==0?"trbg2":"trbg1"%>' onmouseover="this.className='trbgov'"
onmouseout="this.className='<%#(Container.ItemIndex+1)%2==0?"trbg2":"trbg1"%>'">
<td align='left'><%# Eval("FCode") %></td>
<td align='left'><%# Eval("FDepartmentName") %></td>
<td align='left'><%# Eval("FApplicationName") %></td>
<td align='left'><%# Eval("FDate","{0:yyyy-MM-dd}") %></td>
<td align='left'><%# Eval("FExpressName") %></td>
<td> <%#(int)Eval("FSendState") == ? "配送中" : (int)Eval("FSendState") == ? "已结单" : "未配送"%></td>
<td><a href='#' onclick='showsonlst(this,<%#Eval("PID")%>);'>查看详细</a>&nbsp&nbsp
<font runat="server" id="edit">&nbsp<a id="" href='../Stock/CarOrdeFollowingInfo_Edit.aspx?id=<%#Eval("PID")%>'>编辑物流信息</a></font> </tr>
</ItemTemplate> </asp:Repeater>

然后可以看到 在 '查看详细' 的连接标签上面 我使用了一个js 他的作用是显示和删除 (记得引用jquery)

<script type="text/javascript">
function showsonlst(e, id) {
if ($(e).text() == "查看详细") {
var ps = id;
$.post("/Control/webControl.ashx", { Method: "ShowOrderFollowingDetail", Parems: ps }, function (data) {
if (data != "") {
$(e).parent().parent().after(data);
$(e).text("隐藏物流信息");
}
});
}
else {
$(e).text("查看详细");
var row = $("#detailrow_" + id);
row.remove();
}
} </script>

最后是后台请求代码

public string ShowOrderFollowingDetail(string id)
{
string tablehead = "<tr id='detailrow_"+id+"'><td colspan=7 ><table class='TableBlock' style='text-align: center; border: 2px #ACA899 solid; border-bottom: 1px #ACA899 solid' >"
+ "<tr class='itemHeadTr' style='background-color: #ECECEC'>"
+ "<td><strong>配送员</strong></td>"
+ "<td><strong>配送员电话</strong></td>"
+ "<td><strong>物流位置</strong></td>"
+ "<td><strong>日期</strong></td>"
+ "</tr>"; string html = "";
//获取表体
List<T_CarOrdeFollowing> dt = GetAllBySQL(" and KID =" + id).ToList();
//插入表体
for (int i = ; i < dt.Count + ; i++)
{
string htmlrow = "<tr id=row{index}>"
+ "<td>{FDriverName}</td>"
+ "<td>{FDriverPhone}</td>"
+ "<td>{FAddress}</td>"
+ "<td>{FDate}</td>"
+ "</tr>";
T_CarOrdeFollowing row = dt[i - ];
htmlrow = htmlrow.Replace("{index}", i.ToString());
htmlrow = htmlrow.Replace("{FDriverName}", row.FDriverName);
htmlrow = htmlrow.Replace("{FDriverPhone}", row.FDriverPhone);
htmlrow = htmlrow.Replace("{FAddress}", row.FAddress);
htmlrow = htmlrow.Replace("{FDate}", Convert.ToDateTime(row.FDate).ToString("yyyy-MM-dd"));
html += htmlrow;
}
string tablefoot = "</table></td></tr>";
return tablehead + html + tablefoot;
}

用了好一段时间才整理出来的,要转载的童鞋记得保留我的链接哦http://www.cnblogs.com/linyijia/p/3465818.html

Repeater DataTable 折叠动态加载的更多相关文章

  1. Ext JS 如何动态加载JavaScript创建窗体

    JavaScript不需要编译即可运行,这让JavaScript构建的应用程序可以变得很灵活.我们可以根据需要动态从服务器加载JavaScript脚本来创建和控制UI来与用户交互.下面结合Ext JS ...

  2. C#动态加载树菜单

    在做权限系统的时候,需要有一个树形的菜单.下图就是一个树形菜单的样式 但问题是,我们可以实现写死的树形菜单.什么是写死的?就是在前台代码中写好要加载的树形菜单是什么样子的.但是我们权限系统的要求是动态 ...

  3. 铵钮提交事件PostBack之后,一些动态加载的物件丢失

    今早起来,发现skype有网友留言,情况大约如下,不过Insus.NET还是先感谢网友的测试.http://www.cnblogs.com/insus/p/3193619.html  如果你有看此篇博 ...

  4. 关于C# DropDownList 动态加载数据笔记

    今天在处理一个导游注册的页面,其中需要填写地址以及该地址下所有旅行社,地址区级以上都是用下拉列表实现,具体地址街道等手动填写.在填写区县之后,该区县下的所有旅行社也需要动态加载. 后台代码 DataT ...

  5. EasyUI datagrid动态加载json数据

    最近做一个项目,要求是两张张表可能查找出10多种不同的结果集. 如果想只用一个表格就把全部的结果不同的显示出来那么就肯定不同使用固定的字段名字,要通过动态加载后台返回来的数据把它显示出来就必须动态加载 ...

  6. 【datagrid】动态加载列 2016-01-03 16:32 2013人阅读 评论(19) 收藏

    之前我们的项目在前台显示只需要把数据从数据库读出来进行显示就可以,datagrid的表头字段都是写死的,把数据往表里一扔,就基本没什么事儿了,结果客户前几天要求,其中一个字段不能是死的,应该是有多少项 ...

  7. Asp.net 的DropDownList 控件动态加载

    在做连接数据库表,在页面上用DropDownList 下拉框查询某条数据时,因为数据库里的数据,随时都有可能增加或减少,而下拉框关联的某个字段的值并不一定是固定的. 表信息: CREATE TABLE ...

  8. js动态加载css和js

    之前写了一个工具类点此链接里面含有这段代码,感觉用处挺多,特意提出来 var loadUtil = { /* * 方法说明:[动态加载js文件css文件] * 使用方法:loadUtil.loadjs ...

  9. geotrellis使用(二十三)动态加载时间序列数据

    目录 前言 实现方法 总结 一.前言        今天要介绍的绝对是华丽的干货.比如我们从互联网上下载到了一系列(每天或者月平均等)的MODIS数据,我们怎么能够对比同一区域不同时间的数据情况,采用 ...

随机推荐

  1. Android倒计时案例展示

    1. Handler 与Message方法实现倒计时功能 关于Handler与Message消息机制的原理可查看:Android--Handler使用应运及消息机制处理原理分析 这个设计思路也是最经常 ...

  2. HTML charset 网页编码设定

    一:HTML4 <metahttp-equiv="content-type"content="text/html; charset=UTF-8" /> ...

  3. [每日一题] OCP1z0-047 :2013-08-25 正则表达式REGEXP_LIKE-----‘harddisks’.................108

    正确答案:AB A. 'hard+.s'能够匹配harddisks,以hard开头,其中表达式的d+号代表任意个d(至少出现一次d),“.”代表除了换行符之外的任意字符, 可以代表d和s之间的&quo ...

  4. IIS7 大文件上传 asp.net iis配置

    IS6下上传大文件没有问题,但是迁移到IIS7下面,上传大文件时,出现HTTP 404错误. IIS配置上传大小,webconfig <!-- 配置允许上传大小 --><httpRu ...

  5. 算法笔记_023:拓扑排序(Java)

    目录 1 问题描述 2 解决方案 2.1 基于减治法实现 2.2 基于深度优先查找实现 1 问题描述 给定一个有向图,求取此图的拓扑排序序列. 那么,何为拓扑排序? 定义:将有向图中的顶点以线性方式进 ...

  6. getLastSql()用法

    getLastSql()用法 $User = M("User"); // 实例化User对象 $User->find(1); echo $User->getLastSq ...

  7. vlc模块间共享变量

    在模块中创建变量: vlc_value_t  valTemp; var_Create( p_intf, "vlc_test", VLC_VAR_STRING  ); valTemp ...

  8. Android 常用的性能分析工具详解:GPU呈现模式, TraceView, Systrace, HirearchyViewer(转)

    此篇将重点介绍几种常用的Android性能分析工具: 一.Logcat 日志 选取Tag=ActivityManager,可以粗略地知道界面Displaying的时间消耗.当我们打开一个Activit ...

  9. 查看tomcat启动文件都干点啥

    以下所写的都是基于Windows 操作系统,tomcat7.0版本.一直在使用tomcat但是老实说对于tomcat本身并没有一个系统的掌握,今天饶有兴致的随便看了看,做了一点笔记,写一点心得,我本人 ...

  10. ssh(安全外壳协议)

    SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专 ...