Используя GridView1.DataBind();
и AutoGenerateColumns="true"
, как я могу найти определенный столбец и вместо URL-адреса отображать миниатюру изображения с этого URL-адреса?
GridView создается в результате SQL-запроса, который может возвращать от 2 до 10 столбцов (один из которых может быть URL-адресом изображения).
Я считаю, что для эскиза можно использовать image.GetThumbnailImage()
, но где его использовать в такой ситуации?
Генерация SQL-запроса:
if (CheckBoxUser.Checked) search_fields += "UserName";
if (CheckBoxDate.Checked) search_fields += ",EventDate";
...
if (CheckBoxImageUrl.Checked) search_fields += ",ImageUrl";
SqlConnection conn = new SqlConnection(connectionString);
string select = "SELECT " + search_fields + " FROM TableName";
SqlDataAdapter DataCommand = new SqlDataAdapter(select, conn);
DataCommand.Fill(ds);
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
GridView1 просто:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="True">
<HeaderStyle CssClass="header_grid" />
</asp:GridView>
Нет столбцов, объявленных вручную, поскольку мы не знаем, сколько столбцов пользователь хочет просмотреть. Но если он отмечает столбец «ImageUrl», то вместо пути к сетевому файлу (\somePc\path\file.jpg) ему нужно увидеть миниатюру этого изображения внутри GridView.