i am trying to fetch images from a website by typing the website link in a text box and then click on fetch button, then i bind them with my gridview. That gridview contains images, checkboxes, a submit button out side the gridview. here is my code for grid view and code behind:
<asp:TextBox ID="txt_link" runat="server" CssClass="form-control"></asp:TextBox>
<span class="input-group-btn">
<asp:Button ID="btn_load" runat="server" Text="Load Values!"
CssClass="btn btn-info" onclick="btn_load_Click" />
<asp:GridView ID="GridView1" CssClass="table table-responsive table-condensed" runat="server"
AutoGenerateColumns="False" OnRowCommand="GridView1_RowCommand" OnRowDeleting="GridView1_RowDeleting"
OnRowEditing="GridView1_RowEditing">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
S No
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" CssClass="ItemSize" />
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
img
</HeaderTemplate>
<ItemTemplate>
<asp:Image ID="Image" runat="server" ImageUrl='<%# Container.DataItem %>' />
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" CssClass="ItemSize" />
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
Product Link
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chebx" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Code Behind:
protected void btn_load_Click(object sender, EventArgs e)
{
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load(txt_link.Text);
var rateNode1 = from info in doc.DocumentNode.SelectNodes("//div[@class='ui-box ui-box-normal product-custom-desc']")
from linkee in info.SelectNodes("//img").Where(x=>x.Attributes.Contains("src"))
select new
{
linkee.Attributes["src"].Value
};
List<String> images = new List<string>(rateNode1.Count());
foreach (var a in rateNode1)
{
result = a.Value;
images.Add(result.Substring(0,result.Length-10));
}
GridView1.DataSource = images;
GridView1.DataBind();}
Up to here it worked fine. And for saving to local folder here is the code:
var folder = Server.MapPath("~/assets/" + txt_orig_id.Text);
string filePath="";
if (!Directory.Exists(folder))
{
Directory.CreateDirectory(folder);
filePath = folder;
}
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chk = (CheckBox)row.FindControl("chebx");
Image img = row.FindControl("Image") as Image;
if (chk.Checked)
{
Response.ContentType = ContentType;
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath));
Response.WriteFile(filePath);
Response.End();
}
else {
}
}
but the main issue is it shows that none of the check box is checked. please tell me whats wrong in my code