Используя 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.