2010-06-18 43 views
0

我的母版頁上做了一個流行控制在asp.net 3.5 請參閱下面的代碼:母版頁彈出登錄控制不工作

Main.master ASPX代碼:

<form id="form1" runat="server"> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:Panel ID="Panel1" runat="server" 
style="display:none; background-color:White; width:700; 
border-width:2px; border-color:Black; border-style:solid; 
padding:20px;"> 
<table width="100%" border="0" cellpadding="2" cellspacing="5"> 
       <tr> 

        <td><asp:Label id="labMsg" runat="server" ForeColor="Red"EnableViewState="false" />      
        </td> 
       </tr> 
       <tr> 
        <td> 
         <strong>Login ID :</strong>      
         <asp:TextBox ID="txtLogin" runat="server"></asp:TextBox> 
        </td> 
       </tr> 
       <tr> 
        <td><strong>Password :</strong> 
        <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox> 
        </td> 
       </tr> 
       <tr>     
        <td> 
         <asp:Button ID="btnOk" runat="server" Text="Sign In" onclick="Login" /> 
         <asp:Button ID="btnClose" runat="server" Text="Cancel" /> 
        </td> 
       </tr> 
     </table> 
</asp:Panel> 


     <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
      <ContentTemplate> 
      <asp:Panel ID="defaultPanel" CssClass="Default_Panel" runat="server" Visible="true"> 
      <ul><li><asp:LinkButton ID="lnkSignIn" class="last" runat="server" Visible="true" Text="sign in"></asp:LinkButton> 
          <asp:LinkButton ID="lnkSignOut" class="last" runat="server" Visible="false" Text="sign out"></asp:LinkButton> 
         </li>      
     </ul> 

       <!-- Login Pop Ajax Control Tool Kit --> 
       <ajaxToolkit:ConfirmButtonExtender ID="ConfirmButtonExtender1" 
       runat="server" TargetControlID="lnkSignIn" 
       DisplayModalPopupID="ModalPopupExtender1"> 
       </ajaxToolkit:ConfirmButtonExtender> 
       <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server" 
       CancelControlID="btnClose" OkControlID="btnOk" 
       PopupControlID="Panel1" 
       TargetControlID="lnkSignIn"> 
       </ajaxToolkit:ModalPopupExtender> 
       </asp:Panel>  
      </ContentTemplate> 

      </asp:UpdatePanel> 
    </form> 

Main.master.cs代碼:

public void Login(object sender, EventArgs e) 
    { 


    // return "Login Successfull"; 
     labMsg.Text = "Login Successfull"; 
    } 

問題: 當[從Default.aspx或從任何其他子頁面]按下登錄按鈕時,它不會在母版頁上點擊登錄方法。幫助表示讚賞。

+0

你在哪兒登錄方法和任何夏精事件之間的綁定? – 2010-06-18 21:02:32

+0

我認爲這個登錄方法將會在用戶點擊「btnOk」按鈕 – Developer 2010-06-18 21:07:05

+0

後丟失。你改變了代碼嗎?現在我看到分配給btnOk的Login方法。它在30分鐘前有嗎? – 2010-06-18 21:25:24

回答

0

我已成功地解決這裏的問題是代碼:

Master.master:

  <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
       <ContentTemplate> 
        <asp:Panel ID="defaultPanel" CssClass="Default_Panel" runat="server" Visible="true"> 

         <ul id="loginLinks"> 
          <li><asp:LinkButton ID="lnkSignIn" class="last" runat="server" Visible="true" Text="sign in"></asp:LinkButton></li> 
           </ul> 

         <!-- Login Pop Ajax Control Tool Kit --> 
         <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server" CancelControlID="btnClose" PopupControlID="pnlSignIn" TargetControlID="lnkSignIn"></ajaxToolkit:ModalPopupExtender> 
        </asp:Panel> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
      <asp:Panel ID="pnlSignIn" runat="server"> 
       <asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
        <ContentTemplate> 
         <table width="100%" border="0" cellpadding="2" cellspacing="5"> 
          <tr> 
           <td style="width: 35%; padding-top: 50px;"> 
           </td> 
           <td> 
            <asp:Label ID="labMsg" runat="server" ForeColor="Red" EnableViewState="false" /> 
           </td> 
          </tr> 
          <tr> 
           <td align="right" valign="middle"> 
            <strong>Login ID :</strong> 
           </td> 
           <td> 
            &nbsp;<asp:TextBox ID="txtLogin" runat="server"></asp:TextBox> 
           </td> 
          </tr> 
          <tr> 
           <td align="right" valign="middle"> 
            <strong>Password :</strong> 
           </td> 
           <td> 
            &nbsp;<asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox> 
           </td> 
          </tr> 
          <tr> 
           <td> 
           </td> 
           <td> 
            <asp:Button ID="btnOk" runat="server" Text="Sign In" OnClick="btnOk_Click" /> 
            <asp:Button ID="btnClose" runat="server" Text="Cancel" /> 
           </td> 
          </tr> 
         </table> 
        </ContentTemplate> 
       </asp:UpdatePanel> 
      </asp:Panel> 

注:現在2更新面板,刪除confirmbuttonextender。 我真的不知道爲什麼登錄方法沒有打到之前,現在它是如何工作的。

Master.master.cs:

protected void btnOk_Click(object sender, EventArgs e) 
{ 
    var name = txtLogin.Text; 
    var pwd = txtPassword.Text; 

    DataSet ds = new DataSet(); 
    string userName = name; 
    string pwdBeforeConversion = pwd; 

    //Encryption of pasword 
    SHA1CryptoServiceProvider x = new SHA1CryptoServiceProvider(); 
    byte[] data = Encoding.ASCII.GetBytes(pwdBeforeConversion); 
    data = x.ComputeHash(data); 

    //pass the data to service, and get a return as dataset 
    try 
    { 
     somelogic here 
    } 
    catch (Exception ex3) 
    { 
     if (ex3.Message == "InvalidUsernameOrPassword") 
      labMsg.Text = "sorry user name and password could not be found"; 
     else if (ex3.Message == "EmailNotVerified") 
      labMsg.Text = "please contact ta; email is not verified"; 
     else if (ex3.Message == "AccountDisabled") 
      labMsg.Text = "please contact ta; account is not verified"; 
     else 
      labMsg.Text = "sorry we encounterd a techncal issue, please try logging in again"; 
     ModalPopupExtender1.Show(); 
     return; 
    } 

}