我试图在网格视图中显示图像,我看到了其他答案并尝试了它们,但它们似乎不适用于我的方法。我使用aspsnippets上找到的这种方法填充gridview。我的代码被修改为从我的mongoDB数据库中填充gridview,但是只有文本,这只是我的代码片段,对不起,如果它不足以理解我在做什么。它所说的任何地方" text"是不重要的,只是一个已经正确填充的专栏。
<asp:GridView ID="GridMultiD" runat="server"
AutoGenerateColumns = "false" Font-Names = "Arial"
Font-Size = "11pt" AlternatingRowStyle-BackColor = "#C2D69B"
HeaderStyle-BackColor = "green" AllowPaging ="true"
PageSize = "10" Caption = "Multi-Dimensional Array" >
<Columns>
<asp:BoundField ItemStyle-Width = "150px"
DataField = "Name" HeaderText = "Name" />
<asp:BoundField ItemStyle-Width = "150px"
DataField = "Age" HeaderText = "Age" />
<asp:BoundField ItemStyle-Width = "150px"
DataField = "City" HeaderText = "City" />
<asp:BoundField ItemStyle-Width = "150px"
DataField = "Country" HeaderText = "Country" />
</Columns>
</asp:GridView>
C#代码
string[,] arrMultiD = {
{ "John", "21", "Berlin", "Germany" },
{ "Smith", "33" ,"London", "UK"},
{ "Ryder", "15" ,"Sydney", "Australia"},
{ "Jake", "18", "Tokyo", "Japan"},
{ "Tom","34" , "Mumbai", "India"}
};
DataTable dt = new DataTable();
dt.Columns.Add("Name", Type.GetType("System.String"));
dt.Columns.Add("Age", Type.GetType("System.String"));
dt.Columns.Add("City", Type.GetType("System.String"));
dt.Columns.Add("Country", Type.GetType("System.String"));
for (int i = 0; i < 5; i++)
{
dt.Rows.Add();
dt.Rows[dt.Rows.Count - 1]["Name"] = arrMultiD[i, 0];
dt.Rows[dt.Rows.Count - 1]["Age"] = arrMultiD[i, 1];
dt.Rows[dt.Rows.Count - 1]["City"] = arrMultiD[i, 2];
dt.Rows[dt.Rows.Count - 1]["Country"] = arrMultiD[i, 3];
}
GridMultiD.DataSource = dt;
GridMultiD.DataBind();
我修改了以填充某些列中的文本,而我希望的是其他人的图像。像这样的东西
DataTable dt = new DataTable();
dt.Columns.Add("text");
dt.Columns.Add("text");
dt.Columns.Add("text");
dt.Columns.Add("text");
dt.Columns.Add("text");
dt.Columns.Add("text");
dt.Columns.Add("Trend1");
dt.Columns.Add("text");
dt.Columns.Add("Trend2");
dt.Columns.Add("text");
dt.Columns.Add("Trend3");
dt.Columns.Add("text");
dt.Columns.Add("text");
dt.Columns.Add("Trend4");
dt.Columns.Add("text");
dt.Columns.Add("Trend5");
dt.Columns.Add("text");
dt.Columns.Add("Trend6");
dt.Columns.Add("text");
dt.Columns.Add("text");
int counter = 0;
foreach (string[] arr in verList)
{
dt.Rows.Add();
if (arr[counter] == "↑")
{
dt.Rows[dt.Rows.Count - 1]["Trend1"] = "<IMG SRC=\"up.jpg\" ALT=\"Up\">";
}
else if (arr[counter] == "↓")
{
dt.Rows[dt.Rows.Count - 1]["Trend1"] = "<IMG SRC=\"down.jpg\" ALT=\"Down\">";
}
else
dt.Rows[dt.Rows.Count - 1]["Trend1"] = "<img src=\"NoChange.jpg\" alt=\"NoChange\" style=\"width:36px;height:36px;\">";
counter++;
if (arr[counter] == "↑")
{
dt.Rows[dt.Rows.Count - 1]["Trend2"] = "<img src=\"up.jpg\" alt=\"Up\" style=\"width:36px;height:36px;\">";
}
else if (arr[counter] == "↓")
{
dt.Rows[dt.Rows.Count - 1]["Trend2"] = "<img src=\"down.jpg\" alt=\"Down\" style=\"width:36px;height:36px;\">";
}
else
dt.Rows[dt.Rows.Count - 1]["Trend2"] = "<img src=\"NoChange.jpg\" alt=\"NoChange\" style=\"width:36px;height:36px;\">";
counter++;
counter = 0;
}
GridMultiD.PageSize = dt.Rows.Count;
GridMultiD.DataSource = dt;
GridMultiD.DataBind();
但我只是在gridview单元格中将HTML代码作为文本获取,但我确保图像在那里,因此路径是正确的。我已经尝试过其他方法,我发现这些方法可以解决其他问题,但对我来说并不算什么。任何建议将不胜感激!
答案 0 :(得分:0)
您可以尝试将模板字段列添加到gridview,并将Image控件添加到此模板,然后将图像的路径指定给Image控件属性。我现在无法访问代码,只是谷歌如何将模板字段列添加到gridview