Object reference error
Hi folks: I just started to populate my dropdownlists dynamically and since then although the lists get populated, I get the following error when I click "AddToCart" process command:
Source Error:
Line 121: DropDownList ddlW = (DropDownList)e.Item.FindControl("ddlWidth");
Line 122:
Line 123: Server.Transfer("AddToCart.aspx?ProductID=" + e.CommandArgument.ToString()
Line 124: + "&shoecolor=" +
Line 125: ddlC.SelectedItem.Text +
Source File: c:\inetpub\wwwroot\perrys\shoedetails.aspx.cs Line: 123
_____________________
Here is my code file:
using System;
using System.Collections;
using System.Configuration;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Perrys
{
/// <summary>
/// Summary description for shoeDetails.
/// </summary>
public class shoeDetails : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataList myData;
protected System.Web.UI.WebControls.DropDownList ddlC;
protected System.Web.UI.WebControls.DropDownList ddlS;
protected System.Web.UI.WebControls.Label lblShoeName;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.DropDownList ddlColor;
protected System.Web.UI.WebControls.RequiredFieldValidator ValidateColor;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.DropDownList ddlSize;
protected System.Web.UI.WebControls.RequiredFieldValidator validateSize;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.DropDownList ddlWidth;
protected System.Web.UI.WebControls.RequiredFieldValidator validateWidth;
protected System.Web.UI.WebControls.ImageButton imgBtn;
protected System.Web.UI.WebControls.DropDownList ddlW;
public SqlDataReader fetchReader(string query, string db)
{
SqlConnection cnShoes = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand cmdSelect = new SqlCommand(query, cnShoes);
cnShoes.Open();
return cmdSelect.ExecuteReader (CommandBehavior.CloseConnection);
}
public DataSet fetchData(string query, string db)
{
SqlConnection cnShoes = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlDataAdapter myAdapter = new SqlDataAdapter(query, cnShoes);
DataSet myData = new DataSet();
myAdapter.Fill(myData);
return myData;
}
object fetchScalar(string query, string db)
{
SqlConnection cnShoes = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand cmdSelect = new SqlCommand(query, cnShoes);
cnShoes.Open();
object scalar = cmdSelect.ExecuteReader();
cnShoes.Close();
return scalar;
}
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
string query = "select * from Shoes where ShoeID='" +
Request.QueryString [ "id" ] + "'";
SqlConnection cnShoes = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand cmdSelect = new SqlCommand(query, cnShoes);
cnShoes.Open();
SqlDataReader shoeReader = cmdSelect.ExecuteReader();
if (shoeReader.Read() == true)
{
lblShoeName.Text = shoeReader["ShoeID"].ToString();
if (lblShoeName.Text == "11")
{
ddlColor.Items.Insert(0, "");
ddlColor.Items.Insert(1, "Black");
ddlSize.Items.Insert(0, "");
ddlSize.Items.Insert(1, "8");
ddlSize.Items.Insert(1, "8.5");
}
}
cnShoes.Close();
myData.DataSource = fetchReader ( query, "shoes");
myData.DataBind();
}
private void processCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
if (e.CommandName.Equals("AddToCart"))
{
DropDownList ddlC = (DropDownList)e.Item.FindControl("ddlColor");
DropDownList ddlS = (DropDownList)e.Item.FindControl("ddlSize");
DropDownList ddlW = (DropDownList)e.Item.FindControl("ddlWidth");
Server.Transfer("AddToCart.aspx?ProductID=" + e.CommandArgument.ToString()
+ "&shoecolor=" +
ddlC.SelectedItem.Text +
"&shoesize=" +
ddlS.SelectedItem.Text +
"&shoewidth=" + ddlW.SelectedItem.Text);
}
}
}
}
How do I go about rectifying this? Thanks.
|