2011-06-23 13 views
0

私はグリッドビューのコントロールを持っていることでasp.net webapplicationを開発しています。 sqlserverデータベース。そのgridview私は私がドロップダウンから値を選択し、データベースに保存されているが、ドロップダウン値は常に最初のインデックス値を取る選択した値を取るフォームを編集クリックしてドロップダウンを持っています。私はこれを解決することができますか?Gridviewドロップダウンをバインドする方法とドロップダウンを取得する方法asp.netのドロップダウン値を選択

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; 
      } 

    } 

答えて

0

は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 
    } 


} 
+0

こんにちは..データを更新するための行編集ですべての更新コードを書きますか? –

+0

私は更新のためのドロップダウン選択された値を取得したい... –

+0

は、ドロップダウンのコードとそのデータソースを貼り付けます – Saurabh

0

あなたはDropDownListコントロールのポストバックプロパティを有効にするには? IF NoにPostback = Trueを設定します。あなたがコーディングしているのは です。

+1

pageloadイベントで応答を与えてくれてありがとうif(!Page.IsPostBack){}を設定しても、ドロップダウン値の唯一の最初のインデックスが得られます。 –

+0

ドロップダウンは静的か動的か –

関連する問題