高手进,girdview某一单元格内控件的链接样式修改问题!!!

evien007 2010-01-29 12:19:03
我想修改要修改girdview中的某一些单元格内的HyperLinkField的class.

这是HyperLinkField的定义

HyperLinkField hl = new HyperLinkField();
hl.HeaderText = "标题";
hl.DataTextField = field;
hl.HeaderStyle.Wrap = false;
hl.DataTextFormatString = "<a href='#' class='gridtbl' onclick='AnLiMingCheng1(this)'>{0}</a>";


这是事先已经生成好的,生成后HyperLinkField的class是gridtbl ,我想在后面找到符合条件的链接,把这些链接的class改变成gridred,应该怎么做
例如我要改 view.Rows[i].Cells[j]内的HyperLinkField控件的class,大侠们帮帮我,分不够我可以再加!!!
...全文
255 46 打赏 收藏 转发到动态 举报
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jelindu 2010-01-29
  • 打赏
  • 举报
回复
真是怪了,发现没次总有人用gridview这种庞大,笨重的东西!
已经几年没有服务器控件只用input的人飘过
Adechen 2010-01-29
  • 打赏
  • 举报
回复
在rowdatabound里面
HyperLinkField h =view.Rows[i].Cells[j].FindControl("控件的id") as HyperLinkField
h.Attribults["class"]="XXXX"
mengxj85 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mytimes_walker 的回复:]
把你的HyperLinkField改成TemplateField,如下:
HTML code<asp:TemplateFieldHeaderText="跟进"><ItemTemplate><asp:HyperLinkrunat="server" ID="lnkTest"></asp:HyperLink></ItemTemplate></asp:TemplateField>
在GridView的RowDataBound事件里用:
HyperLink lnkTest = e.row.FindControl("lnkTest") as HyperLink;
lnkTest.CssClass = "gridred";
就可以了。
[/Quote]
UP
mytimes_walker 2010-01-29
  • 打赏
  • 举报
回复
把你的HyperLinkField改成TemplateField,如下:

<asp:TemplateField HeaderText="跟进">
<ItemTemplate>
<asp:HyperLink runat="server" ID ="lnkTest">
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>

在GridView的RowDataBound事件里用:
HyperLink lnkTest = e.row.FindControl("lnkTest") as HyperLink;
lnkTest.CssClass = "gridred";
就可以了。
evien007 2010-01-29
  • 打赏
  • 举报
回复
或者简单说,怎么改变里边链接的颜色就行
evien007 2010-01-29
  • 打赏
  • 举报
回复
给分,3q
koukoujiayi 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 43 楼 evien007 的回复:]
终于成功了,感谢koukoujiayi,帮了我一下午...,马上给分
但是我还有一个问题:加点和不加点的区别是什么?
[/Quote]
class或CssClass引用的要加点,语法规则嘛!!
evien007 2010-01-29
  • 打赏
  • 举报
回复
终于成功了,感谢koukoujiayi,帮了我一下午...,马上给分
但是我还有一个问题:加点和不加点的区别是什么?
koukoujiayi 2010-01-29
  • 打赏
  • 举报
回复
哦抱歉是我漏了一个点!!不过我14楼写的很清楚!!
.gridred {...}
.gridred a:link{...}
.gridred a:visited{...}
.gridred a:hover{...}
evien007 2010-01-29
  • 打赏
  • 举报
回复
不行还是没变化

我写在统一调用的css文件中
gridtblred a:link
{
color:Red;
text-decoration:underline;
}

gridtblred a:hover
{
color:Red;
text-decoration:none;
}

gridtblred a:active
{
color:Red;
text-decoration:none;
}
gridtblred a:visited
{
color:Green;
text-decoration:none;
}
按照你说的方法实现不了
koukoujiayi 2010-01-29
  • 打赏
  • 举报
回复
写成这样就OK了:
gridred {....}
gridred a:link{...}
gridred a:visited{...}
gridred a:hover{...}
zhouzangood 2010-01-29
  • 打赏
  • 举报
回复
jf
evien007 2010-01-29
  • 打赏
  • 举报
回复
大哥你真的试验了吗... 我的样式表里这样写的
a.gridtbl:link
{
color:#296CB3;
text-decoration:underline;
}

a.gridtbl:hover
{
color:#E37A08;
text-decoration:none;
}

a.gridtbl:active
{
color:#7C6F57;
text-decoration:none;
}
a.gridtbl:visited
{
color:Green;
text-decoration:none;
}


