私は次のようなリピーターコントローラーを持っています:
<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に切り替えました。チャームのように機能します