我一直收到这个错误并且不知道为什么。我用谷歌搜索并扫描了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 Entity Framework代码以返回已排序的数据列表。
我目前正在使用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:
答案 0 :(得分:3)
检查列表视图中是否有
<InsertItemTemplate>
....
<asp:DropDownList ID="DropDownList1" runat="server" />
....
与
相关联ListView1.InsertItem.FindControl("DropDownList1");
答案 1 :(得分:0)
基于他们的无堆栈跟踪,我的疑问是这条线:
DropDownList DropDownList1 =
(DropDownList)ListView1.InsertItem.FindControl("DropDownList1");
导致oObject引用未设置为对象的实例
一个强有力的原因:名为InsertItem的控件不是ListView1的子控件
答案 2 :(得分:0)
“对象引用未设置为对象的实例”异常通常在您尝试使用其值为null的引用变量时发生。这意味着堆上没有相应的对象。
因此,请务必仔细检查您的模板并加载pageload事件中的所有值。
希望它有所帮助。