GridView绑定DataKeyNames以及如何取这些值
DataKeyNames='FID' //前台绑定一个值
GridView1.DataKeys[e.Row.RowIndex].Value.ToString;
--------------------------------------------------------------------------------------------------------------------------------
DataKeyNames='FID,FName' //前台绑定两个值
GridView1.DataKeyNames = new String[] { "Id","WkNumber" }; //后台绑定两个字段值
//取关键字段值
GridView1.DataKeys[e.Row.RowIndex].Values[0].ToString;
GridView1.DataKeys[e.Row.RowIndex].Values[1].ToString;
--------------------------------------------------------------------------------------------------------------------------------
gridview取得某行的datakey:GridView中每行最后一列设有按钮,我需要在点击按钮后,得到该行的Datakey得值,然后触发其他操作。
答:首先绑定DataKeyNames GridView.DataKeyNames=new String[]{"字段名称"};
取值string aaa=GridView.DataKeys[e.Row.RowIndex].Value.ToString();
--------------------------------------------------------------------------------------------------------------------------------
index=((GridViewRow)(((Button)sender).Parent.Parent)).RowIndex;
//就是一层一层往上找。通过现在的button找到他所在的cell,然后再调用parent,就找他所在的行,然后取rowindex,这个方法很常用的。
在GV中按选择链接(CommandName="Select")后获取ID索引值:
protected void Gv_SelectedIndexChanged(object sender, EventArgs e)
{
int id = Int32.Parse(GvLv.DataKeys[GvLv.SelectedIndex].Value.ToString());
int id = Int32.Parse(Gv.DataKeys[Gv.SelectedIndex].Values[0].ToString());//多个关键字段时使用
Response.Redirect("MdfLvApro.aspx?id=" + id);
} int id = Int32.Parse(GridView1.SelectedDataKey.Value.ToString());
--------------------------------------------------------------------------------------------------------------------------------
protected void CKAprd_CheckedChanged(object sender, EventArgs e)//在GV中有一checkbox/Button,点击后获取索引值
{
GridViewRow GvRow=(sender as CheckBox).NamingContainer as GridViewRow;//將事件源轉化為行
GridViewRow GvRow = (sender as Button).NamingContainer as GridViewRow;//將事件源轉化為行
int index=GvRow.RowIndex;//index就是点击行的索引
CheckBox cbox = (CheckBox)GridView1.Rows[index].FindControl("CKAprd");//找到所在行的控件
string LvUs = ((Label)GridView1.Rows[index].FindControl("Label1")).Text;
}
--------------------------------------------------------------------------------------------------------------------------------
protected void GvDpt_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int id = Convert.ToInt32(GvDpt.DataKeys[e.RowIndex].Value.ToString());
DtSc.ExcuteQuery("delete from Departments where id=" + id + "");
}
--------------------------------------------------------------------------------------------------------------------------------
protected void GvDpt_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int id = Convert.ToInt32(GvEpyLst.DataKeys[e.RowIndex].Values[0].ToString());
string WkNumber = GvEpyLst.DataKeys[e.RowIndex].Value.ToString();
int id = int.Parse(GvDpt.DataKeys[e.RowIndex]["Id"].ToString());//Id,WkNumber关键字段有显示时获取其值
string WkNumber = GvEpyLst.DataKeys[e.RowIndex]["WkNumber"].ToString();
}
--------------------------------------------------------------------------------------------------------------------------------
protected void GvEpyLst_RowDataBound(object sender, GridViewRowEventArgs e)//在DataBound中获取关键字段值
{ string WkNb = GvEpyLst.DataKeys[e.Row.RowIndex].Values["WkNumber"].ToString(); }
--------------------------------------------------------------------------------------------------------------------------------
在 GridView1_PageIndexChanging中获取主键的值
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{ int index=GridView1.DataKeys[e.NewPageIndex].Value; }
--------------------------------------------------------------------------------------------------------------------------------
在 GridView1_RowEditing中获取主键的值
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{ int index = GridView1.DataKeys[e.NewEditIndex].Value; }
--------------------------------------------------------------------------------------------------------------------------------
在GridView中有一“详细信息”按,点击后在RowCommand中获取主健值
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{ if (e.CommandName == "xs ")
{ string v = e.CommandArgument;
int id = Int32.Parse(GridView1.DataKeys[Convert.ToInt32(v)].Value.ToString());
int OrderId = Convert.ToInt32(GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Value);
Response.Redirect("delfault.aspx?key= " + id); } }
在RowCommand事件里是没有e.RowIndex这个定义的。你要是想得到某一行的索引。
首先,在你数据进行绑定的时候用RowDataBound这个事件,在这个事件里LinkButton linkbutton = (LinkButton)e.Row.Cells[0].FindControl("lbProjectName");
linkbutton.CommandArgument = e.Row.RowIndex.ToString();其中linkbutton.CommandArgument就是给你要执行的命令行设置一个行索引,这样你在你RowCommand事件里直接用e.CommandArgument就可以得到某一行的索引,然后通过这个索引就可以获取主键的值
--------------------------------------------------------------------------------------------------------------------------------
<asp:LinkButton id="linkbtn" runat="server" CommandName="L" CommandArgument=' <%# Eval("主键ID") %>'>
protected void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{ if(e.CommandName=="L") { int ID= Convert.ToInt32(e.CommandArgument); response.write(ID); } }
string str = ((TextBox)this.GridView1.Rows[ID].FindControl("TextBox1")).Text.Trim();
protected void LinkButton1_Click(object sender, EventArgs e)
{ string id=((LinkButton)sender).CommandArgument.ToString() ; }
或 LinkButton btn = sender as LinkButton; GridViewRow row = btn.NamingContainer as GridViewRow; GridView grd = row.NamingContainer as GridView; int id = (int)grd.DataKeys[row.RowIndex].Value;
--------------------------------------------------------------------------------------------------------------------------------
string strUsCls = (string)Session["UsCls"];
int? UsCls = string.IsNullOrEmpty(strUsCls) ? 0 : Convert.ToInt32(strUsCls);//
--------------------------------------------------------------------------------------------------------------------------------
protected void CheckBox3_CheckedChanged(object sender, EventArgs e)
{ if (((CheckBox)sender).Checked)
{ for (int i = 0; i < GridView1.Rows.Count; i++)
{ ((CheckBox)GridView1.Rows[i].Cells[6].FindControl("CheckBox4")).Checked = true; }
}
else
{ fill(); }
}
GridView绑定DataKeyNames以及如何取这些值的更多相关文章
- Jquery实现数据双向绑定(赋值和取值),类似AngularJS
<!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...
- GridView中DataKeyNames的应用小结
一. GridView的DataKeyNames属性设为"ID,Name" GridView1.DataKeyNames = new string[]{ "ID" ...
- GridView绑定数据与隐藏指定控件(模板列)
1.1. GridView绑定数据 1) 可以配置SqlDataSource数据源,修改select语句生成框架(不想手动绑定) 2) 删除DataSourceID属性和 ...
- php取默认值以及类的继承
(1)对于php的默认值的使用和C++有点类似,都是在函数的输入中填写默认值,以下是php方法中对于默认值的应用: <?phpfunction makecoffee($types = array ...
- 在android的spinner中,实现取VALUE值和TEXT值。 ZT
在android的spinner中,实现取VALUE值和TEXT值. 为了实现在android的 spinner实现取VALUE值和TEXT值,我尝试过好些办法,在网上查的资料,都是说修改适配器, ...
- 在android的spinner中,实现取VALUE值和TEXT值
为了实现在android的spinner实现取VALUE值和TEXT值,我尝试过好些办法,在网上查的资料,都是说修改适配器,刚开始我也是通过修改适配器的方法来做的,但是如果一个activity有多个s ...
- java.sql.ResultSet技术(从数据库查询出的结果集里取列值)
里面有一个方法可以在查询的结果集里取出列值,同理,存储过程执行之后返回的结果集也是可以取到的. 如图: 然后再运用 java.util.Hashtable 技术.把取到的值放入(K,V)的V键值里,K ...
- 快速排序 之添加复合插入排序和原始序列取中值左pivot
quicksort中,当n小于一定值时,排序效率就比直接插入排序底了,所以,此时就不要再递归下去了,直接插入排序好了:快速的原理就是因为折半递归,所以初始pivot应该有个好一点的选择,这里在原序列左 ...
- 前端动态属性页面的 要用id做name 因为这样方便在提交表单时候取到值
前端动态属性页面的 要用id做name 因为这样方便在提交表单时候取到值
随机推荐
- Oracle 10gR2 Dataguard搭建(非duplicate方式)
Oracle 10gR2 Dataguard搭建(非duplicate方式) 我的实验环境: 源生产库(主库): IP地址:192.168.1.30 Oracle 10.2.0.5 单实例 新DG库( ...
- 设计模式--静态工厂设计模式在android中的使用
今天看到这篇文章:http://www.androiddesignpatterns.com/2012/05/using-newinstance-to-instantiate.html public c ...
- Robotium第一天:搭建环境测试微信
因为要在命令行下运行一些android的工具,所以配置一些环境变量会比较方便: 遇到问题: java -jar re-sign.jar 出现提示android路径没有配置好: 需要配置如下: 配置AN ...
- OutputDebugString输出调试信息到debugtrack
OutPutDebugString()函数的输出则可以用DebugView捕获(DebugView也可以捕获TRACE宏的输出)eg: OutPutDebugString("输出第一调试信息 ...
- getuid和geteuid的区别
getuid() : 函数返回一个调用程序的真实用户ID.表明当前运行位置程序的执行者. geteuid(): 函数返回返回一个有效用户的ID.(EUID)是你最初执行程序时所用的ID,该ID是程序 ...
- JPG、PNG和GIF图片的基本原理及优化方法
一提到图片,我们就不得不从位图开始说起,位图图像(bitmap),也称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的.这些点可以进行不同的排列和染色以构成一副图片.当放大位图时,可以看见 ...
- Bookmark
http://stackoverflow.com/https://www.baidu.com/?tn=06074089_27_pghttp://apistore.baidu.com/http://to ...
- MyBatis 返回新增数据的自增id
<insert id="save" parameterType="Vote" useGeneratedKeys="true" keyP ...
- Java学习笔记之多态
1.父类型的引用可以指向子类型的对象: Parent p = new Child(); 2.当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误:如果有,再去调用子类的该同名方法 ...
- JS-加载页面的时候自动选择刚才所选择option
<body class="no-skin" onload="option_auto(${pd.PACK_SORT})"> <select na ...