3

我不断收到此错误,不知道为什么。我用谷歌搜索并扫描了 asp.net 网站两天,所以我需要一些帮助。错误是:

Object reference not set to an instance of an object

这是我的代码:

DropDownList DropDownList1 =(DropDownList)ListView1.InsertItem.FindControl("DropDownList1");

string highToLow = DropDownList1.SelectedValue;
string lowToHigh = DropDownList1.SelectedValue;

if (highToLow == "1")
{
    var exmapleFilter = from users in testEntities.users 
                        orderby users.id descending
                        select users;

    ListView1.DataBind();
}

我将下拉列表的值设置为 1 表示高,2 表示低,并且在选定的索引发生更改时,我想运行 ADO.net 实体框架代码以返回排序的数据列表。

我目前正在使用 linq 数据源和列表视图来显示我的数据库中的内容。

谢谢。

编辑:

这是堆栈跟踪

   System.NullReferenceException was unhandled by user code
   Message=Object reference not set to an instance of an object.
   Source=App_Web_s0ked5y3

   StackTrace:
   at Default.DropDownList1_SelectedIndexChanged(Object sender, EventArgs e)
   in Default:line 120

   at System.Web.UI.WebControls.ListControl.OnSelectedIndexChanged(EventArgs e)

   at System.Web.UI.WebControls.DropDownList.RaisePostDataChangedEvent()

   at System.Web.UI.WebControls.DropDownList.System.Web.UI.IPostBackDataHandler.
   RaisePostDataChangedEvent()

   at System.Web.UI.Page.RaiseChangedEvents()

   at System.Web.UI.Page.ProcessRequestMain(Boolean 
   includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   InnerException: 
4

3 回答 3

3

检查您的列表视图中是否有

<InsertItemTemplate>
   ....          
   <asp:DropDownList ID="DropDownList1" runat="server" />
   .... 

ListView1.InsertItem.FindControl("DropDownList1");
于 2012-07-05T20:19:38.280 回答
0

“对象引用未设置为对象的实例”异常通常发生在您尝试使用值为 null 的引用变量时。这意味着堆上没有对应的对象。

因此,请确保仔细检查您的模板并在 pageload 事件中加载所有值。

希望能帮助到你。

于 2012-07-05T20:34:19.563 回答
0

基于他们没有堆栈跟踪,我怀疑是行:

DropDownList DropDownList1 =
    (DropDownList)ListView1.InsertItem.FindControl("DropDownList1");

导致 oObject 引用未设置为对象的实例

一个强有力的理由:名为 InsertItem 的控件不是 ListView1 的子控件

于 2012-07-05T20:18:31.377 回答