By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,009 Members | 2,866 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,009 IT Pros & Developers. It's quick & easy.

'ASP.login_aspx' does not contain a definition for 'btnSignIn_Click' - I have the function..then why?

P: n/a
Hi,

I'm trying to have a login page; after logging in the user has to see the list of SQL Server Databases available to him/her. I'm always getting the error

'ASP.login_aspx' does not contain a definition for 'btnSignIn_Click'

I have the btnSignIn_Click function defined in a codebehind .cs file - The file name is Connect.aspx.cs. I made a DLL and have that DLL in the Bin subfolder (Bin\Connect.dll).

Here's the command I used for making the dll -

C:\Inetpub\wwwroot\xml\dotnet>csc /out:Connect.dll /r:System.dll,System.web.dll,System.Data.dll /t:library Connect.aspx.cs

Here's the code I wrote for Connect.aspx.cs
/************************************************** ********************************/

using System;
using System.Web;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;
/// <summary>
/// Description of Class1.
/// </summary>
public class Connect : System.Web.UI.Page
{
public System.Web.UI.WebControls.TextBox txtLogin;
public System.Web.UI.WebControls.RequiredFieldValidator RFVLogin;
public System.Web.UI.WebControls.TextBox txtPassword;
public System.Web.UI.WebControls.RequiredFieldValidator RFVPassword;
public System.Web.UI.WebControls.Button btnSignIn;
public System.Web.UI.WebControls.Label Msg;

protected void Page_Load(object sender, EventArgs e){
if(!IsPostBack) {
Msg.Text = "Welcome. Enter your SQL Server user-name and password.";
}
}

protected void btnSignIn_Click(object Sender, EventArgs e){

if(Page.IsValid){
Session["uid"]=txtLogin.Text;
Session["pwd"]=txtPassword.Text;
SqlConnection conn = new SqlConnection("server=localhost;uid=" + txtLogin.Text + ";pwd=" + txtPassword.Text);
try {
conn.Open();
SqlCommand strsql = new SqlCommand("SELECT name FROM master.dbo.sysdatabases WHERE has_dbaccess(name) = 1 ORDER BY name ", conn);
SqlDataReader myreader;
myreader = strsql.ExecuteReader();
}
catch(SqlException sqlerr) {
Msg.Text=sqlerr.ToString();
}
}
}
}
/************************************************** ********************************/

<pre>
<!--Here's the code page from where I'm referring this codebehind part. login.aspx ------------>
<%@ Page Language="c#" codebehind="Connect.aspx.cs" Trace="True" %>
<html>
<head>
</head>
<body style="FONT-FAMILY: arial">
<form runat="server">
<h2>Login Page
</h2>
<hr size="1" />
<table>
<tbody>
<tr>
<td>
Username:</td>
<td>
<asp:TextBox id="txtLogin" runat="server"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator id="RFVLogin" runat="server" ErrorMessage="*" Display="Static" ControlToValidate="UserName"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
Password:</td>
<td>
<asp:TextBox id="txtPassword" runat="server" TextMode="Password"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator id="RFVPassword" runat="server" ErrorMessage="*" Display="Static" ControlToValidate="UserPass"></asp:RequiredFieldValidator>
</td>
</tr>
</tbody>
</table>
<asp:Button id="btnSignIn" onclick="btnSignIn_Click" Text="Sign In" Runat="server"></asp:Button>
<p>
<asp:Label id="Msg" runat="server" forecolor="red"></asp:Label>
</p>
</form>
</body>
</html>

<!---------------------------------------------------->
</pre>

Can you please tell me what is causing that error ? I've been breaking my head asking everyone, and Googling everything I can.
Thank you.

Nov 18 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
You have to rebuild the cs file and copy the builded .dll file in the bin
sub folder again

Regards
Martin

"Columbia Pike" <wh******@whatever.com> wrote in message
news:Xn**********************************@207.46.2 48.16...
Hi,

I'm trying to have a login page; after logging in the user has to see the list of SQL Server Databases available to him/her. I'm always getting the
error
'ASP.login_aspx' does not contain a definition for 'btnSignIn_Click'

I have the btnSignIn_Click function defined in a codebehind .cs file - The file name is Connect.aspx.cs. I made a DLL and have that DLL in the Bin
subfolder (Bin\Connect.dll).
Here's the command I used for making the dll -

