【问题标题】:How to make string appear as hyperlink in Html Table using C# [duplicate]如何使用 C# 使字符串在 Html 表中显示为超链接 [重复]
【发布时间】:2019-12-21 03:14:12
【问题描述】:

我正在用 html 编写一个网页(后端使用 C#),它显示了从 HtmlTable 中的 API 调用的对象列表 (EventJOINEventDate)。每个事件具有以下属性:日期、名称、描述、地址 1、地址 2、城市、州、邮编、事件 URL、注册 URL 和邀请 URL。最后 3 个是链接,我希望表格将这些显示为链接而不是字符串。我怎样才能做到这一点? 顺便说一句,我正在使用 Panel1 来展示表格。

List<EventJOINEventDate> EventList = (List <EventJOINEventDate>)serializer.Deserialize(strresult, typeof(List<EventJOINEventDate>));
    foreach(EventJOINEventDate obj in EventList)
    {
        DateTime StartDateTime = obj.StartDateTime;
        string EventName = obj.EventName;
        string EventDesc = obj.EventDesc;
        string Address1 = obj.Address1;
        string Address2 = obj.Address2;
        string City = obj.City;
        string State = obj.State;
        string Zip = obj.Zip;
        string EventURL = obj.EventURL;
        string RegistrationURL = obj.RegistrationURL;
        string InvitationURL = obj.InvitationURL;
    }
    TestFunc(EventList);
    Panel1.Visible = true;
}
public void TestFunc(List<EventJOINEventDate> events)
{
    HtmlTable table = new HtmlTable();
    table.Rows.Add(AddFirstRow());
    foreach (EventJOINEventDate item in events)
    {
        table.Rows.Add(AddRow(item));
    }
    Panel1.Controls.Add(table);
}
public HtmlTableRow AddRow(EventJOINEventDate item)
{
    HtmlTableRow result = new HtmlTableRow();
    result.Cells.Add(new HtmlTableCell() { InnerText = item.StartDateTime.ToString() });
    result.Cells.Add(new HtmlTableCell() { InnerText = item.EventName });
    result.Cells.Add(new HtmlTableCell() { InnerText = item.EventDesc });
    result.Cells.Add(new HtmlTableCell() { InnerText = item.Address1 });
    result.Cells.Add(new HtmlTableCell() { InnerText = item.Address2 });
    result.Cells.Add(new HtmlTableCell() { InnerText = item.City });
    result.Cells.Add(new HtmlTableCell() { InnerText = item.State });
    result.Cells.Add(new HtmlTableCell() { InnerText = item.Zip });
    result.Cells.Add(new HtmlTableCell() { InnerText = item.EventURL });
    result.Cells.Add(new HtmlTableCell() { InnerText = item.RegistrationURL });
    result.Cells.Add(new HtmlTableCell() { InnerText = item.InvitationURL });
    return result;
}
public HtmlTableRow AddFirstRow()
{
    HtmlTableRow result = new HtmlTableRow();
    result.Cells.Add(new HtmlTableCell() { InnerText = "Date" });
    result.Cells.Add(new HtmlTableCell() { InnerText = "Event Name" });
    result.Cells.Add(new HtmlTableCell() { InnerText = "Event Description" });
    result.Cells.Add(new HtmlTableCell() { InnerText = "Address1" });
    result.Cells.Add(new HtmlTableCell() { InnerText = "Address2" });
    result.Cells.Add(new HtmlTableCell() { InnerText = "City" });
    result.Cells.Add(new HtmlTableCell() { InnerText = "State" });
    result.Cells.Add(new HtmlTableCell() { InnerText = "Zip" });
    result.Cells.Add(new HtmlTableCell() { InnerText = "EventURL" });
    result.Cells.Add(new HtmlTableCell() { InnerText = "RegistrationURL" });
    result.Cells.Add(new HtmlTableCell() { InnerText = "InvitationURL" });
    return result;
}

【问题讨论】:

    标签: c# html html-table hyperlink


    【解决方案1】:

    而不是

    result.Cells.Add(new HtmlTableCell() { InnerText = item.EventURL });
    

    HtmlTableCell 中创建一个HtmlAnchor,类似这样

    var eventLink = new HtmlAnchor() { Href = item.EventURL, InnerHtml = item.EventURL };
    var eventCell = new HtmlTableCell();
    eventCell.Controls.Add(eventLink);
    result.Cells.Add(eventCell);
    

    对每个链接执行相同的模式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      • 2017-04-12
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多