博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net DataGrid GridView 表格之选中行与获取选中行数据
阅读量:6988 次
发布时间:2019-06-27

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

一、GridView 表格之选中行

asp.net选中行的功能最初以为只能通过属性中AllowGenerateSelectButton(运行时是否自动生成选择按钮)来实现,需要点击生成的选择按钮来操作,但这样使用并是很方便。

经寻找找到了改进办法如下效果

鼠标经过时背景色会改变,选中后可获取响应行的数据

实现方法如下:

首先前台设计属性框中事件绑定RowDataBound(在对时局进行了绑定后激发)事件

后台代码如下:

///         /// 在对数据进行了绑定后激发        /// 主要实现鼠标点击时选中该行        ///         ///         ///         protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)        {            #region 方法0 存在bug 暂未改进 供参考            //e.Row.Attributes["style"] = "cursor:hand";            //PostBackOptions myPostBackOptions = new PostBackOptions(this);            //myPostBackOptions.AutoPostBack = false;            //myPostBackOptions.PerformValidation = false;            //myPostBackOptions.RequiresJavaScriptProtocol = true; //加入javascript:头            //String evt = Page.ClientScript.GetPostBackClientHyperlink(sender as GridView, "Select$" + e.Row.RowIndex.ToString());            //e.Row.Attributes.Add("onclick", evt);            #endregion            #region 方法1            //if (e.Row.RowType == DataControlRowType.DataRow)            //{            //    e.Row.Attributes.Add("onClick", "__doPostBack('" + GridView1.UniqueID + "','Select$" + e.Row.RowIndex + "');");//此处为两个“_”            //}            #endregion            #region 方法2            int i;            for (i = 0; i <= GridView1.Rows.Count; i++)            {                //首先判断是否是数据行                if (e.Row.RowType == DataControlRowType.DataRow)                {                    //当鼠标停留时更改背景色                    e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");                    //当鼠标移开时还原背景色                    e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");                    //单击行的任意列会自动选中此行                    e.Row.Attributes.Add("onclick", "__doPostBack('GridView1','Select$" + e.Row.RowIndex + "')");                }            }            #endregion

 二、获取选中行数据

选中某行后获取数据

在属性框中事件选项中选择设置SelectedIndexChanged( 在GridView中选择行时,在该行选择完成后激发)事件选项

后台代码如下

///         /// 选择某行时在最左侧更新显示数据详细        /// 在DataGriew选择行时,在该选择操作完成后激发        ///         ///         ///         protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)        {            if (GridView1.SelectedIndex >= 0)            {                ClearTreeNodeChecked(TreeView1.Nodes);                txtName.Text = GridView1.SelectedRow.Cells[0].Text;                txtPhone.Text = GridView1.SelectedRow.Cells[1].Text;                txtSendTime.Text = GridView1.SelectedRow.Cells[2].Text;                GetUserNodes();            }        }

 

如果单独设置了修改或删除按钮,选中某行后,点击这些按钮来处理数据,可通过定义一些页面属性来保存当前行选中的列数据,

在每次选中行改变SelectedIndexChanged事件中更改这些定义的表示行列数据的属性,然后利用这些列数据进行操作

首先定义页面属性

///         /// 选中行的代码列        ///         private static string Code = "";        ///         /// 选中行的名字列        ///         private static string Name = "";        ///         /// 选中行的描述列        ///         private static string Descripe = "";

在每次选中行触发SelectedIndexChanged事件时更改这些属性的值

///         /// 行选择操作完成后激发        ///         ///         ///         protected void grdQualityDoorAndParts_SelectedIndexChanged(object sender, EventArgs e)        {            //当选中行时            if (grdQualityDoorAndParts.SelectedIndex >= 0)            {                btnEdit.Enabled = true;//启用编辑按钮                btnDelete.Enabled = true;//启用删除按钮                Code = grdQualityDoorAndParts.SelectedRow.Cells[0].Text.Trim().ToString() == " " ? "" : grdQualityDoorAndParts.SelectedRow.Cells[0].Text.Trim().ToString();                Name = grdQualityDoorAndParts.SelectedRow.Cells[1].Text.Trim().ToString() == " " ? "" : grdQualityDoorAndParts.SelectedRow.Cells[1].Text.Trim().ToString();                Descripe = grdQualityDoorAndParts.SelectedRow.Cells[2].Text.Trim().ToString() == " " ? "" : grdQualityDoorAndParts.SelectedRow.Cells[2].Text.Trim().ToString();                //给编辑按钮添加点击事件,跳转到编辑页面,并传值过去(在这里将名称列的值传给编辑界面)                string url1 = "Edit.aspx/?Name=" + Name;                btnEdit.Attributes.Add("onclick", "window.showModalDialog('" + url1 + "',window,'dialogHeight:550px;dialogWidth:800px'); return false;");            }            else            {                btnEdit.Enabled = false;//启用编辑按钮                btnDelete.Enabled = false;//启用删除按钮            }        }

 

转载于:https://www.cnblogs.com/ingvner/p/7225473.html

你可能感兴趣的文章
Git常用命令
查看>>
异常,File,递归,IO流
查看>>
百度地图、ECharts整合HT for Web网络拓扑图应用
查看>>
Unity查找子物体的方式-怎么查找GameObject
查看>>
大数据学习系列之三 ----- HBase Java Api 图文详解
查看>>
cookie和session
查看>>
关于前端复用的构思
查看>>
微信小程序连接本地接口(转)
查看>>
小白的正则表达式学习之旅-02
查看>>
学习C语言必须知道的理论知识(第三章-数据类型的分类)
查看>>
hdu 素数环
查看>>
H3C CAS 介绍 & 基本概念
查看>>
xxx
查看>>
openSUSE 安装 Caffe
查看>>
你可能没注意的CSS单位
查看>>
咱计算机专业的人,能不能不那么特别地彰显对语文的无知?——再谈面向对象......
查看>>
foreach Transform 同时chils.setParent引起的bug
查看>>
AES加密--适用于RC2、RC4和Blowfish
查看>>
如何强制删除一个apk
查看>>
SHA算法摘要处理
查看>>