每次选择GridView最后一行后,滚动条自动跳到第一行位置,每次都需要下拉滚动条,客户觉得操作太不方便,要求修改,我不知道怎么弄,请各位大神给个解决方法。GridView

解决方案 »

  1.   

    绑定了事件,单击行时,显示右边的选项。绑定的是 后台事件?还是js的事件?解决方法:
    一种是用js实现单击出右侧框的功能。
    二种将左侧的列表放到iframe中,如果调用后台的刷新页面的话,你使用 锚点 来控制滚动条的位置
      

  2.   

    我直接绑定的Gridview,左右两个都是GridView,右边的绑定到左边的ID,当选择左边的一行时,右边的根据ID显示。
      

  3.   

    用ajax实现局部刷新试一下!~
      

  4.   

    <asp:Panel ID="Panel_family_required" runat="server" BorderWidth="0px" Height="300px"
                            ScrollBars="Auto" Width="400px" >
                            <asp:GridView ID="gv_family_required" runat="server" DataSourceID="sds_family" 
                                AutoGenerateColumns="False" CssClass="GridViewStyle" 
                                DataKeyNames="FAMILY_ID" Width="400px">
                                <RowStyle CssClass="RowStyle" />
                                <Columns>
                                    <asp:TemplateField HeaderText="操作" ShowHeader="False">
                                      <HeaderStyle HorizontalAlign="Center" Width="110px" />
                                        <ItemTemplate>
                                            <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Select"
                                                Text="选择"></asp:LinkButton>
                                            &nbsp;<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
                                              Visible="True"  Text="编辑"></asp:LinkButton>&nbsp;<asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" CommandName="Delete"
                                                OnClientClick="{if(confirm('确定要删除该特征族吗,这将会影响整车条码顺序?')){return true;}return false;}" Text="删除"
                                                Visible="True"></asp:LinkButton>
                                        </ItemTemplate>
                                        <EditItemTemplate>
                                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
                                               OnClientClick="{if(confirm('确定要更新该特征族吗?')){return true;}return false;}" Text="更新"></asp:LinkButton>
                                            &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
                                                Text="取消"></asp:LinkButton>
                                        </EditItemTemplate>
                                        <ItemStyle Width="110px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="是否启用">
                                       <HeaderStyle HorizontalAlign="Center" />
                                        <ItemTemplate>
                                            <asp:CheckBox ID="chk_family_required" runat="server" Checked='<%# Bind("IS_USE") %>'
                                                AutoPostBack="True" />
                                        </ItemTemplate>
                                        <ItemStyle Width="60px"  HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:BoundField DataField="FAMILY_ID" HeaderText="FAMILY_ID" SortExpression="FAMILY_ID"
                                        InsertVisible="False" ReadOnly="True" />
                                    <asp:BoundField DataField="FAMILY_CODE" HeaderText="FAMILY_CODE" SortExpression="FAMILY_CODE" />
                                    <asp:BoundField DataField="FAMILY_INDEX" HeaderText="INDEX" ReadOnly="true"  SortExpression="FAMILY_INDEX" />
                                    <asp:BoundField DataField="FAMILY_NAME" HeaderText="特征族名称" 
                                        SortExpression="FAMILY_NAME" 
                                        HeaderStyle-HorizontalAlign="Center" >
                                        <ControlStyle Width="100px" />
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle Width="170px" />
                                    </asp:BoundField>
                                    <asp:BoundField DataField="GROUP_ID" HeaderText="GROUP_ID" SortExpression="GROUP_ID" />
                                    <asp:BoundField DataField="IS_USE" HeaderText="IS_USE" SortExpression="IS_USE" />
                                </Columns>
                                <FooterStyle CssClass="FooterStyle" />
                                <PagerStyle CssClass="PagerStyle" />
                                <SelectedRowStyle CssClass="SelectedRowStyle" />
                                <HeaderStyle CssClass="HeaderStyle" />
                                <EditRowStyle CssClass="EditRowStyle" />
                                <AlternatingRowStyle CssClass="AltRowStyle" />
                            </asp:GridView>
                            
                            
                        </asp:Panel>
                        <asp:SqlDataSource ID="sds_family" runat="server" ConnectionString="<%$ ConnectionStrings:CheryContrastDBConnectionString %>"
                            SelectCommand="SELECT [FAMILY_ID], [FAMILY_CODE],[FAMILY_INDEX], [FAMILY_NAME], [GROUP_ID], [IS_USE] FROM [t_softwarefamily] WHERE (([GROUP_ID] = @GROUP_ID) AND ([FAMILY_ISLOCAL] = @FAMILY_ISLOCAL) AND ([IS_USE] <> -99)) ORDER BY [FAMILY_INDEX]"
                            ConflictDetection="CompareAllValues" DeleteCommand="delete from [t_softwarefamily] WHERE [FAMILY_ID] = @original_FAMILY_ID AND [FAMILY_CODE] = @original_FAMILY_CODE AND [FAMILY_NAME] = @original_FAMILY_NAME AND [GROUP_ID] = @original_GROUP_ID AND [IS_USE] = @original_IS_USE"
                            InsertCommand="INSERT INTO [t_softwarefamily] ([FAMILY_CODE],[FAMILY_INDEX], [FAMILY_NAME], [FAMILY_DESC], [FAMILY_ISLOCAL], [GROUP_ID], [IS_USE]) VALUES (@FAMILY_CODE,'999', @FAMILY_NAME, '', 1, @GROUP_ID, @IS_USE)"
                            OldValuesParameterFormatString="original_{0}" 
                            UpdateCommand="UPDATE [t_softwarefamily] SET [FAMILY_NAME] = @FAMILY_NAME, [GROUP_ID] = @GROUP_ID, [IS_USE] = @IS_USE WHERE [FAMILY_ID] = @original_FAMILY_ID ">
                            <SelectParameters>
                                <asp:ControlParameter ControlID="ddl_group" Name="GROUP_ID" PropertyName="SelectedValue"
                                    Type="Int32" />
                                <asp:Parameter DefaultValue="1" Name="FAMILY_ISLOCAL" Type="Int32" />
                                <asp:Parameter DefaultValue="1" Name="IS_USE" Type="Int32" />
                            </SelectParameters>
                            <DeleteParameters>
                                <asp:Parameter DefaultValue="-99" Name="IS_USE" Type="Int32" />
                                <asp:Parameter Name="original_FAMILY_ID" Type="Int32" />
                                <asp:Parameter Name="original_FAMILY_CODE" Type="String" />
                                <asp:Parameter Name="original_FAMILY_NAME" Type="String" />
                                <asp:Parameter Name="original_GROUP_ID" Type="Int32" />
                                <asp:Parameter Name="original_IS_USE" Type="Int32" />
                            </DeleteParameters>
                            <UpdateParameters>
                                <asp:Parameter Name="FAMILY_CODE" Type="String" />
                                <asp:Parameter Name="FAMILY_NAME" Type="String" />
                                <asp:Parameter Name="GROUP_ID" Type="Int32" />
                                <asp:Parameter Name="IS_USE" Type="Int32" />
                                <asp:Parameter Name="original_FAMILY_ID" Type="Int32" />
                                <asp:Parameter Name="original_FAMILY_CODE" Type="String" />
                                <asp:Parameter Name="original_FAMILY_NAME" Type="String" />
                                <asp:Parameter Name="original_GROUP_ID" Type="Int32" />
                                <asp:Parameter Name="original_IS_USE" Type="Int32" />
                            </UpdateParameters>
                            <InsertParameters>
                                <asp:Parameter Name="FAMILY_CODE" Type="String" />
                                <asp:Parameter Name="FAMILY_NAME" Type="String" />
                                <asp:Parameter Name="GROUP_ID" Type="Int32" />
                                <asp:Parameter Name="IS_USE" Type="Int32" />
                            </InsertParameters>
                        </asp:SqlDataSource>
                       <asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="TextBox_Local_Family"
                            Display="Dynamic"></asp:CustomValidator>
                    </td>       
    这是上面左侧页面的代码
      

  5.   

     <td>
                        <asp:Panel ID="Panel_feature_required" runat="server" BorderWidth="0px" Height="300px"
                            ScrollBars="Auto" Width="400px">
                            <asp:GridView ID="gv_feature_required" runat="server" 
                                AutoGenerateColumns="False" CssClass="GridViewStyle" 
                                DataKeyNames="FEATURE_ID" DataSourceID="sds_feature" Width="400px">
                                <RowStyle CssClass="RowStyle" />
                                <Columns>
                                    <asp:TemplateField HeaderText="操作" ShowHeader="False">
                                      <HeaderStyle HorizontalAlign="Center" Width="80px" />
                                        <ItemTemplate>
                                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
                                                Text="编辑" ></asp:LinkButton>
                                            &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Delete"
                                                OnClientClick="{if(confirm('确定要删除该特征吗,这将会影响整车条码顺序?')){return true;}return false;}" Text="删除"
                                                ></asp:LinkButton>
                                        </ItemTemplate>
                                        <EditItemTemplate>
                                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
                                              OnClientClick="{if(confirm('确定要更新该特征吗?')){return true;}return false;}" Text="更新"></asp:LinkButton>
                                            &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
                                                Text="取消"></asp:LinkButton>
                                        </EditItemTemplate>
                                      <ItemStyle Width="80px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="是否启用">
                                       <HeaderStyle HorizontalAlign="Center" />
                                        <ItemTemplate>
                                            <asp:CheckBox ID="chk_feature_required" runat="server" Checked='<%# Bind("IS_USE") %>'
                                                AutoPostBack="True"  />
                                        </ItemTemplate>
                                        <ItemStyle Width="60px" />
                                    </asp:TemplateField>                            
                                    
                                     <asp:BoundField DataField="FEATURE_NAME" HeaderText="特征名称" 
                                        SortExpression="FEATURE_NAME"  ItemStyle-Width="200px" 
                                        HeaderStyle-HorizontalAlign="Center" >
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle Width="100px" />
                                    </asp:BoundField>
                                    <asp:BoundField DataField="FEATURE_BINARY" HeaderText="二进制编码" 
                                        SortExpression="FEATURE_BINARY"  ItemStyle-Width="200px" 
                                        HeaderStyle-HorizontalAlign="Center" >
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle Width="100px" />
                                    </asp:BoundField>
                                    <asp:BoundField DataField="FEATURE_ID" HeaderText="FEATURE_ID" InsertVisible="False"
                                        ReadOnly="True" SortExpression="FEATURE_ID" />
                                    <asp:BoundField DataField="FEATURE_CODE" HeaderText="FEATURE_CODE" SortExpression="FEATURE_CODE" />
                                      
                                    <asp:BoundField DataField="FEATURE_DESC" HeaderText="FEATURE_DESC" SortExpression="FEATURE_DESC" />
                                    <asp:BoundField DataField="FAMILY_ID" HeaderText="FAMILY_ID" SortExpression="FAMILY_ID" />
                                    <asp:BoundField DataField="IS_USE" HeaderText="IS_USE" SortExpression="IS_USE" />
                                </Columns>
                                <FooterStyle CssClass="FooterStyle" />
                                <PagerStyle CssClass="PagerStyle" />
                                <SelectedRowStyle CssClass="SelectedRowStyle" />
                                <HeaderStyle CssClass="HeaderStyle" />
                                <EditRowStyle CssClass="EditRowStyle" />
                                <AlternatingRowStyle CssClass="AltRowStyle" />
                            </asp:GridView>
                        </asp:Panel>
                        
                        <asp:SqlDataSource ID="sds_feature" runat="server" ConnectionString="<%$ ConnectionStrings:CheryContrastDBConnectionString %>"
                            SelectCommand="SELECT [FEATURE_ID], [FEATURE_CODE],[FEATURE_BINARY], [FEATURE_NAME], [FEATURE_DESC], [FAMILY_ID], [IS_USE] FROM [t_softwarefeature] WHERE (([FAMILY_ID] = @FAMILY_ID) AND ([IS_USE] <> -99)) ORDER BY [FEATURE_ID]"
                            ConflictDetection="CompareAllValues"  
                            DeleteCommand="delete from [t_softwarefeature]  WHERE [FEATURE_ID] = @original_FEATURE_ID AND [FAMILY_ID] = @original_FAMILY_ID AND [IS_USE] = @original_IS_USE"
                            OldValuesParameterFormatString="original_{0}" 
                            UpdateCommand="UPDATE [t_softwarefeature]   SET [FEATURE_NAME]=@FEATURE_NAME, [FEATURE_BINARY] = @FEATURE_BINARY WHERE [FAMILY_ID] = @original_FAMILY_ID  AND [FEATURE_ID] = @original_FEATURE_ID">
                            <SelectParameters>
                                <asp:ControlParameter ControlID="gv_family_required" Name="FAMILY_ID" PropertyName="SelectedValue"
                                    Type="Int32" />
                                <asp:Parameter DefaultValue="1" Name="IS_USE" Type="Int32" />
                            </SelectParameters>
                              <DeleteParameters>
                                <asp:Parameter DefaultValue="1" Name="IS_USE" Type="Int32" />                            <asp:Parameter Name="original_FAMILY_ID" Type="Int32" />
                                <asp:Parameter Name="original_FEATURE_ID" Type="String" />
                            </DeleteParameters>
                           
                              <UpdateParameters>
                                <asp:Parameter Name="FEATURE_CODE" Type="String" />
                                <asp:Parameter Name="FEATURE_BINARY" Type="String" />
                                <asp:Parameter Name="FEATURE_NAME" Type="String" />
                                <asp:Parameter Name="FAMILY_ID" Type="Int32" />
                                <asp:Parameter Name="IS_USE" Type="Int32" />
                                <asp:Parameter Name="original_FEATURE_ID" Type="Int32" />
                                <asp:Parameter Name="original_FEATURE_CODE" Type="String" />
                                <asp:Parameter Name="original_FEATURE_BINARY" Type="String" />
                                <asp:Parameter Name="original_FEATURE_NAME" Type="String" />
                                <asp:Parameter Name="original_FAMILY_ID" Type="Int32" />
                                <asp:Parameter Name="original_IS_USE" Type="Int32" />
                            </UpdateParameters>
                         
                                <InsertParameters>
                                <asp:Parameter Name="FEATURE_CODE" Type="String" />
                                <asp:Parameter Name="FEATURE_BINARY" Type="String" />
                                <asp:Parameter Name="FEATURE_NAME" Type="String" />
                                <asp:Parameter Name="FEATURE_DESC" Type="String" />
                                <asp:Parameter Name="FAMILY_ID" Type="Int32" />
                                <asp:Parameter Name="IS_USE" Type="Int32" />
                            </InsertParameters>
                        </asp:SqlDataSource>
                      
                       <asp:CustomValidator ID="CustomValidator2" runat="server" ControlToValidate="TextBox_Local_feature"
                            Display="Dynamic"></asp:CustomValidator>
                    </td>
    这是上述右侧页面的代码
      

  6.   

    <%@ Page MaintainScrollPositionOnPostback="true" %>
    设置一下这个属性.
      

  7.   

    修改左边选择的LinkButton,用<a>或者其它代替,单击时用AJAX更新右边
      

  8.   

    asp.net的UpdatePanel控件就是解决这类问题的!
      

  9.   

    如果仅仅是一个“滚动”问题,那么设置 MaintainScrollPositionOnPostBack 属性就可以了。但是还有很多问题,例如客户是不是觉得屏幕总是刷新闪烁?是不是url的历史记录总是一大堆垃圾地址?等等。综合起来,那么使用一个UpdatePanel才能解决这一大堆问题。
      

  10.   

    这个问题就是一个“滚动”问题,我设置了<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="AdminOnlineFamily.aspx.vb" Inherits="CHERY.AdminOnlineFamily" MaintainScrollPositionOnPostBack="true" %>但是还是不起作用,点击还是自动跳到第一行。