我有一个带有用户联系信息的gridview,我希望包含他们的电子邮件所在的在线社交媒体资料的链接,所以如果我的gridview有NAME,ROLE和CONTACT,那么联系人行将有用户的电子邮件地址然后指向其社交媒体帐户的链接。
这是我到目前为止完成此操作的代码,我只是不确定如何使文本成为数据绑定的超链接
protected void Contacts_OnItemDataBound(object sender, GridItemEventArgs e)
{
var dataItem = e.Item as GridDataItem;
if (dataItem != null && dataItem["Contact"].Text == "test@tester.com")
{
dataItem["Contact"].Text = //where I stopped because I figured my text to the hyperlink would go here
}
}
这是我的gridview的aspx代码,我使用的是telerik,但它的想法是一样的:
<telerik:RadGrid ID="Contacts" runat="server">
<MasterTableView AutoGenerateColumns="False" BorderColor="White"
headerStyle-Font-Bold="True" HeaderStyle-ForeColor="White">
<Columns>
<telerik:GridBoundColumn DataField="AlternateContact" FilterControlAltText="Filter AlternateContact column" HeaderText="ALTERNATE" SortExpression="AlternateContact" UniqueName="AlternateContact"/>
<telerik:GridBoundColumn DataField="Role" FilterControlAltText="Filter Role column" HeaderText="ROLE" SortExpression="Role" UniqueName="Role"/>
<telerik:GridBoundColumn DataField="Contact" FilterControlAltText="Filter Contact column" HeaderText="CONTACT" SortExpression="Contact" UniqueName="Contact" />
</Columns>
</MasterTableView>
</telerik:RadGrid>
关于如何实现这一点的任何建议都会有所帮助,谢谢!
答案 0 :(得分:1)
有两种方法可以做到这一点。您可以将GridBoundColumn
更改为GridHyperLinkColumn
,也可以将HTML放入GridBoundColumn
假设您的大部分功能正常运行,则更改将如下所示:
protected void Contacts_OnItemDataBound(object sender, GridItemEventArgs e)
{
var dataItem = e.Item as GridDataItem;
if (dataItem != null && dataItem["Contact"].Text == "test@tester.com")
{
dataItem["Contact"].Text = String.Format("<a href=\"mailto:{0}\">{1}</a>", emailAddress, emailAddress);
}
}