GridView的对齐问题
我有两个GridView。
GridView1只有表头,有一行空数据,这行空数据隐藏,显示时只有表头的效果。
GridView2隐藏表头(ShowHeader="false"),绑定数据,目的是为了实现固定表头,表体滚动的效果。
当我想通过隐藏指定的列时(同时隐藏两个GridView的某几列),结果出现错位问题。
怎样控制样式使两个GridView对齐。
这是我的代码
- C# code
//这个是用做表头用 <asp:Panel ID="PanelHeader2" runat="server"> <asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False" Height="22px" Width="732px" onrowdatabound="GridView3_RowDataBound"> <Columns> <asp:BoundField HeaderText="编号" /> <asp:BoundField HeaderText="姓名" /> <asp:BoundField HeaderText="性别" /> <asp:BoundField HeaderText="类别" /> <asp:BoundField HeaderText="年级" /> <asp:BoundField HeaderText="班级" /> <asp:BoundField HeaderText="学位类型" /> <asp:BoundField HeaderText="加入时间" /> <asp:BoundField HeaderText="退出时间" /> <asp:BoundField HeaderText="工作地点" /> </Columns> </asp:GridView></asp:Panel>//这个是用做表体用 <asp:Panel ID="Panel1" runat="server" Height="363px" ScrollBars="Auto"><asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" ShowHeader="false" DataKeyNames="编号" Height="120px" onpageindexchanging="GridView1_PageIndexChanging" onrowdatabound="GridView1_RowDataBound" PageSize="12" Visible="False" Width="732px"> <Columns> <asp:BoundField HeaderText="编号" /> <asp:TemplateField HeaderText="姓名" > <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#String.Format("~/Pages/Introduction/IntroStudentDetail.aspx?numberid={0}&category={1}",Eval("编号"),Eval("类别")) %>' Text='<%# Eval("姓名") %>'></asp:HyperLink> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="性别"> <EditItemTemplate> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("性别") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="类别" HeaderText="类别" /> <asp:BoundField DataField="年级" HeaderText="年级" /> <asp:BoundField DataField="班级" HeaderText="班级" /> <asp:BoundField DataField="学位类型" HeaderText="学位类型"/> <asp:TemplateField HeaderText="加入时间"> <EditItemTemplate> <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label3" runat="server" Text='<%# Eval("加入时间") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="退出时间"> <EditItemTemplate> <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label4" runat="server" Text='<%# Eval("退出时间") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="工作地点"> <EditItemTemplate> <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label5" runat="server" Text='<%# Eval("工作地点") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> <HeaderStyle CssClass="fixedheader" Wrap="False" /> </asp:GridView> </asp:Panel>
当我只想显示
"编号"
"姓名"
"性别"
"类别"
"年级"
"学位类型"
"工作地点"
这几列时应该怎样改写代码,使其对齐。
真心谢谢
[解决办法]
把2个GridView里面的不要的列都删除,如
<asp:BoundField HeaderText="班级" />
[解决办法]
代码也可以隐藏的啊
[解决办法]
在编辑列中不是可以设置表头格式,你在哪里面设置一下不就ok了~
- C# code
//表头格式,下面的例子是居中 <asp:BoundField> <HeaderStyle HorizontalAlign="Center" /> </asp:BoundField>//内容格式 居中 <asp:BoundField> <ItemStyle HorizontalAlign="Center" /> </asp:BoundField>
[解决办法]
放在一个table里试试
[解决办法]
- C# code
//或者加个div标签<EditItemTemplate> <div align="center"> <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox></div> </EditItemTemplate>
[解决办法]
设置好AccessibleHeaderText="Loading_No",然后做一个显示设置区,保存到数据库,每个用户设置都不一样,与他们自己的设置偏历对比,规则决定Visible的属性,那一列要隐藏还是显示,这样要不要显示就随客户意愿了
[解决办法]
建议用yyc的SmartGridView实现
他的博客是
http://www.cnblogs.com/webabcd/archive/2007/02/04/639830.html
[解决办法]
作者已经建议用jqGrid了
[解决办法]