2010-09-24 140 views
1

在我的web應用程序中我使用母版頁的概念,在母版頁我有登錄面板使用這個用戶可以登錄,登錄後登錄面板將不可見和鏈接按鈕將可見作爲註銷,它工作正常,但在子頁面(內容頁面)我有更新面板中登錄的登錄面板,當用戶在主頁面登錄面板中成功登錄時仍然可見,它不是可見的,當我頁面刷新,然後登錄面板不可見和註銷鏈接按鈕可見。當我登錄子頁面時,母版頁中的登錄面板也不可見,並且註銷鏈接按鈕將可見,可以在這種情況下幫助我,謝謝。這是代碼:asp.net中的主頁和內容頁面?

SqlDataAdapter da = new SqlDataAdapter("select * from xxx where ([email protected] or [email protected]) and [email protected]", con); 
da.SelectCommand.Parameters.AddWithValue("@UserName", txtUserId.Text); 
da.SelectCommand.Parameters.AddWithValue("@Password", txtPassword.Text); 
DataSet ds = new DataSet(); 
da.Fill(ds, "Login"); 
int i = ds.Tables["Login"].Rows.Count; 
if (i == 1) 
{ 
    LinkButton lnklogout = (LinkButton)Master.FindControl("LinkLogout"); 
    lnklogout.Visible = true; 
    LinkButton linkmypro = (LinkButton)Master.FindControl("lnkbtnMyProfile"); 
    linkmypro.Visible = true; 

    LinkButton linsynup = (LinkButton)Master.FindControl("lbtnSignUp"); 
    linsynup.Visible = false; 
    Panel pnllogon = (Panel)Master.FindControl("LogonPanel"); 
    pnllogon.Visible = false; 
} 
+0

爲什麼你有兩個單獨的登錄控制?如果我理解正確,則您在主頁面中有一個登錄控件,而在另一個內容頁面中有另一個登錄控件。你使用什麼ContentPlaceHolders?也許你可以將主頁面控件包裝在隱藏在特定內容頁面中的ContentPlaceHolder中? – 2010-09-24 09:46:42

+0

其實它是客戶的要求,不,我沒有使用ContentPlaceHolder,我使用更新panle先生基督教Newsmark – 2010-09-24 10:03:36

回答

0

你的問題不是很清楚。根據我的理解,您需要能夠從內容頁面禁用並啓用母版頁上的控件?如果是的話this might help

除此之外你如何啓用/禁用? IsPostBack有任何機會嗎?這將爲 解釋爲什麼它只在刷新頁面後才起作用。當你使用更新面板時,它將單獨更新到它周圍的頁面(它的AJAX),所以這可能是你問題的一部分。

除此之外,請張貼一些代碼。

+0

是正好先生eddy556 – 2010-09-24 10:32:20

2

你快到了!你需要告訴UpdatePanel的母版頁本身更新

UpdatePanel t = (UpdatePanel)Master.FindControl("UpdatePanel1"); 
t.Update(); 

我覺得你還需要在UpdatePanel中設置的UpdateMode爲「有條件」

不要忘了在類似的代碼母版頁,因此如果用戶使用母版頁的登錄控制登錄,那麼子頁也應該更新。

好運!

編輯:

對不起,我忘了提,你一定要在周圍的登錄控制母版頁一個UpdatePanel爲好。否則這將不起作用

+0

Mr.Mouhannad我沒有更新在主頁的頁面,但我有我在其中放置的子頁面loginpanle登錄 – 2010-09-24 11:13:53

+0

所以你說更新面板必須在母版頁! – 2010-09-24 11:14:55

+0

是的,否則無法重新呈現母版頁中的登錄(直到整個頁面被刷新) – Mouhannad 2010-09-24 11:20:36