我在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;
}
}
答案 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。