Asp 下拉列表的设置值不起作用

Set value of Asp DropDown List is not Working

我有一个 asp.net DropDownList 用于过滤 RadGrid。应用过滤器后,我可以单击一行以在单独的页面上编辑记录。如果 select 编辑了错误的行,我需要提供以下功能:return 到上一个搜索页面,并使用相同的过滤器显示相同的记录。我已经处理了 return 并显示了相同的过滤记录。

我还需要在创建过滤器时选择的下拉列表中显示相同的值。我正在尝试使用会话变量来执行此操作。会话变量是在搜索点击时创建的,当用户 return 进入搜索页面时,我正在尝试使用此代码从下拉列表中 select 相同的项目。

string value = (Session["ComplaintType"] != null) ? Session["ComplaintType"].ToString() : String.Empty;
                ddlComplaint.Items.FindByValue(value).Selected = true;

它不起作用,我收到此错误消息:对象引用未设置到对象的实例。

不确定为什么我会收到该错误字符串值等于从下拉列表中 select 编辑的项目的文本值??

我能够通过在将数据库绑定到数据库的 BindDropDown 方法中设置下拉列表 selected 值来解决这个问题。绑定后,我可以 select 数据库中的一个值作为默认值。