在同一页面中提交后,将焦点设置为元素

时间:2011-07-06 11:42:29

标签: c# asp.net

我希望在用户点击“提交”后将焦点设置为元素(按钮),但焦点不在于它位于同一页面的新页面上。发生的事情是,当他们点击提交时,我正在评估一些条件..如果其中一个满足,我将它们发送回同一页面(或不重新指导),但它仍然会回发,所以,当它回复后我再次提交,我想把重点放在这个项目上..我怎么能这样做?

3 个答案:

答案 0 :(得分:4)

所以你想将页面的焦点设置为页面上的WebControl吗?即<asp:Button>

您可以使用ControlId.Focus()

修改

如果您在回发后谈论滚动位置,那么您可以试试这个

<%@ Page MaintainScrollPositionOnPostback="true" %>

现在我从未使用它或尝试过,所以不确定它是否有效。

答案 1 :(得分:0)

尽管您的问题对我来说似乎不太清楚,但我假设您要将焦点设置为asp.net控件,以便您可以这样做

protected void Page_Load(object sender, EventArgs e)
    {
        if(Page.IsPostBack)
        {
           if(vartemp === vartemp2) //assuming that you want to set focus when specific condition meets
             myButton1.Focus();
        }
    }

答案 2 :(得分:0)

使用hiddenfield并在进行回发之前使用您要验证的控件的controlId设置其值。在pageload事件中,您可以检查隐藏字段的值并关注该控件。

或者您可以使用validationcontrols进行验证。