2011-10-14 47 views
7

enter image description here我有一個loginview的masterpage,在loginview中我有一個asp登錄控件。我也有一個不包含在loginview中的標籤。在loginview中查找控件

如何訪問asp登錄控件中的用戶名文本框控件,並在標籤中顯示文本。

請幫忙!

這是我的代碼:

Login lg = (Login)LoginView1.FindControl("Login1"); 
TextBox tb = (TextBox)lg.FindControl("UserName"); 

Label2.Text = tb.Text; 

確定這就是我需要做的:投訴人可以關閉自己的帳戶。管理員和技術人員帳戶將被停用,並且必要時也可以由管理員重新激活。投訴人可以隨時重新激活其帳戶。

我需要驗證在文本框中輸入的用戶名,以便首先檢查它是否是活動用戶。如果沒有,它允許他們重新激活它。我如何從用戶名文本框訪問文本。剩下的我可以弄清楚。

+0

你可以發佈loginview的標記嗎? –

+0

這應該起作用,你會得到什麼錯誤? –

回答

9

也許你必須檢查用戶是否已經驗證過了,因爲文本框是AnonymousTemplate裏面,或者它是一個命名空間的問題(WebControls.Login):

if (!HttpContext.Current.User.Identity.IsAuthenticated) { 
    Login lg = (WebControls.Login)LoginView1.FindControl("Login1"); 
    TextBox tb = (TextBox)lg.FindControl("UserName"); 
    Label2.Text = tb.Text; 
} 

但通常你會通過獲取用戶名/密碼Login的合適屬性UserName/Password

編輯:您添加的屏幕截圖非常小,但我看到您得到一個InvalidCastException,所以我對命名空間問題的評價是正確的。

+0

這是我得到的錯誤 –

+0

我假設你有另一個類「登錄」,這導致命名空間衝突。你想把它轉換成'WebControls.Login'。 –

+0

錯誤是:無法投射'System.Web.UI.WebControls.Login'類型的對象來鍵入'Gui.Login'。我在整個應用程序中只有1個登錄控件 –