C:\Inetpub\wwwroot\xml\dotnet>csc /out:Connect.dll /r:System.dll,System.web.dll,System.Data.dll /t:library Connect.aspx.cs
Here's the code I wrote for Connect.aspx.cs
/************************************************** *************************
*******/
using System;
using System.Web;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;
/// <summary>
/// Description of Class1.
/// </summary>
public class Connect : System.Web.UI.Page
{
public System.Web.UI.WebControls.TextBox txtLogin;
public System.Web.UI.WebControls.RequiredFieldValidator RFVLogin;
public System.Web.UI.WebControls.TextBox txtPassword;
public System.Web.UI.WebControls.RequiredFieldValidator RFVPassword;
public System.Web.UI.WebControls.Button btnSignIn;
public System.Web.UI.WebControls.Label Msg;

protected void Page_Load(object sender, EventArgs e){
if(!IsPostBack) {
Msg.Text = "Welcome. Enter your SQL Server user-name and password.";
}
}

protected void btnSignIn_Click(object Sender, EventArgs e){

if(Page.IsValid){
Session["uid"]=txtLogin.Text;
Session["pwd"]=txtPassword.Text;
SqlConnection conn = new SqlConnection("server=localhost;uid=" + txtLogin.Text + ";pwd=" + txtPassword.Text); try {
conn.Open();
SqlCommand strsql = new SqlCommand("SELECT name FROM master.dbo.sysdatabases WHERE has_dbaccess(name) = 1 ORDER BY name ", conn); SqlDataReader myreader;
myreader = strsql.ExecuteReader();
}
catch(SqlException sqlerr) {
Msg.Text=sqlerr.ToString();
}
}
}
}
/************************************************** *************************
*******/
<pre>
<!--Here's the code page from where I'm referring this codebehind part. login.aspx ------------>

<%@ Page Language="c#" codebehind="Connect.aspx.cs" Trace="True" %>
<html>
<head>
</head>
<body style="FONT-FAMILY: arial">
<form runat="server">
<h2>Login Page
</h2>
<hr size="1" />
<table>
<tbody>
<tr>
<td>
Username:</td>
<td>
<asp:TextBox id="txtLogin" runat="server"></asp:TextBox> </td>
<td>
<asp:RequiredFieldValidator id="RFVLogin" runat="server" ErrorMessage="*" Display="Static"
ControlToValidate="UserName"></asp:RequiredFieldValidator> </td>
</tr>
<tr>
<td>
Password:</td>
<td>
<asp:TextBox id="txtPassword" runat="server" TextMode="Password"></asp:TextBox> </td>
<td>
<asp:RequiredFieldValidator id="RFVPassword" runat="server" ErrorMessage="*" Display="Static"
ControlToValidate="UserPass"></asp:RequiredFieldValidator> </td>
</tr>
</tbody>
</table>
<asp:Button id="btnSignIn" onclick="btnSignIn_Click" Text="Sign In" Runat="server"></asp:Button> <p>
<asp:Label id="Msg" runat="server" forecolor="red"></asp:Label> </p>
</form>
</body>
</html>

<!---------------------------------------------------->
</pre>

Can you please tell me what is causing that error ? I've been breaking my head asking everyone, and Googling everything I can.

Thank you.

Nov 18 '05 #2

P: n/a
If you use OnClick attribute in the page's HTML view, the name is expected
to be on the page script and not in the code-behind. If you want to use a
handler in the code-behind, remove OnClick attribute, go to design view and
double-click the button. The code-behind will open on the right function. Or
you can select event handler in the button properties panel on Events tab.
Or you can do it without design view whatsoever. Just go to the code-behind
and add a line for registering the event-handling method for the Click
event of the button:
btnSignIn.Click += new EventHandler(this.btnSignIn_Click);

When you do it in the design view, this line is added to the automatically
generated InitializeComponent() method.

Eliyahu

"Columbia Pike" <wh******@whatever.com> wrote in message
news:Xn**********************************@207.46.2 48.16...
Hi,

I'm trying to have a login page; after logging in the user has to see the list of SQL Server Databases available to him/her. I'm always getting the
error
'ASP.login_aspx' does not contain a definition for 'btnSignIn_Click'

I have the btnSignIn_Click function defined in a codebehind .cs file - The file name is Connect.aspx.cs. I made a DLL and have that DLL in the Bin
subfolder (Bin\Connect.dll).
Here's the command I used for making the dll -

