C# 如何从gridview_行删除事件中获取匿名类型数据项
我想从行删除事件中的GridView获取Id,我尝试如下: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()) {
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:无法对空引用执行运行时绑定”