我在母版页中有一个用户控件(错误控件)。默认情况下,用户控件是隐藏的(可见错误)
点击提交按钮我显示错误控件。现在回帖我想把焦点带到这个控件。我正在编写注册启动脚本中的java脚本如下:
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Scroll", "window.scrollTo(0, 0)", true);
回发页面上的显示此控件,然后返回到之前的滚动位置。
答案 0 :(得分:0)
您是否已将MaintainScrollPositionOnPostback
设置为页面/母版页顶部的page directive或网址的<pages>
element中的true
?
您还可以查看在回发处理程序中使用控件的Focus
method
修改以澄清:
如果其中任何一个设置为true
,那么它们很可能会覆盖您的启动脚本以将页面发送回页面顶部 - 您是否尝试在Page指令中将其设置为false ,或在显示错误控件的相同代码中的Page对象上?
答案 1 :(得分:0)
最后我解决了这个问题。以下是我这样做的方式......
我在我的用户控件(放置错误控件)的位置添加了一个宽度为零的文本框
现在每当发生错误时我都会调用以下方法。
public void SetFocus()
{
ScriptManager3.SetFocus(txtFocus.ClientID);
}
尽管错误控制并未集中在现实中,但这种巧妙的工作有助于我实现目标。
希望它对其他人有帮助
答案 2 :(得分:0)
private void Control_GotFocus(object sender, EventArgs e)
{
Console.WriteLine("Control GotFocus : " + ((sender as Control).Name));
}