a.gridred:link
{
color:Red;
text-decoration:underline;
}

a.gridred:hover
{
color:Red;
text-decoration:none;
}

a.gridred:active
{
color:Red;
text-decoration:none;
}
a.gridred:visited
{
color:Green;
text-decoration:none;
}
koukoujiayi 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 evien007 的回复:]
你这个真的不行啊...

根本不显示 这个是我生成后查看原文件的一部分代码
<td class="gridred"> <a> <a href='#'  onclick='AnLiMingCheng2(this)'>刘涛测试 </a> </a> </td>

显示出的链接根本没有使用gridred这个样式
[/Quote]

兄弟真服了你哦!!
看看你的"gridred"是怎么写的!!
应该还有:
gridred a:link{...}
gridred a:visited{...}
gridred a:hover{...}

evien007 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 koukoujiayi 的回复:]
引用 33 楼 evien007 的回复:
我真试过不行,而且你想想也不对啊就相对于你页面设置了一个css,你页面中的一个table设置了一个css,那这个table按照哪个样式显示呢,同理你这个单元格设了css,单元格里面的链接设了css,当然按照链接的css显示了

兄弟啊!只要单元格设了css就可以了(HyperLink在单元格里面)!!
对某个单元格根据不同的条件,设置不同的CSS,如:
            if(条件1)
              e.Row.Cells[4].CssClass = "ln"; //Cells[4]是HyperLink所在列
              else if(条件2)
              e.Row.Cells[4].CssClass = "ln2"; //Cells[4]是HyperLink所在列
              else
              e.Row.Cells[4].CssClass = "ln3"; //Cells[4]是HyperLink所在列

[/Quote]

你这个真的不行啊...

根本不显示 这个是我生成后查看原文件的一部分代码
<td class="gridred"><a><a href='#' onclick='AnLiMingCheng2(this)'>刘涛测试</a></a></td>

显示出的链接根本没有使用gridred这个样式
koukoujiayi 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 evien007 的回复:]
我真试过不行,而且你想想也不对啊就相对于你页面设置了一个css,你页面中的一个table设置了一个css,那这个table按照哪个样式显示呢,同理你这个单元格设了css,单元格里面的链接设了css,当然按照链接的css显示了
[/Quote]
兄弟啊!只要单元格设了css就可以了(HyperLink在单元格里面)!!
对某个单元格根据不同的条件,设置不同的CSS,如:
if(条件1)
e.Row.Cells[4].CssClass = "ln"; //Cells[4]是HyperLink所在列
else if(条件2)
e.Row.Cells[4].CssClass = "ln2"; //Cells[4]是HyperLink所在列
else
e.Row.Cells[4].CssClass = "ln3"; //Cells[4]是HyperLink所在列
罗纳尔迪尼奥 2010-01-29
  • 打赏
  • 举报
回复
HyperLinkField hl = new HyperLinkField();
hl.HeaderText = "标题";
hl.DataTextField = field;



if(field== 条件)
{
hl.DataTextFormatString = " <a href='#' class='gridtbl' onclick='AnLiMingCheng1(this)'>{0} </a>";
}
else{

hl.DataTextFormatString = " <a href='#' class='gridred' onclick='AnLiMingCheng1;
}
hl.HeaderStyle.Wrap = false;

这样不行吗?
evien007 2010-01-29
  • 打赏
  • 举报
回复
我真试过不行,而且你想想也不对啊就相对于你页面设置了一个css,你页面中的一个table设置了一个css,那这个table按照哪个样式显示呢,同理你这个单元格设了css,单元格里面的链接设了css,当然按照链接的css显示了
koukoujiayi 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 evien007 的回复:]

你这个我也试过,不行,这个改变的是单元格的CssClass ,但是不能改变里边控件的calss
[/Quote]
兄弟,改变单元格的CssClass,就改变了该单元格的样式哦!
你不是要改变HyperLink的颜色吗?这样就可以改变!!这应该没问题吧!!
evien007 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 koukoujiayi 的回复:]
不知道你是什么条件!!
在RowDataBound事件中进行
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if(条件)
              e.Row.Cells[4].CssClass = "ln"; //Cells[4]是HyperLink所在列
        }
    }
[/Quote]

你这个我也试过,不行,这个改变的是单元格的CssClass ,但是不能改变里边控件的calss
加载更多回复(25)

62,255

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