日期:2014-05-18  浏览次数:20406 次

用户控件中GridView模板列中image控件图片地址赋值问题
我在一个用户控件中放置了一个GridView,GridView有一个模板列,其中有一个image控件,我想让用户调用这个控件的时候给image
控件的图片地址赋值.代码如下:
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" OnRowDataBound="gv_RowDataBound">
  <Columns>
  <asp:BoundField DataField="strdate" />
  <asp:TemplateField>
  <ItemTemplate>
  <asp:Image ID="img1" runat="server" />
  <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("link", "{0}") %>'
  Text='<%# Eval("title") %>'></asp:HyperLink>
  </ItemTemplate>
  </asp:TemplateField>
  </Columns>
</asp:GridView>

cs文件中赋值语句如下:
protected string imageSrc;
  public string ImageSrc
  {
  get
  {
  return imageSrc;
  }
  set
  {
  imageSrc = value;
  ((Image)gv.FindControl("img1")).ImageUrl = imageSrc;
   
  }
  }

运行时报错,"未将对象引用设置到对象的实例"
请问这种问题怎么解决.谢谢

------解决方案--------------------
运行时报错,"未将对象引用设置到对象的实例" 

這個錯誤是你沒把值傳給某個控件,或者傳值錯誤

------解决方案--------------------
((Image)gv.FindControl("img1")).ImageUrl = imageSrc; 
你的Image是模板列里面的啊,是GridView的每一行都有的!
如果你是想让用户设置当前选中行的Image,就((Image)gv.SelectedRow.FindControl("img1")).ImageUrl = imageSrc;
------解决方案--------------------

跟一下程序就知道了....


try
{
((Image)gv.FindControl("img1")).ImageUrl = imageSrc;
}
catch(Exception ex)
{
MessageBox.Show(ex.message);
}