Repeater DataTable 折叠动态加载
网上关于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>  
<font runat="server" id="edit"> <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 折叠动态加载的更多相关文章
- Ext JS 如何动态加载JavaScript创建窗体
JavaScript不需要编译即可运行,这让JavaScript构建的应用程序可以变得很灵活.我们可以根据需要动态从服务器加载JavaScript脚本来创建和控制UI来与用户交互.下面结合Ext JS ...
- C#动态加载树菜单
在做权限系统的时候,需要有一个树形的菜单.下图就是一个树形菜单的样式 但问题是,我们可以实现写死的树形菜单.什么是写死的?就是在前台代码中写好要加载的树形菜单是什么样子的.但是我们权限系统的要求是动态 ...
- 铵钮提交事件PostBack之后,一些动态加载的物件丢失
今早起来,发现skype有网友留言,情况大约如下,不过Insus.NET还是先感谢网友的测试.http://www.cnblogs.com/insus/p/3193619.html 如果你有看此篇博 ...
- 关于C# DropDownList 动态加载数据笔记
今天在处理一个导游注册的页面,其中需要填写地址以及该地址下所有旅行社,地址区级以上都是用下拉列表实现,具体地址街道等手动填写.在填写区县之后,该区县下的所有旅行社也需要动态加载. 后台代码 DataT ...
- EasyUI datagrid动态加载json数据
最近做一个项目,要求是两张张表可能查找出10多种不同的结果集. 如果想只用一个表格就把全部的结果不同的显示出来那么就肯定不同使用固定的字段名字,要通过动态加载后台返回来的数据把它显示出来就必须动态加载 ...
- 【datagrid】动态加载列 2016-01-03 16:32 2013人阅读 评论(19) 收藏
之前我们的项目在前台显示只需要把数据从数据库读出来进行显示就可以,datagrid的表头字段都是写死的,把数据往表里一扔,就基本没什么事儿了,结果客户前几天要求,其中一个字段不能是死的,应该是有多少项 ...
- Asp.net 的DropDownList 控件动态加载
在做连接数据库表,在页面上用DropDownList 下拉框查询某条数据时,因为数据库里的数据,随时都有可能增加或减少,而下拉框关联的某个字段的值并不一定是固定的. 表信息: CREATE TABLE ...
- js动态加载css和js
之前写了一个工具类点此链接里面含有这段代码,感觉用处挺多,特意提出来 var loadUtil = { /* * 方法说明:[动态加载js文件css文件] * 使用方法:loadUtil.loadjs ...
- geotrellis使用(二十三)动态加载时间序列数据
目录 前言 实现方法 总结 一.前言 今天要介绍的绝对是华丽的干货.比如我们从互联网上下载到了一系列(每天或者月平均等)的MODIS数据,我们怎么能够对比同一区域不同时间的数据情况,采用 ...
随机推荐
- Linux阅读笔记(一)
1.关机命令 shutdown -h now 马上关机 shutdown -r now 马上重新启动 reboot ...
- 算法笔记_146:TarJan算法的应用(Java)
目录 1 问题描述 2 解决方案 1 问题描述 Problem Description 为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M& ...
- zookeeper 入门讲解实例 转
转 http://www.blogjava.net/BucketLi/archive/2010/12/21/341268.html zookeeper使用和原理探究(一) zookeeper介绍zo ...
- Linux 内核源码情景分析 chap 2 存储管理 (四)
物理页面的使用和周转 1. 几个术语 1.1 虚存页面 指虚拟地址空间中一个固定大小, 边界与页面大小 4KB 对齐的区间及其内容 1.2 物理页面 与虚存页面相对的, 须要映射到某种物理存储介质上面 ...
- 点滴记录——在Ubuntu 14.04中使SublimeText 3支持中文输入法
在Ubuntu 14.04中安装了SublimeText 3之后发现既然不支持输入中文,于是在网上搜罗一下,发现非常多人遇到了相同的问题,可是解决的方法大该就仅仅有一个.以下依据自身的安装及解决的方法 ...
- 不经意的小错误——onclick和click的区别
可能注意不到的错误,编写jquery时发现没有自己想要的效果,结果通过代码比对软件才发现原来将click写成了onclick,虽然看着差不多,但意义却不相同,简单区别如下: $().click() 是 ...
- Linux-软件包管理-脚本安装包
打开网页: http://sourceforge.net/projects/webadmin/files/webmin/下载1.6.10软件包 下载并放到linux系统中 ls 查看当前目录下所有信息 ...
- 我使用过的Linux命令之clear - 清除终端屏幕,不是cls
原文链接:http://codingstandards.iteye.com/blog/804213 用途说明 clear命令是用来清除终端屏幕的(clear the terminal screen), ...
- NPM 模块收集
cross-env https://www.npmjs.com/package/cross-env 在package.json设置环境变量的时候,会有兼容性问题,如: { "scripts& ...
- store.js 跨浏览器的localStorage
store.js 跨浏览器的localStorage 我们总是想要储存一些数据在浏览器端,却对复杂的兼容性头疼,store.js很好的解决了这些问题. store.js ☍ 使用它相当简单: // 储 ...