Repeater上下排序按钮
aspx代码
<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" class="tdh">
<tr class="tabletda">
<td style="width:35%">
<strong>栏目名称</strong>
</td>
<td style="width:35%">
<strong>排序</strong>
</td>
<td>
<strong>操作</strong></td>
</tr>
<asp:Repeater ID="ReptType" runat="server" OnItemDataBound="ReptType_ItemDataBound">
<ItemTemplate>
<tr class="tdbg" onmouseover="this.style.backgroundColor='#eff6fc'" onmouseout="this.style.backgroundColor=''">
<td style="height:25px;">
<%#Eval("lmname")%>
</td>
<td align="center">
<asp:HiddenField ID="zindex" runat="server" Value=<%# Container.ItemIndex%> />
<asp:ImageButton ID="linkUp" ImageUrl="images/up.png" CommandArgument='<%#Eval("ID")%>' CommandName='<%#Eval("xu")%>' runat="server" OnClick="lbUp_Click" />
<asp:ImageButton ID="linkDown" ImageUrl="images/down.png" CommandArgument='<%#Eval("ID")%>' CommandName='<%#Eval("xu")%>' runat="server" OnClick="lbDown_Click" />
</td>
<td align="center">
<a href="lmrightAdd.aspx?cid=<%=Request.QueryString["cid"] %>&id=<%#Eval("ID")%>">修改</a>
<asp:LinkButton ID="lbDel" runat="server" OnClick="lbDel_Click" OnClientClick="return confirm('您确认要删除吗?')" CommandArgument='<%#Eval("ID")%>' ForeColor="red">删除</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
cs代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;using System.Text;
public partial class List : adminFace
{
public int datacount = ;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ReptDT();
}
}
/// <summary>
/// 邦定类别数据
/// </summary>
public void ReptDT()
{
string sql = "select * from dtname order by xu asc";
DataTable dt = Maticsoft.DBUtility.DbHelperSQL.Query(sql).Tables[];
datacount = dt.Rows.Count;
ReptType.DataSource = dt;
ReptType.DataBind(); }
/// <summary>
/// 被绑定数据后触发
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ReptType_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
//上移
ImageButton linkUp = e.Item.FindControl("linkUp") as ImageButton;
ImageButton linkDown = e.Item.FindControl("linkDown") as ImageButton;
if (e.Item.ItemIndex == )
{
linkUp.Enabled = false;
linkUp.ImageUrl = "images/up0.png";
}
if (e.Item.ItemIndex == datacount - )
{
linkDown.Enabled = false;
linkDown.ImageUrl = "images/down0.png";
}
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbDel_Click(object sender, EventArgs e)
{
int cid = MyCLib.StrClass.ConvertToInt(((LinkButton)sender).CommandArgument, );
//删除代码就不写了 }
//上移
protected void lbUp_Click(object sender, EventArgs e)
{
ImageButton button = (ImageButton)sender;
HiddenField hf = (HiddenField)button.NamingContainer.FindControl("zindex");
ImageButton linkOther = (ImageButton)ReptType.Items[int.Parse(hf.Value)-].FindControl("linkUp"); //先修改自己,然后修改上一个
StringBuilder sb = new StringBuilder();
sb.Append("update dt_lmright set xu=" + linkOther.CommandName + " where ID=" + button.CommandArgument + ";");
sb.Append("update dt_lmright set xu=" + button.CommandName + " where ID=" + linkOther.CommandArgument + ";");
if (Maticsoft.DBUtility.DbHelperSQL.ExecuteSql(sb.ToString()) > )
{
ReptDT();
}
}
//下移
protected void lbDown_Click(object sender, EventArgs e)
{
ImageButton button = (ImageButton)sender;
HiddenField hf = (HiddenField)button.NamingContainer.FindControl("zindex");
ImageButton linkOther = (ImageButton)ReptType.Items[int.Parse(hf.Value) + ].FindControl("linkDown"); //先修改自己,然后修改下一个
StringBuilder sb = new StringBuilder();
sb.Append("update dt_lmright set xu=" + linkOther.CommandName + " where ID=" + button.CommandArgument + ";");
sb.Append("update dt_lmright set xu=" + button.CommandName + " where ID=" + linkOther.CommandArgument + ";");
if (Maticsoft.DBUtility.DbHelperSQL.ExecuteSql(sb.ToString()) > )
{
ReptDT();
}
} }
原理:找到相邻行,然后获取ID和排序,然后同时修改就行了
Repeater上下排序按钮的更多相关文章
- Repeater 双向排序
做项目的时候,DataGrid ,DataList,Repeater 三个控件都是很优秀的数据显示控件,DataGrid的方便,简单易用,功能强大,但对性能会有所影响,在loading页面的时候大 ...
- layui表格点击排序按钮后,表格绑定事件失效解决方法
最近项目使用layui较为频繁,遇到了一个麻烦的问题,网上搜索也没有看到同类型的问题,故此记下来. 需求是点击上图右侧表格中某一个单元格,会触发点击事件如下代码: $("table>t ...
- 隐藏 FastAdmin 列表中的拖动排序按钮
隐藏 FastAdmin 列表中的拖动排序按钮 就是以下这个按钮,想先删除不要. 刚开始在 CMS 插件中的栏目中发现没有,以为在哪个位置中,但找到半天的 weigh 都没有找到weigh 的字眼. ...
- C# asp.net repeater实现排序功能,自动排序,点击头部排序,点击列排序
在网上看到好多关于repeater排序的,自己动手用了,发现一些问题,贴源码后把发现的问题以及解决方法给出 repeater实现排序功能(单击升序排列,再单击降序排列).原理很简单,在<TD&g ...
- Repeater中添加按钮,点击按钮获取某一行的数据
1.添加编辑按钮和删除按钮 <asp:Repeater ID="Repeater1" runat="server" onitemcommand=" ...
- Repeater中服务器按钮
protected void Button1_Click(object sender, EventArgs e) { Button btn = sender as ...
- easyUi 表头排序按钮 bug
参考文章:https://www.shiqidu.com/p/81
- iOS可视化动态绘制八种排序过程
前面几篇博客都是关于排序的,在之前陆陆续续发布的博客中,我们先后介绍了冒泡排序.选择排序.插入排序.希尔排序.堆排序.归并排序以及快速排序.俗话说的好,做事儿要善始善终,本篇博客就算是对之前那几篇博客 ...
- 扩展GridView实现的一个自定义无刷新分页,排序,支持多种数据源的控件TwfGridView
最近项目View层越来越趋向于无刷新化,特别是数据展示方面,还要对Linq有很好的支持.在WebFrom模式的开发中,GridView是一个功能很强大,很常用的控件,但是他也不是完美的,没有自带的无刷 ...
随机推荐
- NumPy的array
1.numpy包中的array数组,用于弥补列表可以存储任意的数据类型的不足,因为有时候我们需要存储某种类型的数据在数组中,这才是数组的本来内涵.我们通过向numpy.array()函数中传递pyth ...
- CodeSite使用小结 转载
一.要使用Codesite,需要引用csintf单元二.CodeSite的基本方法(一)AddCheckPoint方法codesite.AddCheckPoint 加入监测点(二)AddSeperat ...
- iOS警告-Warning: Error creating LLDB target at path(模拟器警告)
Warning: Error creating LLDB target at path '/Users/apple/Library/Developer/Xcode/DerivedData/Observ ...
- POJ 2021
#include <iostream> #include <string> #include <algorithm> #define MAXN 105 using ...
- iOS多线程的初步研究(二)-- 锁
谈到线程同步,一般指如何对线程间共享数据的同步读写,如何避免混乱的读写结果.一个基本的解决办法就是使用锁(LOCK). iOS提供多种同步锁的类和方法,这里介绍下基本用法. 1. NSLock:最基本 ...
- 理解Node.js事件驱动编程
Node.js现在非常活跃,相关生态社区已经超过Lua(基本上比较知名的功能都有nodejs模块实现). 但是我们为何要使用Node.Js?相比传统的webserver服务模式,nodejs有什么优点 ...
- spring_150803_component
实体类: package com.spring.model; public class DogPet { private int id; private String name; private in ...
- hdu 4764 Stone (巴什博弈,披着狼皮的羊,小样,以为换了身皮就不认识啦)
今天(2013/9/28)长春站,最后一场网络赛! 3~5分钟后有队伍率先发现伪装了的签到题(博弈) 思路: 与取石头的巴什博弈对比 题目要求第一个人取数字在[1,k]间的某数x,后手取x加[1,k] ...
- malloc/free 和 new/delete 的区别
1.malloc在C和C++中的区别 1.1.C中可以将任意的指针赋值给void*类型的变量.也可以将void*类型的值赋值给通常的指针变量. ---------------------------- ...
- 自绘CProgressCtrl进度条控件,支持自定义显示文本和进程百分比信息
// CXProgressCtrl 头文件 #pragma once // CXProgressCtrl class CXProgressCtrl : public CProgressCtrl { D ...