【发布时间】:2017-12-25 14:36:51
【问题描述】:
我需要向 radgrid 中的表格单元格添加多个超链接,以便用户可以单击链接将他们重定向到另一个页面。网格的数据源是一个域,其中包含每个客户的链接列表。
public class CustomerOverviewDomain
{
public CustomerEntity Entity { get; set; }
public IEnumerable<LeadDomain> Leads { get; set; }
public IEnumerable<QualifiedLeadsDomain> QualifiedLeads { get; set; }
public IEnumerable<ProspectDomain> Prospects { get; set; }
public List<string> Links
{
get
{
//NavigateUrl = '<%# "~/Reporting/SalesProposal/ProposalDownload.aspx?proposalId="+Eval("entity.ProposalId") %>' >
List<string> Links = new List<string>();
foreach (LeadDomain lead in Leads)
{
string link = "~/LeadsManagement/Leads/LeadsDetail.aspx?leadId=" + lead.entity.LeadId;
Links.Add(link);
}
foreach (QualifiedLeadsDomain qlead in QualifiedLeads)
{
string link = "!/LeadsManagement/QualifiedLeads/QualifiedLeadDetailPage.aspx?qualifiedLeadId=" + qlead.Entity.QualifiedLeadId;
}
foreach (ProspectDomain prospect in Prospects)
{
string link = "~/Prospects/ProspectDetailPage.aspx?prospectId=" + prospect.entity.ProspectMasterId;
Links.Add(link);
}
return Links;
}
}
}
我不确定 radgrid 中的列应该是什么以及数据应该如何进行数据绑定。
<%--<telerik:GridBoundColumn HeaderText="Links"
DataField="Links" SortExpression="Links" UniqueName="Links"
ShowFilterIcon="false" CurrentFilterFunction="Contains" AutoPostBackOnFilter="false" FilterDelay="500">
<HeaderStyle Width="120px" />
</telerik:GridBoundColumn>--%>
<telerik:GridHyperLinkColumn DataTextField="Links" DataNavigateUrlFields="Links" UniqueName="Links">
</telerik:GridHyperLinkColumn>
<%-- <telerik:GridTemplateColumn
UniqueName="Links"
AllowFiltering="false"
HeaderText="URL">
<ItemTemplate>
<asp:HyperLink ID="Link" runat="server"></asp:HyperLink>
</ItemTemplate>
</telerik:GridTemplateColumn>--%>
我猜想在数据绑定事件中必须做一些事情,但不确定具体是什么。我被困在这里。我能得到的最多的是一个超链接“System.Collections.Generic.List`1[System.String]”,它没有链接。有人能指出我正确的方向吗?
protected void rgCustomer_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
//Get the row from the grid.
GridDataItem item = e.Item as GridDataItem;
if (item != null)
{
List<string> links = item["Links"].;
//GridTableCell linkCell = (GridTableCell)item["Links"];
//var Link = item["Links"];
//if (Link != null)
//{
// TableCell cell = item["Links"];
// if (cell != null)
// {
// }
//}
}
}
//// GridTableCell linkCell = (GridTableCell)item["TemplateLinkColumn"];
// HyperLink reportLink = (HyperLink)reportLinkCell.FindControl("Link");
// // Set the text to the quote number
// reportLink.Text = "Google";
// //Set the URL
// reportLink.NavigateUrl = "http://www.google.com";
// //Tell it to open in a new window
// reportLink.Target = "_new";
}
【问题讨论】:
标签: c# asp.net hyperlink telerik-grid radgrid