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

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

1. 当鼠标指向标题栏时, 标题栏中该单元格背景色改变,
2. 当在标题栏某单元格中单击时(不一定要点击标题中的文本, 点空白处也行), 实现排序?
...全文
403 12 打赏 收藏 转发到动态 举报
写回复
用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事件的
目录 DataGridView控件用法合集 1 1.当前的单元格属性取得、变更 4 2.DataGridView编辑属性 5 3.DataGridView最下面一列新追加非表示 7 4.判断当前选中是否为新追加的 8 5. DataGridView删除可否设定 8 6. DataGridView列不表示和删除 10 7. DataGridView列宽度高度设置为不能编辑 12 8. DataGridView高列幅自动调整 15 9. DataGridView指定列冻结 列冻结(当前列以及左侧做所有列) 16 10. DataGridView列顺序变更可否设定 17 11. DataGridView复数选择 复数选择不可 18 12. DataGridView选择的、列、单元格取得 19 13. DataGridView指定单元格是否表示 21 14. DataGridView表头部单元格取得 22 17.DataGridView粘贴 25 18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,弹出说明信息) 29 19. DataGridView中的ContextMenuStrip属性 31 20.指定DataGridView的滚动框位置 34 21. DataGridView手动追加列 34 22. DataGridView全体分界线样式设置 36 24. DataGridView新追加样式设置 39 25. DataGridView新追加单元格默认值设置 40 26. DataGridView单元格数据错误标签表示 41 27. DataGridView单元格内输入值正确性判断 44 28. DataGridView单元格输入错误值事件的捕获 47 29. DataGridView排序(点击列表头自动排序设置) 49 30. DataGridView自动排序(新追加值也会自动排序) 50 31. DataGridView自动排序禁止情况下的排序 53 32. DataGridView指定列指定排序 60 33. DataGridView单元格样式设置 61 34. DataGridView文字表示位置的设定 69 35. DataGridView单元格内文字列换 70 36. DataGridView单元格DBNull值表示的设定 71 37. DataGridView单元格样式格式化 71 38. DataGridView指定单元格颜色设定 74 39. DataGridView单元格文字字体设置 78 40. DataGridView根据单元格值设定单元格样式 82 41. DataGridView设置单元格背景颜色 84 42. DataGridView样式描画 91 43. DataGridView显示号 101 44. DataGridView焦点所在单元格焦点框不显示的设定 105 45. DataGridView列中显示选择框CheckBox 107 46. DataGridView中显示下拉框ComboBox 109 47. DataGridView单击打开下拉框 113 48. DataGridView中显示按钮 115 49. DataGridView中显示链接 117 50. DataGridView中显示图像 120 51. DataGridView编辑中单元格控件取得 123 52. DataGridView输入自动完成 125 53. DataGridView单元格编辑时键盘KEY事件取得 131 54. DataGridView下拉框(ComboBox)单元格编辑时事件取得 134 55. DataGridView下拉框(ComboBox)单元格允许文字输入设定 138 56. DataGridView根据值不同在另一列中显示相应图片 141 57. DataGridView中显示进度条(ProgressBar) 147 58. DataGridView中添加MaskedTextBox 176 59. DataGridView中Enter键按下焦点移至旁边的单元格 202 60. DataGridView集合化(Group) 205

62,052

社区成员

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

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

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

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