C:\Inetpub\wwwroot\xml\dotnet>csc /out:Connect.dll /r:System.dll,System.web.dll,System.Data.dll /t:library Connect.aspx.cs
Here's the code I wrote for Connect.aspx.cs
/************************************************** *************************
*******/
using System;
using System.Web;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;
/// <summary>
/// Description of Class1.
/// </summary>
public class Connect : System.Web.UI.Page
{
public System.Web.UI.WebControls.TextBox txtLogin;
public System.Web.UI.WebControls.RequiredFieldValidator RFVLogin;
public System.Web.UI.WebControls.TextBox txtPassword;
public System.Web.UI.WebControls.RequiredFieldValidator RFVPassword;
public System.Web.UI.WebControls.Button btnSignIn;
public System.Web.UI.WebControls.Label Msg;

protected void Page_Load(object sender, EventArgs e){
if(!IsPostBack) {
Msg.Text = "Welcome. Enter your SQL Server user-name and password.";
}
}

protected void btnSignIn_Click(object Sender, EventArgs e){

if(Page.IsValid){
Session["uid"]=txtLogin.Text;
Session["pwd"]=txtPassword.Text;
SqlConnection conn = new SqlConnection("server=localhost;uid=" + txtLogin.Text + ";pwd=" + txtPassword.Text); try {
conn.Open();
SqlCommand strsql = new SqlCommand("SELECT name FROM master.dbo.sysdatabases WHERE has_dbaccess(name) = 1 ORDER BY name ", conn); SqlDataReader myreader;
myreader = strsql.ExecuteReader();
}
catch(SqlException sqlerr) {
Msg.Text=sqlerr.ToString();
}
}
}
}
/************************************************** *************************
*******/
<pre>
<!--Here's the code page from where I'm referring this codebehind part. login.aspx ------------>

<%@ Page Language="c#" codebehind="Connect.aspx.cs" Trace="True" %>
<html>
<head>
</head>
<body style="FONT-FAMILY: arial">
<form runat="server">
<h2>Login Page
</h2>
<hr size="1" />
<table>
<tbody>
<tr>
<td>
Username:</td>
<td>
<asp:TextBox id="txtLogin" runat="server"></asp:TextBox> </td>
<td>
<asp:RequiredFieldValidator id="RFVLogin" runat="server" ErrorMessage="*" Display="Static"
ControlToValidate="UserName"></asp:RequiredFieldValidator> </td>
</tr>
<tr>
<td>
Password:</td>
<td>
<asp:TextBox id="txtPassword" runat="server" TextMode="Password"></asp:TextBox> </td>
<td>
<asp:RequiredFieldValidator id="RFVPassword" runat="server" ErrorMessage="*" Display="Static"
ControlToValidate="UserPass"></asp:RequiredFieldValidator> </td>
</tr>
</tbody>
</table>
<asp:Button id="btnSignIn" onclick="btnSignIn_Click" Text="Sign In" Runat="server"></asp:Button> <p>
<asp:Label id="Msg" runat="server" forecolor="red"></asp:Label> </p>
</form>
</body>
</html>

<!---------------------------------------------------->
</pre>

Can you please tell me what is causing that error ? I've been breaking my head asking everyone, and Googling everything I can.

Thank you.

Nov 18 '05 #3

P: n/a
Eliyahu Goldin wrote:
If you use OnClick attribute in the page's HTML view, the name is
expected to be on the page script and not in the code-behind.

That's not actually true. I'm using

<% Page Inherits="myNamespace.myPage" %>

with a compiled codebehind page and I can assign event handlers with OnClick
just fine.

It seems like InitializeComponent is only there for the designer....

--
jo inferis
Nov 18 '05 #4

P: n/a
Thank you for the correction about inheritance, you are right.

InitializeComponent does have a use in run-time. When you add event handlers
via design view, VisualStudio creates private methods in the code-behind and
doesn't create OnClick attribute in the aspx. Then it is InitializeComponent
that actually establishes links between controls and their event handlers.

Eliyahu

"Jo Inferis" <in*****@NOSPAM.gotadsl.co.uk> wrote in message
news:es*************@TK2MSFTNGP10.phx.gbl...
Eliyahu Goldin wrote:
If you use OnClick attribute in the page's HTML view, the name is
expected to be on the page script and not in the code-behind. That's not actually true. I'm using

<% Page Inherits="myNamespace.myPage" %>

with a compiled codebehind page and I can assign event handlers with

OnClick just fine.

It seems like InitializeComponent is only there for the designer....

--
jo inferis

Nov 18 '05 #5

P: n/a
Hello everyone...after your tips I did some more trial and error and now
the code is working. I'm able to fetch the db list. All I did was replace

codebehind="Connect.aspx.cs"

with

Inherits="MyNS.Connect"

in the login.aspx page, after including the CodeBehind in a namespace MyNS.
I'd appreciate any explanation for this difference in behavior.

Thank you once again for all who responded.
Nov 18 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.