GridView实现自动排序后,可否设置标题行的样式

程序猿GG 2010-03-11 06:38:42
GridView实现自动排序后, 标题行文本会变成一个超级连接, 而且只有当点击到标题栏中的文本时, 才会实现排序, 有没有办法实现如下功能:

1. 当鼠标指向标题栏时, 标题栏中该单元格背景色改变,
2. 当在标题栏某单元格中单击时(不一定要点击标题中的文本, 点空白处也行), 实现排序?
...全文
412 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序猿GG 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wanngingke 的回复:]
那可不可以换图片呀?我不想换颜色
[/Quote]

用脚本控制吧..
热心男孩 2011-03-25
  • 打赏
  • 举报
回复
那可不可以换图片呀?我不想换颜色
operatezhang 2010-03-12
  • 打赏
  • 举报
回复
好想没有遇到过啊!!!
operatezhang 2010-03-12
  • 打赏
  • 举报
回复
好想没有遇到过啊!!!
Im_Sorry 2010-03-12
  • 打赏
  • 举报
回复
代码上面已经贴了出来, 你可以参考下, 但是我个人不喜欢用这个数据源控件!~
mail_ylei 2010-03-12
  • 打赏
  • 举报
回复
每一个单元格用带ID的DIV填充,js控制参数为列名
程序猿GG 2010-03-12
  • 打赏
  • 举报
回复
问题1已解决, 求问题2的解决方法..
wuyq11 2010-03-11
  • 打赏
  • 举报
回复
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AllowSorting="true" OnSorting="GridView1_Sorting" AllowPaging="true" PageSize="10" OnPageIndexChanging="GridView1_PageIndexChanging">
<Columns>
<asp:BoundField DataField="id" HeaderText="代码" SortExpression="id"/>
<asp:BoundField DataField="name" HeaderText="名称" SortExpression="name"/>
<asp:TemplateField SortExpression="BUID" HeaderText="BUID">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text=' <%# Bind("ID") %>' ToolTip=' <%# DataBinder.Eval(Container.DataItem, "ID") %>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ViewState["SortOrder"] = "deptid";
ViewState["OrderDire"] = "asc";
BindGridView();
}
}

protected void BindGridView()
{

DataSet ds = new DataSet();


DataView dv = ds.Tables[0].DefaultView;
string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
dv.Sort = sort;
this.GridView1.DataSource = dv;

this.GridView1.DataBind();

}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string vortExp = e.SortExpression;
if (ViewState["SortOrder"].ToString() == vortExp)
{
if ((string)ViewState["OrderDire"] == "desc")
{
ViewState["OrderDire"] = "asc";
}
else if ((string)ViewState["OrderDire"] == "asc")
{
ViewState["OrderDire"] = "desc";
}
}
else
{
ViewState["SortOrder"] = e.SortExpression;
}
BindGridView();

}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.GridView1.PageIndex = e.NewPageIndex;
BindGridView();
}
wuyq11 2010-03-11
  • 打赏
  • 举报
回复
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#E8F4FF'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");

}
}


protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onMouseOver", "SetNewColor(this);");
e.Row.Attributes.Add("onMouseOut", "SetOldColor(this);");
}
}
var _oldColor;
function SetNewColor(source)
{
_oldColor=source.style.backgroundColor;
source.style.backgroundColor='#E8F4FF';
}
function SetOldColor(source)
{
source.style.backgroundColor=_oldColor;
}
koukoujiayi 2010-03-11
  • 打赏
  • 举报
回复
在GridView的RowDataBound事件中,一下代码是设置第0列的表头:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Attributes.Add("onmouseover", "this.style.backgroundColor='#ff0000'");
e.Row.Cells[0].Attributes.Add("onmouseout", "this.style.backgroundColor='#ffffff'");
}
}
mngzilin 2010-03-11
  • 打赏
  • 举报
回复
1. 当鼠标指向标题栏时, 标题栏中该单元格背景色改变,
=============
比如你的gridview的id是“gridview1”,可以设置css
<style>
#gridview1 tr td{background-color:white}
#gridview1 tr td:hover{background-color:red}
</style>

2. 当在标题栏某单元格中单击时(不一定要点击标题中的文本, 点空白处也行), 实现排序?
===============
设置line-height为单元格高度
zhujiazhi 2010-03-11
  • 打赏
  • 举报
回复
1、添加onmouse事件的

62,248

社区成员

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

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

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

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