C# 是否可以将GridView(超链接或超链接字段)中的url列更改为普通文本?

C# 是否可以将GridView(超链接或超链接字段)中的url列更改为普通文本?,c#,asp.net,vb.net,C#,Asp.net,Vb.net,我有一个GridView,我将它导出到Excel()中,它可以正常工作 但问题是GridView包含一个HyperLinkField列,因此它会作为URL导出到excel中,而我希望它在excel中作为文本而不是链接,我该如何做 我在gridview中看到的HyperLinkField列是: <asp:HyperLinkField DataNavigateUrlFields="learntable_id" DataNavigateUrlFormatString="~/page2.aspx?

我有一个GridView,我将它导出到Excel()中,它可以正常工作

但问题是GridView包含一个
HyperLinkField
列,因此它会作为
URL
导出到excel中,而我希望它在excel中作为文本而不是链接,我该如何做

我在gridview中看到的
HyperLinkField
列是:

<asp:HyperLinkField DataNavigateUrlFields="learntable_id" DataNavigateUrlFormatString="~/page2.aspx?learntable_id={0}" HeaderText="Learning Description" DataTextField="learntable_desc" />

但是我无法将链接列更改为文本列,请提供帮助。

您可以删除所有链接并用文本控件替换它们

这是C代码-

private void RemoveLinks(控制grdView)
{
LinkButton lb=新的LinkButton();
文字l=新文字();
对于(int i=0;i
您可以通过JavaScript、通过Id从链接中删除下划线或为要从中删除下划线的超链接分配Css类来实现这一点

使用链接Id:

$(document).ready(function(){
  $('#HyperLinkId').css('textDecoration','none');
});
$(document).ready(function(){
    $('#HyperLinkId').removeAttr("href");
});
使用链接CssClass:

$(document).ready(function(){
    $('.HyperlinkClass').css('textDecoration','none');
});
$(document).ready(function(){
    $('.HyperlinkClass').removeAttr("href");
});
更新1:

您也可以从HyperLink jQuery中删除href属性:

使用链接Id:

$(document).ready(function(){
  $('#HyperLinkId').css('textDecoration','none');
});
$(document).ready(function(){
    $('#HyperLinkId').removeAttr("href");
});
使用链接CssClass:

$(document).ready(function(){
    $('.HyperlinkClass').css('textDecoration','none');
});
$(document).ready(function(){
    $('.HyperlinkClass').removeAttr("href");
});

将链接导出到excel时,是否希望该链接在GridView“网页”中显示为链接和文本,或者希望该链接在excel和网页中同时显示为文本?我只想删除excel文件中的链接。谢谢Emad。它100%有效,谢谢,我用超链接替换了LinkButton,所以也谢谢你的评论。如果您不介意的话,如果我有两个链接克隆,并且我只想替换其中的一个,您知道我如何选择其中任何一个来替换吗?您的意思是您想在页面上显示整个gridview,但在导出时,您只想导出一列。为此,您可以创建一个datatable或dataset以及一个包含要导出的列的动态gridview。然后将动态gridview与数据源绑定,并在导出代码中使用这个新的gridview。另外,不要忘记标出正确的答案,因为它可能会帮助他人。:)哦,它不工作对不起,我注意到一个错误,那就是:
编译器错误消息:BC30452:运算符“=”没有为类型“System.Type”和“System.Type”定义。
我会检查这个答案,我会回复我用
is
替换了
=
,它可以工作:)。无论如何,关于我评论中的另一个问题,对不起,我认为这是一个问题本身。我会把它标记为一个答案。我会测试它,我会回复,我相信它是有用的。谢谢你,艾玛德,对不起,艾玛德。恐怕不行。我试图将它们分别放在一个JavaScript函数中,并在codebehind中调用它们(当然是在我需要它们的地方使用export to Excel代码,而不是前面答案中的代码),不幸的是没有效果。考虑到Java脚本没有被调用,我测试了一个警报,警报可以工作,但你的代码不能。此外,我没有从代码隐藏中调用javascript,而是尝试直接在代码隐藏中插入这些脚本,而不是像这样调用它们:
Page.ClientScript.RegisterStartupScript(Me.GetType(),“MyKey”,“$”(“#HyperLinkId')).css('textdeaction','none');,True)
,但它不起作用。除非有其他方法来处理javascript?您在页面中引用了jQuery吗<代码>如果是,您可以将脚本写入页面并使用按钮运行它来调试逻辑,如果更新了,请查看答案。感谢亲爱的Emad,我也尝试在本地安装jquery,同样,没有效果。请问你的意思是什么:看答案,如果更新了吗?debug output窗口没有显示一些有趣的东西。顺便说一句,我可能缺少一些东西来添加javascript代码,使其无法工作,但我不确定是否有一个页面讨论了您的答案,这将有助于了解如何处理它。