ошибка при привязке datalist со значением из ddl

#asp.net #drop-down-menu

#asp.net #выпадающее меню

Вопрос:

У меня был ddl в datalist, и когда я попытался привязать datalist со значением из ddl, эта ошибка появилась (ссылка на объект не установлена …) здесь DDLProduct.Выбранный индекс

 public DropDownList DDLProduct;

    protected void Page_Load(object sender, EventArgs e)
    {
     }

 protected void DLProduct_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            DDLProduct = e.Item.FindControl("DDlProduct") as DropDownList;
            DDLProduct.Items.Insert(0, new ListItem("Swithch Model", "0"));
        }

    }
  protected void DDlProduct_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (DDLProduct.SelectedIndex > 0)
        {
            using
            (SqlConnection conn = Connection.GetConnection())
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "SP_GetProductsByProductID";
                SqlParameter ParentID_Param = cmd.Parameters.Add("@ProductID", SqlDbType.Int);
                ParentID_Param.Value = DDLProduct.SelectedValue;
                ;
                DataTable dt = new DataTable();
                SqlDataAdapter da = new SqlDataAdapter();
                da.SelectCommand = cmd;
                da.Fill(dt);
                DLProduct.DataSource = dt;
                DLProduct.DataBind();

            }
        }
    }
  

Комментарии:

1. Полное исключение и генерирующая строка были бы полезны, так же как и определения aspx.

Ответ №1:

Я думаю, что ваша проблема здесь:

 DDLProduct = e.Item.FindControl("DDlProduct") as DropDownList;
  

Какова цель этой строки?

У вас уже есть ссылка на этот элемент управления «DDLProduct»

редактировать — без фактического исключения и т.д. Я только предполагаю.

Ответ №2:

Какая строка выдает ошибку?

Просто предположение, но попробуйте

 DDLProduct = sender as DropDownList;