如何选择项目,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;
...
}
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