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以及如何取这些值的更多相关文章

  1. Jquery实现数据双向绑定(赋值和取值),类似AngularJS

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...

  2. GridView中DataKeyNames的应用小结

    一. GridView的DataKeyNames属性设为"ID,Name" GridView1.DataKeyNames = new string[]{ "ID" ...

  3. GridView绑定数据与隐藏指定控件(模板列)

    1.1.    GridView绑定数据 1)       可以配置SqlDataSource数据源,修改select语句生成框架(不想手动绑定) 2)       删除DataSourceID属性和 ...

  4. php取默认值以及类的继承

    (1)对于php的默认值的使用和C++有点类似,都是在函数的输入中填写默认值,以下是php方法中对于默认值的应用: <?phpfunction makecoffee($types = array ...

  5. 在android的spinner中,实现取VALUE值和TEXT值。 ZT

    在android的spinner中,实现取VALUE值和TEXT值.   为了实现在android的 spinner实现取VALUE值和TEXT值,我尝试过好些办法,在网上查的资料,都是说修改适配器, ...

  6. 在android的spinner中,实现取VALUE值和TEXT值

    为了实现在android的spinner实现取VALUE值和TEXT值,我尝试过好些办法,在网上查的资料,都是说修改适配器,刚开始我也是通过修改适配器的方法来做的,但是如果一个activity有多个s ...

  7. java.sql.ResultSet技术(从数据库查询出的结果集里取列值)

    里面有一个方法可以在查询的结果集里取出列值,同理,存储过程执行之后返回的结果集也是可以取到的. 如图: 然后再运用 java.util.Hashtable 技术.把取到的值放入(K,V)的V键值里,K ...

  8. 快速排序 之添加复合插入排序和原始序列取中值左pivot

    quicksort中,当n小于一定值时,排序效率就比直接插入排序底了,所以,此时就不要再递归下去了,直接插入排序好了:快速的原理就是因为折半递归,所以初始pivot应该有个好一点的选择,这里在原序列左 ...

  9. 前端动态属性页面的 要用id做name 因为这样方便在提交表单时候取到值

    前端动态属性页面的 要用id做name 因为这样方便在提交表单时候取到值

随机推荐

  1. oracle 序列介绍

    序列介绍 序列是一个计数器,它并不会与特定的表关联.通过创建Oracle序列和触发器实现表的主键自增. 序列的用途一般用来填充主键和计数. 序列使用 1.创建序列 ORACLE序列的语法格式为: CR ...

  2. linux常用服务软件搭建及使用技巧

    一.Webmin安装: Webmin 是一个基于浏览器的管理工具,可以应用于Linux 和其他一些平台,提供了可以完成很多管理和操作任务的图形化界面 •安装完成后,root 用户会被自动创建,密码为系 ...

  3. hdu_1790_The Balance(母函数)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1709 题意:给你一些砝码,让你输出1—sum中不能称出的重量 题解:直接上母函数,在合并括号的时候有加 ...

  4. 通过C++修改系统时间代码

    #include <windows.h>#include <stdio.h>#include <iostream>using namespace std;int m ...

  5. PAC全自动脚本代理

    Proxy 极低成本绕过GFW的一个PAC代理 Download proxy.zip Proxy 轻量级的FQ工具,不需要安装客户端.可以设置系统代理,也可以设置浏览器代理或者配合SS等插件使用. 免 ...

  6. KMP算法中的next数组求解示意图

  7. 两台linux利用heartbeat+drbd 完美实现双机热备

    一直想做基于linux的双机热备,一直没有时间和机会.一直以为只要做双机热备的实验就必须两台机器外接一个存储.甚至一个月以前在学习keepalived的时候还在琢磨keepalvied去掉哪些条件可以 ...

  8. perl的logwrapper

    来源: http://www.cnblogs.com/itech/archive/2012/09/22/2698385.html 对任何的函数将标准输出和错误输出重定向到对应的log文件. 对任何的函 ...

  9. linq中first() firstordefault() last() lastOrDefault() single() singleOrDeafult

    一.firstordefault() 和 first() class Program { static void Main(string[] args) { List<Emp> list ...

  10. 文件系统满的话(filesystem full),该如何处理。

    #!/bin/bash function ergodic(){ ` do "/"$file ] then ergodic $"/"$file else loca ...