我有一个看起来像这样的中继器控制器:
<asp:Repeater ID="Postrepeater" runat="server" DataSourceID="datasource" >
<h2>
<%#Eval("posttitle") %>
</h2>
<p>
<%#Eval("posttext") %>
</p>
<asp:Button ID="DeleteLinkButton" runat="server" CommandName="Delete" Text="Delete post" />
</asp:Repeater>
数据源:
<asp:ObjectDataSource ID="datasource" TypeName="Service" SelectMethod="GetPosts" DataObjectTypeName="Post" runat="server" DeleteMethod="DeletePost" />
在 Service.cs 中
public List<Posts> GetPosts()
{
DALposts dal = new DALposts();
return dal.GetPosts();
}
public void DeletePost(Posts post)
{
DALPost.DeletePost(post.PostId);
}
真正奇怪的是,SelectMethod、GetPosts 是一种魅力——就像它应该的那样。但是当我尝试删除帖子时,DeleteMethod 不会调用任何方法 - 页面只是重新加载并且没有任何反应。我试图调试代码,但是 CommandName="Delete" 根本没有调用任何东西,而且我没有收到任何错误......有什么想法吗?
认为我发布了足够的代码,但如果您认为您需要更多代码 - 请告诉我。
更新: 经过大量阅读和一些帮助后,我得出结论,除非我编写更多代码,否则无法使用转发器完成此操作 - 所以我改为使用 FormView。奇迹般有效