读书人

GridView的对齐有关问题

发布时间: 2012-10-19 16:53:35 作者: rapoo

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了
[解决办法]

读书人网 >asp.net

热点推荐