我有以下XML文件:
<Employees>
<Employee>
<FirstName><a href='profile1.html'>Jon</a></FirstName>
<Age>22</Age>
</Employee>
</Employees>
尝试做的是将FirstName显示为指向用户到个人资料页面(网页)的超链接。
用户在文本字段中输入第一个名称并单击搜索按钮后,将通过gridview显示XML文件的结果。但是,第一个名称(搜索结果)当前显示为纯文本。
以下是搜索按钮背后的代码:
XDocument document = XDocument.Load(@"C:\Users\Sammer\source\repos\MisaImports\MisaImports\data\Employee.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>
我的问题是,如何将第一个名称作为超链接显示?非常感谢您提供任何帮助。
答案 0 :(得分:0)
您可以像这样获取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") %>' />