【发布时间】:2011-11-12 18:17:12
【问题描述】:
我有下一个错误:
System.NullReferenceException – 对象引用未设置为对象的实例。
到下一个代码:
<asp:ListView ID="LV1" runat="server" DataSourceID="LinqDataSource">
<ItemTemplate>
<asp:Image ID="Image1" Width="100px" Height="100px" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' />
//....and so on till the
</asp:ListView>
后面的代码:
protected void checkTheImage()
{
((Image)LV1.FindControl("Image1")).ImageUrl = "(noImage.jpg)" ;
}
以及 page_load 上的代码:
protected void Page_Load(object sender, EventArgs e)
{
checkTheImage();
}
为什么我得到了错误?我的代码有什么问题?
【问题讨论】:
-
我的猜测是,当您调用
checkTheImage()时,ListView 数据绑定实际上并没有发生(即为时过早)。您可以使用在页面生命周期后期发生的事件(例如 Page_PreRender)来快速测试这一点。编辑:再想一想,这可能还为时过早,而是尝试处理 ListView.Databound 事件,并在那里尝试您的代码。 -
我同意 Daniel B 的观点。你应该阅读this
-
当我编写 Page_PreRender 时问题解决了。伟大的 !谢谢
标签: c# asp.net listview findcontrol