I am retrieving data from database and bind to a gridview & listview controls and here i need to display each "tags"(i.e, comma separated values) as hyperlinks.
- string tags = string.Empty;
- using (DataClass1DataContext DcContext = new DataClass1DataContext())
- {
- GridView1(or)ListView1.DataSource = DcContext.tblArticles
- .Join(DcContext.tblCategories,
- x => x.category,
- y => y.categoryId,
- (x, y) => new { x, y })
- .Join(DcContext.tblSubCategories,
- p => p.x.subcategory,
- q => q.subcategoryId,
- (p, q) => new
- {
- tags = p.x.keywords,
- Article = p.x.articleId,
- Published = p.x.articleDate,
- Title = p.x.title,
- Summary = p.x.description,
- Labels = p.x.keywords,
- Poster = p.x.image,
- Category = p.y.Category,
- Subcategory = q.subcategory,
- });
What I need is?
The tags which i retrieved will need to display as related keywords in the form of hyperlinks and bind to the gridview/Listview.
The tags which i retrieved will need to display as related keywords in the form of hyperlinks and bind to the gridview/Listview.
- <asp:GridView ID="GridView1" runat="server" Width="100%" AutoGenerateColumns="false">
- <Columns>
- <asp:TemplateField>
- <ItemTemplate>
- <asp:Image ID="PosterImg" runat="server" ImageUrl='<%#Eval("Poster") %>' Width="50" Height="50" />
- ItemTemplate>
- asp:TemplateField>
- <asp:BoundField DataField="Published" HeaderText="Published on" />
- <asp:BoundField DataField="Title" HeaderText="Article" />
- <asp:BoundField DataField="Summary" HeaderText="Summary about your articles" />
- <asp:TemplateField>
- <ItemTemplate>
- <asp:PlaceHolder ID="PlaceHolder1" runat="server">asp:PlaceHolder>
- ItemTemplate>
- asp:TemplateField>
- <asp:BoundField DataField="Category" HeaderText="Category" />
- <asp:BoundField DataField="Subcategory" HeaderText="Subcategory" />
- Columns>
- asp:GridView>
- <asp:ListView ID="ListView1" runat="server">
- <ItemTemplate>
- <asp:Image ID="PosterImg" CssClass="thumb" runat="server" ImageUrl='<%#Eval("Poster") %>' Width="120" Height="150" />
- <h4>
- <asp:HyperLink ID="HyperLink2" NavigateUrl='<%#"?p="+Eval("Article") %>' runat="server"><%#Eval("Title") %>asp:HyperLink>
- h4>
- <cite>
- Posted by
- <asp:HyperLink ID="HyperLink3" NavigateUrl='<%#"?user="+Eval("Article") %>' runat="server">Usernameasp:HyperLink>
- under
- <span>
- <asp:HyperLink ID="HyperLink4" NavigateUrl='<%#"?subcategory="+Eval("Subcategory") %>' runat="server"><%#Eval("Subcategory") %>asp:HyperLink>
- ·
- <asp:HyperLink ID="HyperLink5" NavigateUrl='<%#"?category="+Eval("Category") %>' runat="server"><%#Eval("Category") %>asp:HyperLink>
- span>
- on
- <time><%#Eval("Published") %>time>
- cite><br />
- <p>
- <%#Eval("Summary") %>
- p>
- <span>
- <asp:PlaceHolder ID="PlaceHolder1" runat="server">asp:PlaceHolder>
- span>
- ItemTemplate>
- asp:ListView>
What I have tried:
Added a placeholder inside the item template of each control(i.e, GRIDVIEW and LISTVIEW)
and by using LINQ I retrieved it from database and assign it to local string variable.
Added a placeholder inside the item template of each control(i.e, GRIDVIEW and LISTVIEW)
and by using LINQ I retrieved it from database and assign it to local string variable.
- string[] strArray = tags.Split(',');
- foreach (var obj in strArray)
- {
- HyperLink TagLinks = new HyperLink();
- TagLinks.NavigateUrl = "?tags=" + obj;
- TagLinks.Text = obj;
- PlaceHolder PlaceHolder1 = (PlaceHolder)GridView1.FindControl("PlaceHolder1");
- PlaceHolder1.Controls.Add(TagLinks);
- }
I received an error:
Object reference not set to an instance of an object.
How to resolve this?
2 Replies
Know the answer? Post it — somebody with the same question will find it here.
Sign in to answer this question
It is the same account you read, post and publish with — and you will come straight back to this page.
Nigel FernandesPosted Jan 4, 2017, 5:56 PM
Chetan RanpariyaPosted Jan 4, 2017, 5:47 AM