[英]Delete User from Table and ASPNET Membership Provider with sqlDataSource
我有一個Gridview通過sqlDataSource顯示聯系人列表。
包括用於刪除記錄的項目模板-LinkButton-,其中OnClientClick設置為使用某些JavaScript:“返回確認('確定要刪除此用戶嗎?');” 這會給用戶一些彈出窗口,提示是或取消選項。
當從聯系人表中刪除用戶時,我還需要使用Membership.DeleteUser(UserName,true)語句在AspNet Membership表中刪除同一用戶。
Membership表的Contact.IntranetUserName列和UserName包含相同的數據值,從而使事情變得很方便。
不知道要使用什么事件,我從使用Gridview的OnRowCommand開始-但無法弄清楚如何獲取要刪除的行的“ IntranetUserName”列的值(通過“聯系表”中的“項目模板”)並傳遞它到Membership.DeleteUser語句。
關於此的任何C#想法都將非常令人贊賞。 也許我應該改用GridView的OnRowDeleted或OnRowDeleting? 還是LinkButtons OnCommand?
GridView和SqlDataSource在這里:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ContactID"
DataSourceID="SqlDataSource2" Width="738px" OnRowCommand="deleteFromAspnetProvider" >
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="return confirm('Are you sure you want to delete this user?');"
CommandName="Delete" Text="Delete User"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="IntranetUserName" HeaderText="IntranetUserName" SortExpression="IntranetUserName" Visible="false" />
<asp:BoundField DataField="FirstName" HeaderText="First Name"
SortExpression="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="Last Name"
SortExpression="LastName" />
<asp:BoundField DataField="CompanyName" HeaderText="Company"
SortExpression="CompanyName" />
<asp:BoundField DataField="EmailAddress" HeaderText="Email Address"
SortExpression="EmailAddress" />
<asp:BoundField DataField="UserLevelType" HeaderText="UserLevelType"
SortExpression="UserLevelType" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:DataConnect %>"
SelectCommand="SELECT * FROM [Contact] WHERE ([CompanyName] = @CompanyName)"
DeleteCommand="DELETE FROM [Contact] WHERE [ContactID] = @ContactID"
InsertCommand="INSERT INTO [Contact] ([UserId], [UserSID], [LocationID], [IntranetUserName], [FirstName], [LastName], [CompanyName], [EmailAddress], [ContactPhone], [ContactPhoneExt], [ContactFAX], [DateUpdated], [ActiveMember], [UserLevelType]) VALUES (@UserId, @UserSID, @LocationID, @IntranetUserName, @FirstName, @LastName, @CompanyName, @EmailAddress, @ContactPhone, @ContactPhoneExt, @ContactFAX, @DateUpdated, @ActiveMember, @UserLevelType)"
UpdateCommand="UPDATE [Contact] SET [UserId] = @UserId, [UserSID] = @UserSID, [LocationID] = @LocationID, [IntranetUserName] = @IntranetUserName, [FirstName] = @FirstName, [LastName] = @LastName, [CompanyName] = @CompanyName, [EmailAddress] = @EmailAddress, [ContactPhone] = @ContactPhone, [ContactPhoneExt] = @ContactPhoneExt, [ContactFAX] = @ContactFAX, [DateUpdated] = @DateUpdated, [ActiveMember] = @ActiveMember, [UserLevelType] = @UserLevelType WHERE [ContactID] = @ContactID">
<SelectParameters>
<asp:ControlParameter ControlID="memberCompanyNameLabel" Name="CompanyName"
PropertyName="Text" Type="String" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="ContactID" Type="Int32" />
<asp:Parameter Name="IntranetUserName" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="UserId" Type="Object" />
<asp:Parameter Name="UserSID" Type="Int32" />
<asp:Parameter Name="LocationID" Type="Int32" />
<asp:Parameter Name="IntranetUserName" Type="String" />
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="LastName" Type="String" />
<asp:Parameter Name="CompanyName" Type="String" />
<asp:Parameter Name="EmailAddress" Type="String" />
<asp:Parameter Name="ContactPhone" Type="String" />
<asp:Parameter Name="ContactPhoneExt" Type="String" />
<asp:Parameter Name="ContactFAX" Type="String" />
<asp:Parameter Name="DateUpdated" Type="DateTime" />
<asp:Parameter Name="ActiveMember" Type="Boolean" />
<asp:Parameter Name="UserLevelType" Type="Int32" />
<asp:Parameter Name="ContactID" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="UserId" Type="Object" />
<asp:Parameter Name="UserSID" Type="Int32" />
<asp:Parameter Name="LocationID" Type="Int32" />
<asp:Parameter Name="IntranetUserName" Type="String" />
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="LastName" Type="String" />
<asp:Parameter Name="CompanyName" Type="String" />
<asp:Parameter Name="EmailAddress" Type="String" />
<asp:Parameter Name="ContactPhone" Type="String" />
<asp:Parameter Name="ContactPhoneExt" Type="String" />
<asp:Parameter Name="ContactFAX" Type="String" />
<asp:Parameter Name="DateUpdated" Type="DateTime" />
<asp:Parameter Name="ActiveMember" Type="Boolean" />
<asp:Parameter Name="UserLevelType" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
嘗試改用RowDeleting事件。
void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string name = e.Values["IntranetUserName"] as string;
}
PS:我沒有在這台計算機上安裝VS,所以我自己不能真正對其進行測試...對不起。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.