asp .net datagrid如何冻结第一列

因表格列数过多,需要冻结第一列,网上搜了一圈,基本没有什么可行的方法。

可以尝试通过样式来进行控制

<style type="text/css">
 .fixTitle { POSITION: relative;  TOP: expression(this.offsetParent.scrollTop) }
 .fixCol { POSITION: relative;  Left: expression(this.offsetParent.scrollLeft) }
</style>

然后把你想冻结那列就把 fixCol这个Css加到 那列的HeaderStyle-CssClass 和 ItemStyle-CssClass 中去

   <DIV style="Z-INDEX: 102; LEFT: 264px; OVERFLOW: auto; WIDTH: 184px; POSITION: relative; TOP: 128px; HEIGHT: 216px"
                ms_positioning="GridLayout">
                <asp:DataGrid id="DataGrid1" style="Z-INDEX: 103" runat="server" BorderColor="#DEBA84" BorderStyle="None"
                    BorderWidth="1px" BackColor="#DEBA84" CellPadding="0" AutoGenerateColumns="False">
                    <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#738A9C"></SelectedItemStyle>
                    <ItemStyle ForeColor="#8C4510" BackColor="#FFF7E7"></ItemStyle>
                    <HeaderStyle Font-Bold="True" ForeColor="White"  BackColor="#A55129"></HeaderStyle>
                    <FooterStyle ForeColor="#8C4510" BackColor="#F7DFB5"></FooterStyle>
                    <Columns>
                        <asp:BoundColumn DataField="IntegerValue" HeaderText="IntegerValue"  HeaderStyle-CssClass ="fixCol" ItemStyle-CssClass="fixCol"></asp:BoundColumn>
                        <asp:BoundColumn DataField="StringValue" HeaderText="StringValue"></asp:BoundColumn>
                        <asp:BoundColumn DataField="CurrencyValue" HeaderText="CurrencyValue"></asp:BoundColumn>
                    </Columns>
                    <PagerStyle HorizontalAlign="Center" ForeColor="#8C4510" Mode="NumericPages"></PagerStyle>
                </asp:DataGrid></DIV>

这个位置

img