views:

35

answers:

1

I made a pop control on the master page in asp.net 3.5 please see the following code:

Main.master aspx code:

 <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 code:

 public void Login(object sender, EventArgs e)
  {


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

Problem: When login button is pressed[from Default.aspx or from any other child page] it don't hit the Login method on the master page. Help is appreciated.

A: 

I have managed to solve the problem here is the code:

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>

Note: 2 update panels now, removed confirmbuttonextender. I really don't know why the login method wasn't hitting before and how come it's working now.

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;
    }

}
fzshah76