专注于C#中的用户控件

时间:2010-02-24 09:39:47

标签: c# asp.net javascript

我在母版页中有一个用户控件(错误控件)。默认情况下,用户控件是隐藏的(可见错误)

点击提交按钮我显示错误控件。现在回帖我想把焦点带到这个控件。我正在编写注册启动脚本中的java脚本如下:

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Scroll", "window.scrollTo(0, 0)", true);
回发页面上的

显示此控件,然后返回到之前的滚动位置。

3 个答案:

答案 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));
    }