2011-12-26 7 views
0

ドロップダウンリストの選択値に応じて、テキストボックスに値を割り当てたいとします。しかし、私は、これはDataGridviewのコントロールに値を割り当てます。

ここ

「オブジェクト参照がオブジェクトのインスタンスに設定されていません」エラーを取得しようとは、私のコードです:

foreach (GridViewRow gvr in cgvRequest.Rows) 
{ 
    //Programmatically access the CheckBox from the TemplateField 

    //CheckBoxField chk = (CheckBoxField)gvr.FindControl("chkMark"); 
    Label lbl = (Label)gvr.FindControl("lblRequestAmount"); 

    TextBox _txtAmount = (TextBox)cgvRequest.FindControl("txtAmount"); 

    lbl.Text = Convert.ToString(
        requestinfo.ElementAt(gvr.RowIndex).AmountRequested); 

    DropDownList ddl = new DropDownList(); 
    ddl = (DropDownList)cgvRequest.FindControl("ddlApprovalType"); 

    ddl.SelectedValue = "A"; 
    _txtAmount.Text = lbl.Text; 
} 
+2

どのラインでエラーが表示されますか? – TheBoyan

+0

最後の2行にエラーが表示されます – DawitAB

答えて

0

IFあなたのテキストボックス「txtAmount」とDropDownList "ddlApprovalType"がグリッドビューの行にある場合、なぜそれをグリッドビューから取得しようとしていますか? ラベル "lblRequestAmount"に使用しているのと同じコードを使用する必要があります。 TextBox _txtAmount = (TextBox)gvr.FindControl("txtAmount"); 問題が解決しない場合は、教えてください。このエラーが発生している行のようないくつかの詳細を投稿してください。グリッドビューのデザイナーコードも投稿してください。

+0

dropdownlistとtextboxの値を割り当てようとしたときにエラーが発生しました。それが最後の2行です。 – DawitAB

+0

Bojanソリューションを試しましたか?それは動作するはずです。 – Alok

2

あなたは

「オブジェクト参照がオブジェクトのインスタンスに設定されていません」になっている理由は、コントロール(DropDownListコントロールおよび/またはテキストボックス)を設定しようとしているということですプロパティはnullです。つまり、FindControl()メソッドでは見つかりません。

私はあなたのコードをデバッグすることができないので、私はこれを仮定していますが、それはデータグリッド上で行にはなくFindControlを呼び出しているためです。

はにあなたのコードを変更してみてください:

TextBox _txtAmount = (TextBox)gvr.FindControl("txtAmount"); 

DropDownList ddl = new DropDownList(); 
ddl = (DropDownList)gvr.FindControl("ddlApprovalType"); 
0

Label.textが値を取得するか、テキストボックスに値を割り当てることnull.Afterです確認してください。

最後の2行からエラーが発生しました。

私はあなたのコードの完全なコード、グリッドビューデザイナーコードだけでなく、イベントを投稿することができますか?

実際に何をしようとしていますか?

+1

これをお読みください:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work。あなたはまだ答えを受け入れる方法を発見していないようです。 – RajeshKdev

関連する問題