Използвайки 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.