当前位置:  开发笔记 > 后端 > 正文

ASP.NET - Gridview RowDeleting事件上没有Datakey!

如何解决《ASP.NET-GridviewRowDeleting事件上没有Datakey!》经验,为你挑选了1个好方法。

我有一个像这样的GridView:


    
        
        
        
        
    

以下是我如何创建GridView绑定的DataTable,以便您知道我正在处理的数据:

private DataTable MakeStudentsTable()
{
    DataTable students = new DataTable();

    DataColumn ID = students.Columns.Add("ID", typeof(int));
    ID.AutoIncrement = true;

    DataColumn firstName = students.Columns.Add("FirstName", typeof(string));
    DataColumn lastName = students.Columns.Add("LastName", typeof(string));
    DataColumn email = students.Columns.Add("Email", typeof(string));


    return students;
}

为什么哦,为什么RowDeleting事件的EventArgs中没有传递密钥?我需要从ADO.NET DataTable中删除当我触发此事件时保持会话状态的记录.

为什么这不起作用?DataKeys只在使用DataSource控件时才有效吗?



1> Phaedrus..:

这有效:

private DataTable MakeStudentsTable()
{
    DataTable students = new DataTable();

    DataColumn ID = students.Columns.Add("ID", typeof(int));
    ID.AutoIncrement = true;

    DataColumn firstName = students.Columns.Add("FirstName", typeof(string));
    DataColumn lastName = students.Columns.Add("LastName", typeof(string));
    DataColumn email = students.Columns.Add("Email", typeof(string));

    DataRow student = students.NewRow();
    student["FirstName"] = "foo";
    student["LastName"] = "bar";
    student["Email"] = "foo@bar.com";
    students.Rows.Add(student);

    return students;
}

protected void gvwStudents_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    string id = this.gvwStudents.DataKeys[e.RowIndex].Value.ToString();   
}

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有