博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gridview行上下移动自己做的一个小例子(第一种方法)
阅读量:6414 次
发布时间:2019-06-23

本文共 7093 字,大约阅读时间需要 23 分钟。

今天没有什么事做,就写了一个GridView行上下移动的小例子。

方法有好多种,我先写第一种。

没有什么技术含量

思路:

把要上移或下移的id 与它的临近行的id进行互换

效果:

前台页面:

1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridView2.aspx.cs" Inherits="WebApplication3.GridView2" %>  2  3   4  5   6   7       8   9  10     
11
12
13
14
15
16
17
21
22
23
34
35
18
19
20
24
25
26
27
28
29
30
31
32
33
36
37
38
39
40 41

后台代码:

1 using System;   2 using System.Collections.Generic;   3 using System.Linq;   4 using System.Web;   5 using System.Web.UI;   6 using System.Web.UI.WebControls;   7 using System.Data;   8 namespace WebApplication3   9 {
10 public partial class GridView2 : System.Web.UI.Page 11 {
12 #region 13 public int? index = null; 14 int? tep = null; 15 #endregion 16 protected void Page_Load(object sender, EventArgs e) 17 {
18 if (!IsPostBack) 19 {
20 DataTable dt = CreateDataTable(); 21 GridView1.DataSource = dt; GridView1.DataBind(); 22 } 23 } 24 public DataTable CreateDataTable() 25 {
26 DataTable dt = new DataTable(); 27 dt.Columns.Add("id", typeof(Int32)); 28 dt.Columns.Add("name", typeof(String)); 29 dt.Columns.Add("age", typeof(Int32)); 30 for (int i = 0; i < 6; i++) 31 {
32 DataRow dr = dt.NewRow(); 33 dr["id"] = i; 34 dr["name"] = "name" + i.ToString(); ; 35 dr["age"] = 12 + i; 36 dt.Rows.Add(dr); 37 } 38 ViewState["dataTable"] = dt; 39 return dt; 40 } 41 #region UP 42 public void btn_Up_Click(object sender, EventArgs e) 43 {
44 try 45 {
46 47 DataTable da = (DataTable)ViewState["dataTable"]; 48 for (int i = 0; i < GridView1.Rows.Count; i++) 49 {
50 System.Web.UI.HtmlControls.HtmlInputCheckBox cb = (System.Web.UI.HtmlControls.HtmlInputCheckBox)GridView1.Rows[i].FindControl("cb"); 51 if (cb.Checked == true) 52 {
53 index = Convert.ToInt32(cb.Value); 54 break; 55 } 56 } 57 if (index - 1 < 0) 58 {
59 ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "", "alert('TOP!');", true); 60 61 } 62 else if (index == null) 63 {
64 ScriptManager.RegisterClientScriptBlock(this.updatePanel, this.updatePanel.GetType(), "", "alert('PLEASE CHECK ONE!');", true); 65 } 66 else 67 {
68 DataRow[] dCurrent = da.Select(string.Format("id={0}", index)); 69 DataRow[] dUp = da.Select(string.Format("id={0}", index - 1)); 70 tep = Convert.ToInt32(dUp[0]["id"]); 71 dUp[0]["id"] = dCurrent[0]["id"]; 72 dCurrent[0]["id"] = tep; 73 DataView dv = ((DataTable)ViewState["dataTable"]).DefaultView; 74 dv.Sort = "id"; 75 GridView1.DataSource = dv; 76 GridView1.DataBind(); 77 updatePanel.Update(); 78 index = null; 79 } 80 ViewState["dataTable"] = da; 81 } 82 catch (Exception ex) 83 {
84 throw ex; 85 } 86 } 87 #endregion 88 #region DOWN 89 public void btn_Down_Click(object sender, EventArgs e) 90 {
91 try 92 {
93 int? index = null; 94 DataTable da = (DataTable)ViewState["dataTable"]; 95 for (int i = 0; i < GridView1.Rows.Count; i++) 96 {
97 System.Web.UI.HtmlControls.HtmlInputCheckBox cb = (System.Web.UI.HtmlControls.HtmlInputCheckBox)GridView1.Rows[i].FindControl("cb"); 98 if (cb.Checked == true) 99 {
100 index = Convert.ToInt32(cb.Value); 101 break; 102 } 103 } 104 if (index + 1 > GridView1.Rows.Count - 1) 105 {
106 ScriptManager.RegisterClientScriptBlock(this.updatePanel, this.updatePanel.GetType(), "", "alert('END!');", true); 107 } 108 else if (index == null) 109 {
110 ScriptManager.RegisterClientScriptBlock(this.updatePanel, this.updatePanel.GetType(), "", "alert('PLEASE CHECK ONE!');", true); 111 } 112 else 113 {
114 DataRow[] dCurrent = da.Select(string.Format("id={0}", index)); 115 DataRow[] dUp = da.Select(string.Format("id={0}", index + 1)); 116 tep = Convert.ToInt32(dUp[0]["id"]); 117 dUp[0]["id"] = dCurrent[0]["id"]; 118 dCurrent[0]["id"] = tep; 119 DataView dv = ((DataTable)ViewState["dataTable"]).DefaultView; 120 dv.Sort = "id"; 121 GridView1.DataSource = dv; 122 GridView1.DataBind(); 123 updatePanel.Update(); 124 index = null; 125 tep = null; 126 } 127 ViewState["dataTable"] = da; 128 } 129 catch (Exception ex) 130 {
131 throw ex; 132 } 133 } 134 #endregion 135 136 #region GV RowBound 137 public void grid_RowBound(object sender, GridViewRowEventArgs e) 138 {
139 try 140 {
141 if (e.Row.RowType == DataControlRowType.DataRow) 142 {
143 if (tep != null) 144 {
145 System.Web.UI.HtmlControls.HtmlInputCheckBox cb = (System.Web.UI.HtmlControls.HtmlInputCheckBox)e.Row.FindControl("cb"); 146 if (tep == Convert.ToInt32(cb.Value)) 147 {
148 cb.Checked = true; 149 } 150 } 151 } 152 } 153 catch (Exception ex) 154 {
155 throw ex; 156 } 157 } 158 #endregion 159 } 160 }

 

转载地址:http://kvdra.baihongyu.com/

你可能感兴趣的文章
[20171113]修改表结构删除列相关问题3.txt
查看>>
特征选择
查看>>
在Winform程序中设置管理员权限及为用户组添加写入权限
查看>>
RTMP直播到FMS中的AAC音频直播
查看>>
多能互补提速 加快我国能源转型和现代能源体系建设
查看>>
《JavaScript设计模式》——2.5 多种调用方式——多态
查看>>
Redis开发运维实践高可用和集群架构与实践(二)
查看>>
程序员的常见“谎话”:对,这是一个已知 Bug
查看>>
如何侦查SQL执行状态
查看>>
CentOS 7 命令行如何连接无线网络
查看>>
Ubuntu 12.04上享用新版本Linux的功能
查看>>
logstash + grok 正则语法
查看>>
Zimbra开源版(v8.6)安装说明
查看>>
Android性能优化之TraceView和Lint使用详解
查看>>
linux centos7.2 安装mysq,nginx,php
查看>>
myrocks之事务处理
查看>>
基于pgrouting的路径规划之一
查看>>
LBS核心技术解析
查看>>
Fible Channel over Convergence Enhanced Ethernet talk about
查看>>
讨论:今日头条适配方案使用中出现的问题
查看>>