将图像加载到 Gridview
Posted
技术标签:
【中文标题】将图像加载到 Gridview【英文标题】:Load image to Gridview 【发布时间】:2013-12-17 22:13:16 【问题描述】:我整天都在想办法解决这个问题。我正在尝试使用 3 列中的 SQL 数据加载 GridView,然后将图像动态添加到第 4 列。 SQL 中的数据加载良好,但无论我做什么,我都无法加载图像。这是我的代码:
SqlCommand cmd1 = new SqlCommand("StoredProc", myConnection1);
cmd1.CommandType = CommandType.StoredProcedure;
SqlDataReader reader = cmd1.ExecuteReader();
while (reader.Read())
if (reader["ServiceStatus"].ToString().ToLower() == "stopped")
ImageField status = new ImageField();
status.HeaderText = "Status";
status.Visible = true;
GridView1.Columns.Add(status);
status.DataAlternateTextFormatString = @"~/Images/Image.gif";
GridView1.DataSource = reader;
GridView1.DataBind();
我已尝试创建一个数据表并对其进行填充,但它仍然无法正常工作。我知道必须有一个简单的方法来做到这一点。我错过了什么?
编辑:
我现在正在使用 TemplateField,并且我正在显示一个默认图像:
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl="~/Images/greydot.jpg"/>
</ItemTemplate>
</asp:TemplateField>
那么我应该如何在后面的代码中引用这个 ImageURL 以更改该图像?图像存储在解决方案中,而不是存储在 SQL 中。
【问题讨论】:
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。 您可能还需要设置 DataImageUrlField 才能显示任何图像,然后在 DataAlternateTextFormatString (MSDN usage example) 中设置格式字符串。跨度> 【参考方案1】:您可以将路径存储在数据库中,也可以动态地提供相应图像的路径。像这样:
ImageUrl='<%#Eval("ProductImage")
【讨论】:
我曾想过这样做,但这应该是一个动态的网格视图,它根据状态显示图像。我讨厌一张只有 3 张图片的桌子。如果我别无选择,我会沿着那条路走,但必须有另一条路。【参考方案2】:protected void gvUserProfile_DataBound(object sender, EventArgs e)
if ( e.Row.RowType == DataControlRowType.DataRow )
// set reference to current data record
// use IDataRecord if you bind to a DataReader, and DataRowView if you bind to a DataSet
DataRowView dataRow = ( DataRowView ) e.Row.DataItem;
string myflag = dataRow [ "yourColumnNameHere" ].ToString ( );
if ( myflag == "0" )
// do something amusing here
2 - 如果您在 RowDataBound 上实例化任何新控件(例如您的 ImageButton ),则必须将实例化的控件添加到单元格的 Controls 集合中。类似的东西
e.Row.Cells [ 0 ].Controls.Clear ( );
ImageButton img = new ImageButton ( );
img.ImageUrl = "~/images/editGray.gif";
e.Row.Cells [ 0 ].Controls.Add ( img );
【讨论】:
以上是关于将图像加载到 Gridview的主要内容,如果未能解决你的问题,请参考以下文章
从 HTML 将图像加载到 UITextview/WKWebView