Как связать выпадающий список Gridview и как я могу получить выбранное значение в asp.net - PullRequest
0 голосов
/ 23 июня 2011

У меня есть разработанное веб-приложение asp.net, в котором у меня есть элемент управления gridview, когда я загружаю форму gridview, заполняющую данные, которые поступают из базы данных sqlserver. В этом gridview у меня выпадающий список, когда я нажимаю на редактируемую формувыбрал значения из выпадающего списка и сохранил в базе данных, но выпадающее значение всегда принимает первое значение индекса не принимает выбранное значение, пожалуйста, помогите мне .... как я могу решить эту проблему, я опубликовал здесь свой код, что я для этого сделал.

    protected void grd_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
            TextBox txt = null;
            TextBox clientpmtdate = null;
            TextBox amt = null;
            TextBox PaymentID = null;
       try
            {
                clientpmtdate = ((TextBox)(grdviewPayments.Rows[e.RowIndex].FindControl("txtEditpmtdate")));
                int ddldmthd = Convert.ToInt32(((DropDownList)(grdviewPayments.Rows[e.RowIndex].FindControl("ddldebitmethodedit"))).SelectedValue);
                int ddlpmtype = Convert.ToInt32(((DropDownList)(grdviewPayments.Rows[e.RowIndex].FindControl("ddlpmttypeedit"))).SelectedValue);
                txt = ((TextBox)(grdviewPayments.Rows[e.RowIndex].FindControl("txtEditmtrsvrdate")));
                amt = ((TextBox)(grdviewPayments.Rows[e.RowIndex].FindControl("txtEditammount")));
                PaymentID = ((TextBox)(grdviewPayments.Rows[e.RowIndex].FindControl("txtEditPaymentID")));

                string clienteditpmtdate = clientpmtdate.Text;
                // string debitmethod = ddldmthd.SelectedItem.Value;
                //string pmttype = ddlpmtype.SelectedItem.Value;
                string txtEditmtrsvrdate = txt.Text;
                string txtEditammount = amt.Text;
                string txtEditPaymentID = PaymentID.Text;
                int pmtid = Convert.ToInt32(txtEditPaymentID);
                string pmtcmnts = txtpmtcmnts.Text;
                if (txtEditPaymentID != null)
                {
                    var Editpmt = (from k in mortgageentity.Payments where k.Pmt_ID == pmtid select k).First();
                    Editpmt.Client_Pmt_Date = Convert.ToDateTime(clienteditpmtdate);
                    Editpmt.MtgSvr_Pmt_Start_Date2 = txtEditmtrsvrdate;
                    Editpmt.Amt = Convert.ToDecimal(txtEditammount);
                    Editpmt.Pmt_Comments = pmtcmnts;
                    Editpmt.Payment_Type_ID = ddlpmtype;
                    Editpmt.Debit_Method_ID = ddldmthd;
                    mortgageentity.SaveChanges();
                }
                grdviewPayments.EditIndex = -1;
                //  bindGrid(e.RowIndex + 1, txt.Text);
                //bindGrid(0, null);
                BindData();
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
            finally
            {
                if (txt != null) txt = null;
            }

    }

Ответы [ 2 ]

0 голосов
/ 23 июня 2011

Вы включаете свойство обратной передачи DropdownList?Если нет, тогда установите Postback = True.Вы кодируете правильно.

0 голосов
/ 23 июня 2011

Установить индекс выпадающего меню в RowEditing:

protected void grdviewPayments_RowEditing(object sender, GridViewEditEventArgs e)
{
    grdviewPayments.EditIndex = e.NewEditIndex;

    GridViewRow editingRow = grdviewPayments.Rows[e.NewEditIndex];

    DropDownList ddl = (editingRow.FindControl("ddlS") as DropDownList);
    if (ddl != null)
    {
        //set index
    }


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