1

Visual Studio 2010 Professional と SQL Server 2008 R2 Express を使用しています

私がやろうとしているのは、ログインしているユーザーを検出し、その詳細をグリッドビューに表示することです。ログインしたユーザーはasp.net認証を使用しました。ログインプロセスを使用してユーザーにページへのアクセスを許可しました。ユーザーには許可するように設定された「ユーザー」ロールがあります。管理者アカウントは、グリッドビューからアカウント内のすべてのユーザーを表示できますが、ログインしているユーザーがメンバー セクションで自分の詳細を表示することも必要です。

これは分離コードに示されています

Protected Sub Page_Load(sender As Object, e As System.EventArgs)
Session("MemberDetails") = User.Identity.Name
End Sub

これはメインページにあります

<asp:Gridview>
<Columns>
<asp:BoundField DataField="username" HeaderText="username" />
<$ many more fields here--$>
</Columns>
</asp:GridView>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
SelectCommand="SELECT username, salutation, fname, sname, address, suburb, postcode, dayphone FROM member WHERE (username = @username)">
<SelectParameters>
<asp:SessionParameter Name="username" SessionField="MemberDetails" />
</SelectParameters>
</asp:SqlDataSource>

すべてが機能するはずですが、代わりに空白のページが表示されます。

4

2 に答える 2

1

あなたの GridView タグは完全ではありません。特にDataSourceID="SqlDataSource1"

<asp:Gridview runat="server" ID="gvUsers" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="username" HeaderText="username" />
<$ many more fields here--$>
</Columns>
</asp:GridView>
于 2012-10-07T07:28:02.210 に答える
0

このVBコードビハインドは私の問題を解決しました:

Protected Sub SqlDataSource1_Selecting(ByVal sender As Object, ByVal e As SqlDataSourceSelectingEventArgs) Handles SqlDataSource1.Selecting
        e.Command.Parameters(0).Value = Me.User.Identity.Name
    End Sub
于 2012-10-08T01:54:10.427 に答える