girdview的RowDeleted方法e.AffectedRows的值的问题

scudflying 2008-09-28 11:06:25
我在girdview中通过objectDataSource对数据库进行操作

我在RowDeleted方法种取e.AffectedRows的值发现成功后它的值是-1

数据源方法如下
public int DeleteRoomTypeById(int TypeID)
{
int result = 0;
result = RoomTypeService.DeleteRoomTypeById(TypeID);
return result;
}


RowDeleted方法如下
protected void GVWRoomType_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
ClientScript.RegisterClientScriptBlock(this.GetType(), "myscript", "<script>alert('"+e.AffectedRows+"')</script>");
}

这是怎么回事?
...全文
208 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
namhyuk 2008-09-30
  • 打赏
  • 举报
回复
呵呵,比我玩得有灵性。
scudflying 2008-09-30
  • 打赏
  • 举报
回复
受到楼上兄弟的启发,改了下

数据源的Deleted方法
protected void ODSRoomType_Deleted(object sender, ObjectDataSourceStatusEventArgs e)
{
e.AffectedRows = (int)e.ReturnValue;
}

girdview的RowDeleted方法
protected void GVWRoomType_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
e.ExceptionHandled = true;
if (e.Exception == null && e.AffectedRows == 1)
{
ClientScript.RegisterClientScriptBlock(this.GetType(), "myscript", "<script>alert('删除成功!')</script>");
}
else
{
ClientScript.RegisterClientScriptBlock(this.GetType(), "myscript", "<script>alert('删除失败!')</script>");
}
}

先在数据源的Deleted方法里e.AffectedRows = (int)e.ReturnValue;
然后在girdview的RowDeleted里就可以取到e.AffectedRows了
namhyuk 2008-09-30
  • 打赏
  • 举报
回复
我也没搞明白。

如果BLL里
[System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Delete, true)]
public bool Delete(int uid)
{
int rowsAffectd = Adapter.Delete(uid);
return rowsAffectd == 1;
}

那么
protected void ObjectDataSource1_Deleted(object sender, ObjectDataSourceStatusEventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "scriptKey", string.Format("alert('{0}')", e.ReturnValue), true);
}

也就是在ObjectDataSource.Deleted倒是能通过e.ReturnValue来取得BLL方法的返回值。
cyz9977 2008-09-30
  • 打赏
  • 举报
回复
e.RowIndex
cyz9977 2008-09-29
  • 打赏
  • 举报
回复
protected void GVWRoomType_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
ClientScript.RegisterClientScriptBlock(this.GetType(), "myscript", " <script>alert('"+e.AffectedRows+"') </script>");
}
貌似你應該寫在GVWRoomType_RowDeleting方法裡面
scudflying 2008-09-29
  • 打赏
  • 举报
回复
可是GVWRoomType_RowDeleting的e没有AffectedRows属性啊
scudflying 2008-09-28
  • 打赏
  • 举报
回复
不是吧,没人知道吗
dengchenlu 2008-09-28
  • 打赏
  • 举报
回复
不知道了

62,067

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