Раскрывающийся список на gridview обновляет только первое значение в базе данных ASP.Net - PullRequest
0 голосов
/ 08 декабря 2010

Я ищу решение этой проблемы в течение многих дней, пожалуйста, помогите.У меня есть сетка и пять выпадающих списков.У меня есть редактировать обновления и отменить кнопки редактирования в каждой строке.Раскрывающийся список обновляет базу данных, но только первое значение в раскрывающемся списке, даже если пользователь выбирает второе, третье или любое другое значение из раскрывающегося списка.

Что может быть причиной этого.Вот моя строка Edit / CancelEdit и Updating Events.

    protected void gvCustomers_RowEditing(object sender, GridViewEditEventArgs e)
    {
        gvCustomers.EditIndex = e.NewEditIndex;
       BindData();
    }

    protected void gvCustomers_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        gvCustomers.EditIndex = -1;
        BindData();
    }

    protected void gvCustomers_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {           
        Label lblCustId = (Label)gvCustomers.Rows[e.RowIndex].FindControl("cust_id");
        DropDownList ddlCsm = (DropDownList)gvCustomers.Rows[e.RowIndex].FindControl("CSM");
        DropDownList ddlSrCsm = (DropDownList)gvCustomers.Rows[e.RowIndex].FindControl("SrCSM");
        DropDownList ddlDE = (DropDownList)gvCustomers.Rows[e.RowIndex].FindControl("DE");
        DropDownList ddlAE = (DropDownList)gvCustomers.Rows[e.RowIndex].FindControl("AE");
        DropDownList ddlTE = (DropDownList)gvCustomers.Rows[e.RowIndex].FindControl("TE");

        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            try
            {
                conn.Open();
                string sql = "Update SOME_TABLE SET CSM= @CSM, SrCSM= @SrCSM ,DE=@DE,AE=@AE,TE=@TE where cust_id=@cust_id";
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.Add("@CSM", SqlDbType.VarChar).Value = ddlCsm.SelectedItem.Value;

                    cmd.Parameters.Add("@SrCSM", SqlDbType.VarChar).Value = ddlSrCsm.SelectedItem.Value;

                    cmd.Parameters.Add("@AE", SqlDbType.VarChar).Value = ddlAE.SelectedItem.Value;

                    cmd.Parameters.Add("@DE", SqlDbType.VarChar).Value = ddlDE.SelectedItem.Value;

                    cmd.Parameters.Add("@TE", SqlDbType.VarChar).Value = ddlTE.SelectedItem.Value;

                    cmd.ExecuteNonQuery();
                }                 
            }
            catch
            { }
            gvCustomers.EditIndex = -1;
            BindData();
        }        
    }

Любая помощь будет очень полезна.Спасибо

Ответы [ 2 ]

0 голосов
/ 09 декабря 2010

Вероятно, ваши выпадающие значения сбрасываются в вашем событии Page_Load. Если они есть, загрузите их, когда страница не находится в обратной передаче, например:

if(!Page.IsPostBack) {
//set drop downs
}
0 голосов
/ 09 декабря 2010

просто заполните выпадающие списки по нажатию кнопки редактирования, а затем используйте событие rowupdating и используйте ddl.SelectedValue вместо ddl.SelectedItem.Value. Вы найдете выбранные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...