「JobPost.mdf」に「UserDetail」テーブルがあります。主キー「UserName」を持つ「UserDetail」テーブルの列を表示する「Gridview1」があります。この「UserName」は元々、Membershipクラス関数を使用して保存されています。次に、GridView1に「削除」リンクボタンを追加します。この「削除」は自動生成ボタンではありません。ToolBoxから列itemtemplate内にドラッグしました。GridView1の列は、「Delete_LinkButton」+「UserName」(UserDetailテーブル内)+「City」(UserDetailテーブル内)+「IsAdmin」(UserDetailテーブル内)になります。
必要なのは、この「delete_linkButton」をクリックすると、「UserDetail」テーブルから同じ行(対応する「UserName」によるリンク)のユーザーエンティティ全体のみが削除され、AspNetDBからすべての情報が削除されることです。 mdf(User、Membership、UserInRoleなど)。
ユーザー確認を起動したいのですが、必須ではありません。少なくとも私はそれを正しい方法で機能させようとしています。
for example:
Command UserName City IsAdmin
delete ken Los Angles TRUE
delete jim Toronto FALSE
最初の行の「削除」をクリックすると、「UserDetail」テーブル内の「ken」に関するすべてのレコードを削除する必要があります。その間、UserinRoleテーブルを含め、AspNetDB.mdfの「ken」に関するすべてのレコードが失われます。
私はasp.netを初めて使用するため、「Delete_LinkButton」のコマンド引数を分離コードファイルLinkButton1_Click(object sender、EventArgs e)に渡す方法がわかりません。これは、追加のパラメーター「UserName」が1つ必要なためです。
私の部分的なコードは以下のとおりです。
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="Delete_LinkButton" runat="server" onclick="LinkButton1_Click1" CommandArgument='<%# Eval("UserName","{0}") %>'>LinkButton</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
protected void Delete_LinkButton_Click(object sender, EventArgs e)
{
((LinkButton) GridView1.FindControl("Delete_LinkButton")).Attributes.Add("onclick", "'return confirm('Are you sure you want to delete {0} '" + UserName);
Membership.DeleteUser(UserName);
JobPostDataContext db = new JobPostDataContext();
var query = from u in db.UserDetails
where u.UserName == UserName
select u;
for (var Item in query)
{
db.UserDetails.DeleteOnSubmit(Item);
}
db.SubmitChanges();
}
助けてください!