如何在 wizardstep中选择项目FindByValue DropDownList
例外:
的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;
...
}
答案 0 :(得分:1)
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;
...
}
答案 1 :(得分:0)
如果null异常是导向无法工作的唯一原因,则附加调试器,然后使用visual studio immediate window系统地浏览每个对象以确定哪个为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