有没有办法改变C#中的.NET URL显示属性?
好吧,我已经看了这个答案,尽管我找到了答案这样回答这个问题,我找不到我的问题的确切答案:有没有办法改变C#中的.NET URL显示属性?
我在.NET中的代码获取信息并实质上创建一个字符串,该字符串是gridview中PDF文件的URL。这里是一些有问题的代码:
<a href='<# string.Concat("folder/", (Eval("user_account)), "/", (Eval("name")), ".pdf' target='_blank")%>'>
我知道这个代码的工作原理。我已经测试过了,它会按照它应该显示的方式显示PDF。我的问题是:有没有办法以某种方式切换这个“关”这么说?我试图关闭超链接部分,因此如果用户单击它,它不会将用户引导到任何东西,但只在某些情况下。下面是我不希望它显示超链接的一种情况。此代码位于的RowDataBound方法:
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (Message.ToString() == "Flag")
{
lblError.Text = "Testing error message.";
//What else needs to go here to not display the URL under these conditions?
}
}
我还测试此代码,和显示的标签错误消息时在数据库中的PDF文件中的一个具有该标志设置为“标志”。但是,随着这段代码,我还需要PDF来不显示或有超链接可用。我不确定这是否可行,或者是否有更好的解决方案。
任何想法将不胜感激。谢谢。
尝试添加到您的html页面此id="linkid" runat="server"
:
<a id="linkid" runat="server" href='<# string.Concat("folder/", (Eval("user_account)), "/", (Eval("name")), ".pdf' target='_blank")%>'>
然后在你的Code Behind
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (Message.ToString() == "Flag")
{
lblError.Text = "Testing error message.";
//What else needs to go here to not display the URL under these conditions?
linkid.Visible = false;
}
}
假设你有一个循环的网格控制下拉控制。
DropDownList drp = (DropDownList)gridid.Rows[i].Cells[1].FindControl("drpcontrolid");
drp.Visible = false
第一部分可能工作。但我没有下拉列表 – JCunning
是的,这只是一个关于如何管理网格控制的例子。 –
你可以在你的代码后面的gridview中访问几乎任何东西,但你需要首先获取它的引用。
一种方法是直接在gridview中引用单元格。细胞计数在它们被添加到GridView从0开始。所以顺序,假设你的是一个9号在你的数据行...
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[8].Text = "......"
}
一个你有提到你几乎可以做电池很多你想要的东西。您可以使用.Text属性添加,删除,附加文本。您还可以使用.Controls集合向其添加控件。
这很简单。但对于.Controls集合或任何集合,是否有一种方法可以简单地删除链接,但保留其他所有内容?我仍然希望文字是一样的,只是想删除链接。 – JCunning
当然。您需要获得对该控件的引用,然后将其删除。 – John
如果您将链接设为HyperLink或其他服务器控件,会更容易。看看@reds的答案,找到一个控件的方法。假设您将链接更改为HyperLink:HyperLink h =(HyperLink)gridid.rows [i] .cells [1] .FindControl(“myhyperlink”); if(h!= null)gridid.rows [i] .cells [1] .Cont5rols.Remove(h); – John
要么在这些情况下不创建超链接或将其设置为空字符串。你尝试过吗? – CodingYoshi
你可以把它变成一个LinkButton,验证在服务器上,然后重定向到PDF – hardkoded
@CodingYoshi我没有想到这一点。但是有没有办法通过C#端将.NET端的超链接改为空字符串? – JCunning