1
我剛剛學習asp.net,所以我可能會錯誤的如何我這樣做,讓我知道是否有更好的方法。使用基於用戶登錄的存儲過程填充下拉列表
我有一個「門戶」,用戶登錄,然後他們有一個他們管理的所有網站的下拉列表。
我想用一個存儲過程我創建了基於登錄的用戶來填充下拉框。
我用內置的CreateUserWizard存儲的用戶數據庫。我創建了另一個包含所有網站和第三個表格的網站,以將網站和用戶鏈接在一起。
這裏是下拉列表
<code>
<asp:DropDownList ID="DropDownListAClient" runat="server"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
DataSourceID="SqlDataSourceSitePicker" DataTextField="SiteName"
DataValueField="SiteName">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSourceSitePicker" runat="server"
ConnectionString="<%$ ConnectionStrings:MainAppDB %>"
SelectCommand="portal_SitePicker" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter Name="portaluserid" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
</code>
這裏是存儲過程的代碼
<code>
ALTER PROCEDURE [dbo].[portal_SitePicker]
-- Add the parameters for the stored procedure here
@portaluserid varchar
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT SiteName
FROM dbo.aspnet_UserMap, dbo.Sites
WHERE dbo.Sites.SiteID = dbo.aspnet_UserMap.SiteID
and dbo.aspnet_UserMap.UserID = @portaluserid
END
</code>
如果我測試的存儲過程它拉正確的網站,但我不知道怎麼樣從當前登錄用戶獲取用戶標識值。
有什麼建議嗎?
'Page.User.Identity.Name'將爲您提供當前登錄的用戶名。 – mellamokb
謝謝,我將StoredProc更改爲使用用戶名而不是ID。我還向我的sqldatasource添加了 。然而,當頁面加載時,下拉框是空的。我必須錯過一步。 –
Zach