zoukankan      html  css  js  c++  java
  • GridView 使用DataKeyNames属性

         今天在做项目的时候用到了 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属性有一定的了解了,有什么问题请大家指出,我随时关注

  • 相关阅读:
    JS Function Arguments
    C# CuttingEdge.Conditions 验证帮助类库 文档翻译
    JS AngualrJs 指令
    每日踩坑 2018-06-19 AutoMapper简单性能测试
    C# 集合类-使用
    工具 EZDML表结构设计器
    unittest的discover方法
    转:unittest的几种运行方式
    unittest学习5-断言
    unittest学习4-跳过用例执行
  • 原文地址:https://www.cnblogs.com/myssh/p/1395824.html
Copyright © 2011-2022 走看看