• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

asp.net数据控件中的DataKeyNames属性转

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

转自http://www.cnblogs.com/myssh/

"

今天在做项目的时候用到了 GridView控件 在这个控件里添加了一个模板列,然后放了个imagebuttion,点击按钮的时候进入编辑页面,当然数据可定要加载出来的,

这里也说一下编辑,我用的编辑是detailsview,我在这个控件里添加了更新列,然后设置visible=false,当加载这个页面的时候设置为编辑状态,代码如下:

 this.DetailsView1.ChangeMode(DetailsViewMode.Edit);更新就有点麻烦了,我是自己添加了个按钮,我不知道如何调用更新,最后只能用笨办法了,

一个一个的取出每一列,然后调用自定义更新方法。

     好了,说了这么多,进正题吧,在asp.net2.0中,当我们需要在GridView的ItemDataBound之类的事件中需要获取当前行的一些关联性的数据值,

但这些数据值又不能直接体现在GridView的列中显示出来,这时我们可以采用DataKeyNames的方式来获取此类数据,我们可以设置GridView的DataKeyNames属性,

代码写也一样,看一下基本语法:

DataKeyNames='FID'   绑定一个值
GridView1.DataKeys[e.Row.RowIndex].Value.ToString;

DataKeyNames='FID,FName'   绑定两个值
GridView1.DataKeys[e.Row.RowIndex].Values[0].ToString;
GridView1.DataKeys[e.Row.RowIndex].Values[1].ToString;


 

 

1. 按钮获取

protected void Copy_Click(object sender, EventArgs e) 
    {
         
int index=((GridViewRow)(((Button)sender).Parent.Parent)).RowIndex; 

         String value
= GridView1.DataKeys[index]["Name"].ToString(); 

    }

解释: 一层一层往上找。通过现在的button找到他所在的cell,然后再调用parent,就找他所在的行,然后取rowindex

2. 行命令触发 

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        // 获取当前行索引 
        int index = Convert.ToInt32(e.CommandArgument);

        // 取出当前行数据键值对象中的值 
        string strGrup = ((GridView)sender).DataKeys[index].Values["Grup"].ToString();  
    }

3. 如果你使用模板列中放置按钮控件的方式,要想在按钮事件中获取这种字段值就更简单了。

只需要在按钮的CommandArgument属性设置为想绑定的字段,如:

<asp:TemplateField> 
     <ItemTemplate> 
         <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Button" CommandArgument=' <%#Eval("Grup") %>' /> 
     </ItemTemplate> 
</asp:TemplateField>

按钮事件中如是写:

protected void Button2_Click(object sender, EventArgs e) 

    string strGrup = ((Button)sender).CommandArgument.ToString(); 
}

总结:找了3个列子,估计大家肯定也都对DataKeyNames属性有一定的了解了,有什么问题请大家指出,我随时关注

"


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
大型网站用什么技术比较好,JSP,PHP,ASP.NET发布时间:2022-07-10
下一篇:
ASP.NETMVCview引入命名空间发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap