【发布时间】:2012-10-29 06:05:05
【问题描述】:
我在使用 asp.net GridView 时遇到了一个奇怪的问题。我有绑定到LinqDataSource 的GridView。在GridView 的行删除事件中,我正在从数据库中删除行,但网格没有刷新(即使在绑定到数据源之后)。
当我设置断点时,我可以看到OnRowDeleting 事件在LinqDS_Selecting 事件之后被触发。但是在删除事件之后它没有再次被触发!这可能是原因吗?我做错了什么?
有人可以帮忙吗?非常感谢。
.aspx 文件:
<asp:LinqDataSource
ID="LinqDS"
runat="server"
OnSelecting="LinqDS_Selecting">
</asp:LinqDataSource>
<asp:GridView
DataSourceID = "LinqDS"
ID = "gv1"
runat = "server"
DataKeyNames = "InstructionId"
EnableViewState = "false"
OnRowDataBound = "gv1_RowDataBound"
OnRowDeleting = "gv1_RowDeleting"
OnRowCommand = "gv1_RowCommand"
PageSize = "30" >
<Columns>
<!-- My colums --->
</Columns>
</asp:GridView>
.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LinqDS_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
// my linq to sql query
var query = from .... .... ;
e.Result = query;
}
protected void gv1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int instructionId = (int)gv1.DataKeys[e.RowIndex].Value;
/// my delete logic
CTX.SubmitChanges();
gv1.DataBind();
}
【问题讨论】:
-
gv1_RowDeleting被解雇了吗?如果是,也许您还需要制作LinqDS.DataBind()? -
gv1_RowDeleting 事件是否触发,您尝试删除的值是否已从数据库中实际删除?
标签: asp.net linq-to-sql gridview refresh