GridView超链接列希望显示XML节点作为链接



我有以下XML文件:

<Employees>
  <Employee>
    <FirstName><a href='profile1.html'>Jon</a></FirstName>
    <Age>22</Age>
  </Employee>
</Employees>

试图做的是将一个名称显示为将用户引导到个人资料页面(网页(的超链接。

用户将名字输入文本字段并单击搜索按钮后,通过GridView显示了XML文件的结果。但是,名字(搜索结果(当前显示为纯文本。

以下是搜索按钮背后的代码:

XDocument document = XDocument.Load(@"C:UsersSammersourcereposMisaImportsMisaImportsdataEmployee.xml");
        var query = from r in document.Descendants("Employee")
                    where ((string)r.Element("FirstName").Value).Contains(txtSearch.Text) || ((string)r.Element("FirstName").Value).ToLower().Contains(txtSearch.Text)
                    select new
                    {
                        FirstName = r.Element("FirstName").Value,
                        //Age = r.Element("Age").Value
                    };
        GridView1.DataSource = query;
        GridView1.DataBind();

...以下描述了我如何设置GridView:

<asp:GridView ID="GridView1" runat="server" 
                          BorderWidth="1px" 
                          CellPadding="2" 
                          EnableModelValidation="True" 
                          ForeColor="white"
                          GridLines="None" 
                          AutoGenerateColumns="False" 
                          EmptyDataText="No records Found">
                          <Columns>
                               <asp:TemplateField HeaderText="Keyword"  ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center">
                          <ItemTemplate>
                              <asp:HyperLink ID="link" runat="server" Text='<%# Eval("FirstName") %>' />
                          </ItemTemplate>
                            </asp:TemplateField> 
                          </Columns>
                        </asp:GridView>

我的问题是,如何将外交部的名字作为超链接?感谢Adavnce提供的任何帮助。

您可以像这样获取Url: -

 select new
         {
            FirstName = r.Element("FirstName").Value,
            Profile = x.Element("FirstName")?.Element("a")?.Attribute("href")?.Value ?? ""
         };

最终以这样的绑定 NavigateUrl属性: -

<asp:HyperLink ID="link" runat="server" Text='<%# Eval("FirstName") %>' 
  NavigateUrl='<%# Eval("profile") %>' />

最新更新