0

我在 ma 网站上有一个长的 GridView 控件。它允许行选择。问题是,当我向下滚动此 GridView 并选择一些底部行时,会发生选择,但整个 GridView 正在滚动回顶部。

我参考此链接来解决我的问题,但无法在 GridView 控件中找到任何属性。我也在msdn Link上搜索。

请指导我这个属性在哪里以及如何解决我的问题。基于下面的复选框事件,我选择了该行。选中复选框后启用删除和编辑按钮。

 protected void ChkChanged_Click(object sender, EventArgs e)
    {

        int count = 0;
        foreach (GridViewRow gr in grdProducts.Rows)
        {

            CheckBox chkGrd = ((CheckBox)gr.FindControl("CheckBox2"));
            ImageButton editbutton = gr.FindControl("btnEdit") as ImageButton;
            ImageButton deleteButton = gr.FindControl("btnDeleted") as ImageButton;
            if (chkGrd.Checked)
            {
                count++;
                editbutton.Visible = true;
                deleteButton.Visible = true;                

                if (count > 1)
                    break;

            }
            else
            {
                editbutton.Visible = false;
                deleteButton.Visible = false;

            }
        }


        if (count > 1)
        {
            foreach (GridViewRow gr in grdProducts.Rows)
            {
                CheckBox chkGrd = ((CheckBox)gr.FindControl("CheckBox2"));
                ImageButton editbutton = gr.FindControl("btnEdit") as ImageButton;
                ImageButton deleteButton = gr.FindControl("btnDeleted") as ImageButton;
                if (chkGrd.Checked)
                {
                    editbutton.Visible = false;
                    deleteButton.Visible = false;
                }
            }

            DeleteAll.Enabled = true;
        }


    }
4

3 回答 3

0

您能否提供您的“ row selection”代码,是否将整个页面发回,如果是,请尝试将 GridView 放入UpdatePanel,以便将事件发送到服务器而无需实际重新加载整个页面。

于 2012-12-28T06:52:49.633 回答
0

滚动条在哪里 - 到页面或网格视图?如果可能,摆脱网格视图的滚动条并在页面级别获得滚动条。在这种情况下,您可以使用MaintainScrollPositionOnPostback,它是一个页面属性,它在回发时保持页面的滚动位置。

如果您的布局不允许您在页面上有滚动条,那么我建议您在网格视图中使用容器 div,并在 div 级别(而不是表格,即网格视图)级别使用滚动条。现在,您可以有一些 JS 代码,可以在页面提交之前将滚动位置记录到隐藏字段中,然后同样可以在 post-back 后使用来恢复位置。请参阅使用这种技巧的链接:http: //michaelsync.net/2006/06/30/maintain-scroll-position-of-div-using-javascript-aspnet-20

于 2012-12-28T08:44:25.820 回答
0

我找到了答案。

在 GridViewRow 中有 Focus() 方法。

 gr.Focus(); 

这是 95% 设置在您的 gridview 选择行中的位置。

于 2012-12-28T10:02:24.943 回答