1

ウィザードステップでアイテムFindByValueDropDownListを選択する方法

例外:

NullReferenceException
オブジェクト参照がオブジェクトのインスタンスに設定されていません。

C#:

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

    DropDownList DropDownList2 = 
       (DropDownList)Wizard1.WizardSteps[1].FindControl("DropDownList1");

    DropDownList2.Items.FindByValue(
        DataSetLoad.Tables[1].Rows[0]["a"].ToString()).Selected = true;

    ...
}
4

2 に答える 2

1

protected void Page_Load(オブジェクト送信者, EventArgs e) { ...

DropDownList DropDownList2 = 
   (DropDownList)Wizard1.WizardSteps[1].FindControl("DropDownList1");
DropDownList2.DataBind();
DropDownList2.Items.FindByValue(
    DataSetLoad.Tables[1].Rows[0]["a"].ToString()).Selected = true;

...

}

于 2012-05-13T12:41:04.243 に答える
0

null 例外がウィザードが機能しない唯一の理由である場合は、デバッガーをアタッチし、ビジュアル スタジオのイミディエイト ウィンドウを使用して、各オブジェクトを体系的に調べて、どれが null であるかを判断します。

たとえば Wizard1.WizardSteps[1].FindControl("DropDownList1")、コントロールが見つからない場合は null を返すことがあります。このような場合は、なぜ自分のコントロールが見つからないのかを尋ねることができます。

アップデート:

あなたが提供したコードに基づいて、変数 DropDownList1 を直接使用していない理由はありますか? それ以外の:

DropDownList DropDownList2 = 
   (DropDownList)Wizard1.WizardSteps[1].FindControl("DropDownList1");

DropDownList2.Items.FindByValue(
    DataSetLoad.Tables[1].Rows[0]["a"].ToString()).Selected = true;

なぜ使用しないのですか:

  DropDownList1.Items.FindByValue(
    DataSetLoad.Tables[1].Rows[0]["a"].ToString()).Selected = true;

FindControl上記の提案は、メソッドが正常に検出されなかったために元の問題 (null 参照) が発生したという仮定に基づいています。DropDownList1

于 2012-05-13T09:16:07.540 に答える