Calling a C# function in asp.net
I have a WebForm before_adm.aspx.cs which has the code as follows:
.
.
.
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
DropDown abs =new DropDown();
abs.DropDown();
}
.....
I want to call a function DropDown() which is in file DropDown.cs The code in DropDown.cs is as follows:
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Collections;
using System.IO;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
/// <summary>
/// Summary description for DropDown
/// </summary>
public class DropDown
{
public DropDown()
{
try
{
OdbcConnection myConn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=10.155.160.130;Database=testcase;User=root;Password=;Option=3;");
OdbcCommand myCmd = new OdbcCommand("select skey,casecode from casetype", myConn);
myConn.Open();
OdbcDataReader myReader = myCmd.ExecuteReader();
//Set up the data binding.
DropDownList3.DataSource = myReader;
DropDownList3.DataTextField = "skey";
DropDownList3.DataValueField = "casecode";
DropDownList3.DataBind();
DropDownList3.Items.Insert(0, "<-- Select -->");
}
catch (Exception ex)
{
Response.Write(ex.StackTrace);
}
if (DropDownList2.SelectedItem.Text == "Register")
{
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("STA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("STM"));
}
else if (DropDownList2.SelectedItem.Text == "Stamp")
{
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("WP"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("FA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("LPA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("SA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CP"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CAPL"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("MCA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CRA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("XFER"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("ARP"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("TXA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CRIR"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("WPCR"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("AO"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("AUA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CONP"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("ELEP"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("COAP"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("COA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("ARA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CREF"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("ITA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("AAR"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("XFA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("TACR"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("EXAP"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("COP"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("AUE"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("AUW"));
开发者_开发问答 DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CRMA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CAREV"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CONF"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("PILWP"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("SMWP"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("XOB"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("SMCP"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("AELEP"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("RUIT"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CS"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("RUCA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CRIA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CUSA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("EXA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("SMCRC"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("EA"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CRMAB"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CRMAM"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("COAPM"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CPM"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("MCAM"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("AS"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("PILSM"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("CRREF"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("SMCR"));
DropDownList3.Items.Remove(DropDownList3.Items.FindByText("AUSFC"));
}
else if (DropDownList2.SelectedItem.Text == "<-- Select -->")
{
DropDownList3.Items.Clear();
}
}
}
Whatever i have done till now,is it correct? I am now getting the error as:
The name 'DropDownList2' does not exist in the current context
The name 'DropDownList3' does not exist in the current context
The name 'Response' does not exist in the current context
I want to create this function because i will be creating many such WebForms and i want to call the same function on
DropDownList2_SelectedIndexChanged What parameters do i need to pass. i want to know the way to pass the parameters. Please guide me. i want to create many such functions in .cs file which will have many other user controls.
The problem is that the DropDown class does not have a reference to DropDownList2, and it doesn't have a reference to 'Response' because that is a property on the Page object. We can fix this by passing a reference to the DropDownList and the Page, and tweaking things a bit to use those variables.
- Change
DropDown abs =new DropDown();
toDropDown abs =new DropDown(this.DropDownList2, Page page);
- Change
public DropDown()
topublic DropDown(DropDownList DropDownList2, Page page)
- Change
Response.Write(ex.StackTrace);
topage.Response.Write(ex.StackTrace);
`
If you're still confused or getting stuck at this point, it might be too early for you to be writing ASP.NET programs - I would start by learning the basics of C# and OO by going through some tutorials.
Try this way
public class DropDown
{
DropDownList dropDownList3 = null;
DropDownList dropDownList2 = null;
public DropDown()
{
}
public void Register(DropDownList dropDown2, DropDownList dropDown3)
{
this.dropDownList2 = dropDown2;
this.dropDownList3 = dropDown3;
// your code goes here
}
}
Use HttpContext.Current.Response.Write
Use this class as
DropDown abs = new DropDown();
abs.Register(dropdown1, dropdown2);
Try not to write code in constructor which might throw exception
You shoud pass dropDown as parameter into yours DropDown method:
DropDown abs =new DropDown((DropDownList)sender);
....
public DropDown(DropDownList DropDownList2)..
And instead of:
Response.Write
use:
HttpContext.Current.Response.Write
If you want to call selected index changed event manually you can place following code:
DropDownList2_SelectedIndexChanged(this,null);
I think you are trying to achieve a cascaded dropdown. You have a utility class DropDown.CS. Thementhod "Dropdown" is a constrcutor and not a method so its gets called whenever you initialize the class Dropdown. Selected index changed will be called when you cahnge the first dropdown.
Is this helpful ?
Don't know if it helps, but you can also use extension methods to extend functionality of stock classes.
精彩评论