gridview某行的样式如何写?

wangshiying1971 2009-05-03 10:51:24
我用gridview做一个用户自定义控件,用于网站的二级栏目导航,点击某个栏目后,把栏目编号作为一个参数传递到下一个页面,在下一个页面希望这个选中栏目应用某个样式,和其他栏目有所区别。不知道该用gridview的哪个事件,来让这行应用样式。
...全文
388 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangshiying1971 2009-05-04
  • 打赏
  • 举报
回复
aspx:

<yyc:SmartGridView ID="GridView1" runat="server" AutoGenerateColumns="False" GridLines="None" SkinID="menu" MouseOverCssClass="OverRow"
ShowHeader="False" DataKeyNames="ID" DataSourceID="ObjectDataSource2" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="ClassName" SortExpression="ClassName">
<ItemTemplate>
<asp:HyperLink id="HyperLink1" runat="server" Text='<%# Eval("ClassName") %>' NavigateUrl='<%# url+"?class_id="+Eval("ID")+"&&class_parent="+Eval("ClassParent") %>' __designer:wfdid="w8"></asp:HyperLink> 
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" >
<controlstyle cssclass="Hidden" />
<itemstyle cssclass="Hidden" />
<headerstyle cssclass="Hidden" />
<footerstyle cssclass="Hidden" />
</asp:BoundField>
</Columns>
</yyc:SmartGridView>

cs:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//符合class_id那一行??????????
string myClass = e.Row.Cells[1].Text;
int myClass_id = Convert.ToInt32(myClass);//
if (class_id == myClass_id)
{
((HyperLink)e.Row.FindControl("HyperLink1")).CssClass = "OverRow";
}

}
}

获取Cells[1]的列,和传入参数比较,这一列不能用模板

把Cells[1]应用一个样式,让它隐藏就可以了,他的作用就是和传入的参数比较,选中符合条件的那一行。

.Hidden
{
display:none;
}


陌上花花 2009-05-03
  • 打赏
  • 举报
回复
帮顶下。
中年秃头大叔 2009-05-03
  • 打赏
  • 举报
回复
属性SkinID,指定用的是哪个"皮肤文件中的哪个gridview样式",若是多个gridview可以设置多个skinid,这样就可以调用了。
添加新项--外观文件 默认的名称SkinFile.skin,可以在这里面写gridview样式
比如:
SkinFile.skin里面有这样的代码:
<asp:GridView runat="server" BorderColor="Red" SkinID="grvRed"></asp:GridView>//设置gridview红色边框
<asp:GridView runat="server" BorderColor="blue" SkinID="grvBlue"></asp:GridView>//设置gridview绿色边框

然后可以在页面调用这个皮肤文件,然后修改gridview的skinid属性.不过一定要在该页面选调用这个皮肤文件才是
this.Theme="SkinFile.skin";
然后
this.GridView1.SkinID="grvRed";
dengyun_1223 2009-05-03
  • 打赏
  • 举报
回复
关注
wangshiying1971 2009-05-03
  • 打赏
  • 举报
回复
流水无情,我也是这样写的:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//符合class_id索引值的那一行??????????
int myClass_id = Convert.ToInt32(e.Row.TabIndex);//
if (class_id == myClass_id)
{
((HyperLink)e.Row.FindControl("HyperLink1")).CssClass = "OverRow";
}

}
}
但是这一行不会写,请教了!
皓月明 2009-05-03
  • 打赏
  • 举报
回复
对css控制最好了
wsbgy 2009-05-03
  • 打赏
  • 举报
回复
这种菜单不用GridView做吧,用CSS+ASP.Net应该可以.

如果一定要用GridView的话,可以使用RowDataBound事件,判断编号然后再应用新的CSS样式
LGP88864237 2009-05-03
  • 打赏
  • 举报
回复
学习
greymouseyu 2009-05-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhanglei_love2008 的回复:]
属性SkinID,指定用的是哪个"皮肤文件中的哪个gridview样式",若是多个gridview可以设置多个skinid,这样就可以调用了。
添加新项--外观文件 默认的名称SkinFile.skin,可以在这里面写gridview样式
比如:
SkinFile.skin里面有这样的代码:
<asp:GridView runat="server" BorderColor="Red" SkinID="grvRed"> </asp:GridView>//设置gridview红色边框
<asp:GridView runat="server" BorderColor="blue" SkinID="grvBlue"> <…
[/Quote]

学习
koukoujiayi 2009-05-03
  • 打赏
  • 举报
回复
<span style="xxxxxx">你的内容</span>
wangshiying1971 2009-05-03
  • 打赏
  • 举报
回复
http://www.symantec.com/zh/cn/partners/learning/learning.jsp?id=intelligence
我说的效果就是类似这个网站的这种导航效果,当前栏目的样式和其他栏目不同。

62,268

社区成员

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

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

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

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