Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从gridview_行删除事件中获取匿名类型数据项_C#_Asp.net_Entity Framework_Webforms - Fatal编程技术网

C# 如何从gridview_行删除事件中获取匿名类型数据项

C# 如何从gridview_行删除事件中获取匿名类型数据项,c#,asp.net,entity-framework,webforms,C#,Asp.net,Entity Framework,Webforms,我想从行删除事件中的GridView获取Id,我尝试如下: protected void gvHouse_RowDeleting(object sender, GridViewDeleteEventArgs e) { Guid hholder = (Guid)(e.Values[0]); using (var dataContext = new realtydbEntities()) {

我想从行删除事件中的GridView获取Id,我尝试如下:

        protected void gvHouse_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            Guid hholder = (Guid)(e.Values[0]);

            using (var dataContext = new realtydbEntities())
            {
                var house = (from h in dataContext.Households.Include("aspnet_Users.aspnet_Membership")
                             where h.HouseholdID == hholder
                             select h).First();
                dataContext.DeleteObject(house);
                dataContext.SaveChanges();
            }
        }
// Get the reference to the bound item
dynamic item = gvHouse.Rows[e.RowIndex].DataItem; 
// Access item property
var itemId = item.Id;
但它不起作用

匿名类型如下,我使用列表绑定到GridView的数据源:

                         new
                         {
                             Id = u.HouseholdID,
                             BuNo = u.Building.BuildingName,
                             UnNo = u.UnitNo,
                             DepNo = u.DepartmentNo,
                             Name = u.aspnet_Users.UserName,
                             Corp = u.Corporation,
                             IdNumber = u.IdNumber,
                             Telephone = u.Telephone,
                             OtherHouseMembers = u.OtherHouseMembers,
                             OtherInfo = u.OtherInfo,
                             CrDate = u.aspnet_Users.aspnet_Membership.CreateDate
                         });

我想获取匿名对象或仅获取ID属性的值。

这将获取ID

 var HouseHoldid = Guid.Parse(gvHouse.Rows[e.RowIndex].Cells[0].Text);
如果ID为int类型,则:

 var HouseHoldid = Convert.ToInt32(gvHouse.Rows[e.RowIndex].Cells[0].Text);

删除后,还必须刷新数据源。从绑定列表中删除该项并刷新gridview的数据源

如果您使用的是.net 4,则可以像下面这样利用
动态
类型:

        protected void gvHouse_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            Guid hholder = (Guid)(e.Values[0]);

            using (var dataContext = new realtydbEntities())
            {
                var house = (from h in dataContext.Households.Include("aspnet_Users.aspnet_Membership")
                             where h.HouseholdID == hholder
                             select h).First();
                dataContext.DeleteObject(house);
                dataContext.SaveChanges();
            }
        }
// Get the reference to the bound item
dynamic item = gvHouse.Rows[e.RowIndex].DataItem; 
// Access item property
var itemId = item.Id;

请记住,您的类型的任何属性都不能通过intellisense获得,您只需避免输入错误。

这种方法可以获取数据源

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{

    DataTable sourceData = (DataTable)GridView1.DataSource;

    sourceData.Rows[e.RowIndex].Delete();
}

如何将数据绑定到gridview?@Habib.OSU我使用列表绑定到gridview@Kevin“它不起作用”是一个非常宽泛的说法。你有编译错误吗?运行时异常?没有例外,只有不正确的行为?请提供详细信息。上次我检查时,无法通过强制转换将字符串转换为Guid。@phoog,我只是按照他的示例,您是对的,我将删除它无效,“RuntimeBinder.RuntimeBinderException:无法对空引用执行运行时绑定”