【问题标题】:RadGrid Bind Image from DatabaseRadGrid 绑定数据库中的图像
【发布时间】:2018-07-26 20:18:15
【问题描述】:

我正在使用以下代码将图像从数据库绑定到我的 RadGrid Mastertable 中的 asp:Image 控件。但是我在“ iP.ImageUrl =”~/StreamImage.ashx?Id=" + user;" 行上得到一个空引用异常我不明白为什么它给了我那个 代码如下:

 <asp:Image ID="iPhoto1" runat="server" AlternateText="Profile Picture"    
 />


 protected void btnSearch_Click(object sender, EventArgs e)
    {

 var data = ss.qStudSearch(Common.GetValue(txtName.Text), 
        Common.GetValue(txtResearch.Text), currUser.iProgramID);

        rgSearch.DataSource = data;

        rgSearch.DataBind();


        foreach (GridDataItem d in rgSearch.MasterTableView.Items)
        {

                int user = Convert.ToInt32(d.GetDataKeyValue("upid"));
                var pix = ss.GetPics(user);


                Image iP = 
                (Image)rgSearch.MasterTableView.FindControl("iPhoto1");

            if (pix != null)
            {

                iP.ImageUrl = "~/StreamImage.ashx?Id=" + user;
            }
            else
            {
                iP.ImageUrl = "~/images/no_image.jpg";
            }


           }


       }

getpics 方法从数据库中检索图像,并且当我通过调试检查它时,它正在正确检索它。但是我无法将它分配给 asp:Image 控件。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: c# asp.net gridview nullreferenceexception radgrid


    【解决方案1】:

    很可能iP 为空,或者user 为空。在 iP.ImageUrl 的赋值前放一个断点,检查项目,看看哪个是空的。

    【讨论】:

      【解决方案2】:

      您可以直接使用二进制图像列进行绑定,但数据性能较慢:

      <telerik:GridBinaryImageColumn DataField="image" HeaderText="Photo" AllowFiltering="false" 
           UniqueName="LogoView" ImageAlign="NotSet" ImageHeight="80px" ImageWidth="80px" 
           ResizeMode="Fit" DataAlternateTextField="image">
         <HeaderStyle Width="10%" />
      </telerik:GridBinaryImageColumn>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-27
        • 1970-01-01
        • 1970-01-01
        • 2013-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多