1
我已经扩展了asp.net成员包括使用userid GUID作为外键在一个单独的表额外的用户信息(详细地址,电话号码等),DB信息。获取有关当前登录的用户到DetailsView控件
我想创建一个DetailsView在当前登录的用户可以查看他们的个人资料并进行更新。我遵循ASP.NET上的Scott Mitchell tutorial,但它不适用于我。虽然我没有收到任何错误,但我没有看到任何数据。
我已经建立了标签在ASPX代码来显示正在被正确地返回的用户ID(它们是),并且如果我运行在一个查询窗口的手动SELECT查询时,DB检索结果。
,因为我想获得一个基本的SELECT语句先上班我都没有包含在更新语句等。任何有关进一步测试的想法都将被赞赏,解决方法或任何明显的错误! 谢谢。
ASPX:
<asp:DetailsView ID="UserProfile" runat="server"
AutoGenerateRows="False" DataKeyNames="mem_number"
DataSourceID="UserProfileDataSource" DefaultMode="Edit"
onitemupdated="UserProfile_ItemUpdated">
<Fields>
<asp:BoundField DataField="lname" HeaderText="lname"
SortExpression="lname" />
<asp:BoundField DataField="addr1" HeaderText="addr1"
SortExpression="addr1" />
<asp:BoundField DataField="addr2" HeaderText="addr2"
SortExpression="mem_addr2" />
<asp:CommandField ShowEditButton="True" />
</Fields>
</asp:DetailsView>
<asp:SqlDataSource ID="UserProfileDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:wtcConnectionString %>"
SelectCommand="SELECT [lname], [addr1], [addr2] FROM [member] WHERE ([UserId] = @UserId)" OnSelecting="UserProfileDataSource_Selecting">
<SelectParameters>
<asp:Parameter Name="UserId" Type="Object" />
</SelectParameters>
</asp:SqlDataSource>
<asp:Label ID="Label3" runat="server" Text="currentuser"></asp:Label>
<br />
<asp:Label ID="Label4" runat="server" Text="providerIdKeyString"></asp:Label>
C#代码隐藏:
protected void UserProfileDataSource_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
// Get a reference to the currently logged on user
MembershipUser currentuser = Membership.GetUser();
// Determine the currently logged on user's UserId value
string providerIdKeyString = string.Empty;
providerIdKeyString = currentuser.ProviderUserKey.ToString();
Label3.Text = currentuser.ToString();
Label4.Text = providerIdKeyString.ToString();
// Assign the currently logged on user's UserId to the @UserId parameter
e.Command.Parameters["@UserId"].Value = providerIdKeyString;
}
步骤一遍。设置参数时,“providerIdKeyString”是否有值? – Aaron 2012-01-16 14:29:08
是的,它返回了预期的UserId – bjh 2012-01-17 13:44:13
有什么其他想法尝试?奇怪的是,我没有得到一个错误,但没有得到任何结果。如果我无法让DetailsView行为起来,我将不得不使用表单或向导。 – bjh 2012-01-20 10:56:26