【问题标题】:Gridview Hyperlink column want display xml nodes as a linkGridview 超链接列希望将 xml 节点显示为链接
【发布时间】:2018-02-22 14:21:15
【问题描述】:

我有以下 XML 文件:

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

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

用户在文本字段中输入名字并单击搜索按钮后,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();

...以下描述了我如何设置网格视图:

<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>

我的问题是,如何将名字显示为超链接?非常感谢您提供的任何帮助。

【问题讨论】:

  • 您的代码发生了什么?超链接如何获取名字?具体一点。
  • Rahul Singh - 目前,当单击搜索按钮时,我会从 XML 文件中获得预期的结果;例如,如果我输入 Jon 或存储在 XML 文件中的任何名称,则该名称将通过 Gridview 超链接列返回。现在要做的是让名称作为超链接返回,当单击第一个名称时,该超链接会将用户定向到相应的网站。

标签: c# asp.net xml linq hyperlink


【解决方案1】:

您可以像这样获取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") %>' />

【讨论】:

  • 感谢 Rahul Singh,解决方案运行良好。
猜你喜欢
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-20
相关资源
最近更新 更多