如何选择项目,DropDownList1.Items.FindByValue(“-”).在向导步骤中选择?异常:空引用异

本文关键字:选择 向导 引用 异常 项目 何选择 DropDownList1 Items FindByValue | 更新日期: 2023-09-27 18:34:11

如何在向导步骤中选择项目 FindByValue DropDownList

例外:

空引用异常
对象引用未设置为对象的实例。

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

如何选择项目,DropDownList1.Items.FindByValue(“-”).在向导步骤中选择?异常:空引用异

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

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

}

如果 null 异常是向导无法正常工作的唯一原因,请附加调试器,然后使用 Visual Studio 即时窗口系统地遍历每个对象,以确定哪个对象为 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方法未成功找到DropDownList1