我需要添加与登录相关联的公司名称字段。稍后我需要将其合并到我现有的管理屏幕中进行报告。
我无法弄清楚如何完成这项工作。我已尝试在Membership表中添加一列并修改存储过程,但该列不会显示。
以下是我需要修改的管理页面的代码。
<%@ Page Language="C#" MasterPageFile="~/admin.master" %>
<%@ Register TagPrefix="dc" TagName="alphalinks" Src="~/alphalinks.ascx" %>
<script runat="server">
private void Page_PreRender()
{
if (Alphalinks.Letter == "All")
{
Users.DataSource = Membership.GetAllUsers();
}
else
{
Users.DataSource = Membership.FindUsersByName(Alphalinks.Letter + "%");
}
Users.DataBind();
}
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="c" Runat="Server">
<!-- #include file="_nav.aspx -->
<table class="webparts">
<tr>
<th>Users by Name</th>
</tr>
<tr>
<td class="details" valign="top">
<!-- #include file="_nav3.aspx -->
User Name filter:
<dc:alphalinks runat="server" ID="Alphalinks" />
<br />
<br />
<asp:GridView runat="server" ID="Users" AutoGenerateColumns="false"
CssClass="list" AlternatingRowStyle-CssClass="odd" GridLines="none"
>
<Columns>
<asp:TemplateField>
<HeaderTemplate>User Name</HeaderTemplate>
<ItemTemplate>
<a href="edit_user.aspx?username=<%# Eval("UserName") %>"><%# Eval("UserName") %></a>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="email" HeaderText="Email" />
<asp:BoundField DataField="comment" HeaderText="Comments" />
<asp:BoundField DataField="creationdate" HeaderText="Creation Date" />
<asp:BoundField DataField="lastlogindate" HeaderText="Last Login Date" />
<asp:BoundField DataField="lastactivitydate" HeaderText="Last Activity Date" />
<asp:BoundField DataField="isapproved" HeaderText="Is Active" />
<asp:BoundField DataField="isonline" HeaderText="Is Online" />
<asp:BoundField DataField="islockedout" HeaderText="Is Locked Out" />
</Columns>
</asp:GridView>
</td>
</tr></table>
</asp:Content>
我很感激您的帮助。
谢谢,
史蒂夫
答案 0 :(得分:3)
编辑:不要修改存储过程或使用成员资格提供程序创建的表。这是在惹麻烦。您需要做的是添加一个Profile Provider,它扩展了标准用户信息。
原始答案: 阅读Scott Guthrie撰写的这篇文章:http://weblogs.asp.net/scottgu/archive/2006/01/10/435038.aspx 它与Table Profile Provider有关,它比开箱即用的要好得多。
这也是:http://weblogs.asp.net/scottgu/archive/2005/10/18/427754.aspx
答案 1 :(得分:2)
史蒂夫,您是否从自定义MembershipUser
返回了自定义MembershipProvider
,并使用适当的值构建了自定义Users.DataSource = Membership.GetAllUsers().Cast<MyMembershipUser>();
,以便执行此操作?
如果没有,那么you will need to do so。
如果是这样,您将需要从成员资格中转换结果,因为它的返回类型是股票成员资格用户,即使您要返回派生类型。
有些东西......
{{1}}