GridView显示出来的数据错在哪里,哪们高手能帮我看一下

xqsky2007 2008-11-04 08:24:14
想实现这样的功能:
在GridView加个滚动条,当拉动向右滚动条的时候,某一列固定不动(包括有表头和表体),其它列都向右移动(包括表头和表体),我的做法在下面,数据库是sql2000自带的pubs 里面的表employee. 把我的代码复制到各位的机器上,然后改动uid= ;pwd= 就可以运行.看一下效果错在哪里?


aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页 </title>
<style>
.fixColleft
{ z-index:120; left: expression(this.offsetParent.scrollLeft); position: relative }
.fixedHeader { overflow: auto;}
.fixColleft { }

</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<div style="height:200px;overflow:auto; width: 800px;">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" Text=' <%#Eval("emp_id") %> '> </asp:Label>
</ItemTemplate>
<HeaderTemplate>emp_id </HeaderTemplate>
<HeaderStyle Width=300px CssClass="fixColleft"/>
<ItemStyle Width=300px CssClass="fixColleft"/>
<ControlStyle Width=300px />
</asp:TemplateField>

<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text=' <%#Eval("fname") %> '> </asp:Label>
</ItemTemplate>
<HeaderTemplate>fname </HeaderTemplate>
<HeaderStyle Width=300px/>
<ItemStyle Width=300px/>
<ControlStyle Width=300px />
</asp:TemplateField>

<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" Text=' <%#Eval("minit")%>'> </asp:Label>
</ItemTemplate>
<HeaderTemplate>minit </HeaderTemplate>
<HeaderStyle Width=300px/>
<ItemStyle Width=300px/>
<ControlStyle Width=300px />
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" Text=' <%#Eval("lname")%>'> </asp:Label>
</ItemTemplate>
<HeaderTemplate>lname </HeaderTemplate>
<HeaderStyle Width=300px/>
<ItemStyle Width=300px/>
<ControlStyle Width=300px />
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" Text=' <%#Eval("job_id")%>'> </asp:Label>
</ItemTemplate>
<HeaderTemplate>job_id </HeaderTemplate>
<HeaderStyle Width=300px/>
<ItemStyle Width=300px/>
<ControlStyle Width=300px />
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" Text=' <%#Eval("job_lvl")%>'> </asp:Label>
</ItemTemplate>
<HeaderTemplate>job_lvl </HeaderTemplate>
<HeaderStyle Width=300px/>
<ItemStyle Width=300px/>
<ControlStyle Width=300px />
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" Text=' <%#Eval("pub_id")%>'> </asp:Label>
</ItemTemplate>
<HeaderTemplate>pub_id </HeaderTemplate>
<HeaderStyle Width=300px/>
<ItemStyle Width=300px/>
<ControlStyle Width=300px />
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" Text=' <%#Eval("hire_date")%>'> </asp:Label>
</ItemTemplate>
<HeaderTemplate>hire_date </HeaderTemplate>
<HeaderStyle Width=900px/>
<ItemStyle Width=900px/>
<ControlStyle Width=900px />
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
</div>
</div>
</form>
</body>
</html>

...全文
177 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqsky2007 2008-11-04
  • 打赏
  • 举报
回复
楼上:
那应该调多少?你试过可以吗?我试过都不行啊?
crhan 2008-11-04
  • 打赏
  • 举报
回复
最上层的Div没有盖住Table, 调整Div的z-index。
xqsky2007 2008-11-04
  • 打赏
  • 举报
回复
数据共有10条
如果固定第一列:
为什么第一列显示10条,第二、三……显示4条呢?


这就是我所说的显示有问题所在。
crhan 2008-11-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 crhan 的回复:]
一般表的列固定需要在每一个列中添加CCS+Javascript实现的。比起头部固定比较难。
下面的英文网站实现的比较好。你可以参照它。
http://www.codeplex.com/ASPNetRealWorldContr
[/Quote]
根据上面的内容我整理了一下。
http://blog.csdn.net/crhan/archive/2007/03/25/1540890.aspx
基本原理是一样的,但是在使用GridView的时候需要进行重构一下,添加自己需要的功能。
毕竟微软开发GridView只包含最基本的功能,对于不同需求最好是进行扩展。
lee576 2008-11-04
  • 打赏
  • 举报
回复
你自己写的上面的css代码,你的gridview都没用上
加载时绑定
this.GridView1.Columns[0].HeaderStyle.CssClass = "fixColleft";
this.GridView1.Columns[0].ItemStyle.CssClass = "fixColleft";
this.GridView1.DataBind();
soar_net 2008-11-04
  • 打赏
  • 举报
回复
up

Longgreenlee 2008-11-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 crhan 的回复:]
一般表的列固定需要在每一个列中添加CCS+Javascript实现的。比起头部固定比较难。
下面的英文网站实现的比较好。你可以参照它。
http://www.codeplex.com/ASPNetRealWorldContr
[/Quote]
up
takako_mu 2008-11-04
  • 打赏
  • 举报
回复
沒SQL2000。。。。
zcl26 2008-11-04
  • 打赏
  • 举报
回复
楼主一定要用gridview的话,只有找高手帮忙了,强烈建议用第三方控件
w161134025 2008-11-04
  • 打赏
  • 举报
回复
up
phper2008 2008-11-04
  • 打赏
  • 举报
回复
up!
qinhl99 2008-11-04
  • 打赏
  • 举报
回复
up
jin225 2008-11-04
  • 打赏
  • 举报
回复
多啊
antiking 2008-11-04
  • 打赏
  • 举报
回复
把报错的信息帖出来.
gongsun 2008-11-04
  • 打赏
  • 举报
回复
gridview很强大,很好用,但很不实用...
crhan 2008-11-04
  • 打赏
  • 举报
回复
一般表的列固定需要在每一个列中添加CCS+Javascript实现的。比起头部固定比较难。
下面的英文网站实现的比较好。你可以参照它。
http://www.codeplex.com/ASPNetRealWorldContr
tete 2008-11-04
  • 打赏
  • 举报
回复
欣赏下你的效果,照理说这种效果用第三方控件可能要好点。
ToooooddZhao 2008-11-04
  • 打赏
  • 举报
回复
学习
hanqingyu 2008-11-04
  • 打赏
  • 举报
回复
帮顶
xqsky2007 2008-11-04
  • 打赏
  • 举报
回复

.cs代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;


public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=sa;database=pubs");
con.Open();
SqlCommand cmd = new SqlCommand(" select * from employee ",con);
this.GridView1.DataSource = cmd.ExecuteReader();
this.GridView1.DataBind();
}
}
}
加载更多回复(9)

62,073

社区成员

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

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

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

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