GridView控件中的FirstDisplayedScrollingRowIndex属性?

时间:2012-12-28 06:46:16

标签: c# asp.net gridview

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

我引用this link来解决我的问题,但无法在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;
        }


    }

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

滚动条在哪里 - 到页面还是在网格视图中?如果可能,将滚动条移除到网格视图并在页面级别获取滚动条。在这种情况下,您可以使用MaintainScrollPositionOnPostback这是一个页面属性,并在后面维护页面的滚动位置。

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

答案 2 :(得分:0)

我找到了答案。

在GridViewRow中有Focus()方法。

 gr.Focus(); 

95%的人在你的gridview中选择了Row。