我有一个表单视图,其中有一个asp:Image
控件:
<asp:FormView runat="server" ID="ListStories" DefaultMode="ReadOnly" >
<ItemTemplate>
<table>
<tr><td><%#Eval("Subject") %></td></tr>
<tr><td><%#Eval("Story") %></td></tr>
<tr><td><%#Eval("UserName")%></td></tr>
<tr><td><asp:Image ID="ImageAuthor" runat="server" /></td></tr>
</table>
</ItemTemplate>
</asp:FormView>
我正在尝试从代码后面设置ImageUrl
属性,如下所示:
Image imageAuthor = (Image)ListStories.FindControl("ImageAuthor") as Image;
conn = new SqlConnection(connString);
cmdStories = new SqlCommand("SELECT Stories.UserName, Stories.Subject, Stories.Story, UserProfile.Photo FROM Stories INNER JOIN UserProfile ON Stories.UserName=UserProfile.UserName", conn);
conn.Open();
reader = cmdStories.ExecuteReader();
while (reader.Read())
{
string userName = reader["UserName"].ToString();
imageAuthor.ImageUrl = "~/ImageHandler.ashx?name"+userName ;
}
ListStories.DataSource = reader;
ListStories.DataBind();
conn.Close();
但它给了我一个错误:
Object reference not set to an instance of an object.
我哪里出错了? 感谢名单
答案 0 :(得分:0)
你可以调试吗? 当一个对象为null并且您尝试从中调用某些内容时,会显示此错误。 通过检查conn字符串来查看conn是否正常 imageAuthor也可以为null ... 尝试从“(Image)ListStories.FindControl(”ImageAuthor“)中删除”as Image“作为Image” 你已经将它投射到Image,不需要“as” “as Image”提升了对象为null的机会