2010-02-24 74 views
0

我在母版頁中有一個用戶控件(錯誤控件)。默認情況下,用戶控件被隱藏在一個提交按鈕的點擊(上可見的僞)專注於C#中的用戶控件

我顯示對職位的錯誤control.Now回來,我希望把焦點移動到此control.I正在寫寄存器啓動的Java腳本腳本如下:

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Scroll", "window.scrollTo(0, 0)", true); 

在回發頁面上升顯示此控件,然後回到其上一個滾動位置。

回答

0

有你的page directive在你的頁面/母版頁的頂部或在你的web.config的<pages> element設置MaintainScrollPositionOnPostbacktrue

你也可以看看使用控制的Focus method在回傳處理

編輯澄清:

如果這些被設置爲true那麼它很可能,他們將覆蓋啓動腳本將頁面發送回頁面的頂部 - 是否已嘗試在頁面指令中或在顯示錯誤控制的相同代碼的頁面對象中將其設置爲false?

+0

我已嘗試也它dosent工作很有幫助 – SaveMe 2010-02-24 12:10:23

+0

嗨,我呼籲按鈕的單擊事件還沒有使用跟隨着方法..如u可以看到我已經試過腳本經理。 setfocus也沒有喘息的機會。 () public void SetFocus() Page.MaintainScrollPositionOnPostBack = false; ScriptManager.RegisterStartupScript(Page,Page.GetType(),「Scroll」,「window.scrollTo(0,0)」,true); // ScriptManager1.SetFocus(ErrorControl1.FocusControl); } – SaveMe 2010-02-24 13:19:41

0

最後我解決了這個問題。以下是我這樣做

現在每當我打電話下發生錯誤的方式......

在我的用戶控件(誤差控制放置)我已經加入的長零%的文本框在同一方法。

public void SetFocus() 
     { 
      ScriptManager3.SetFocus(txtFocus.ClientID); 
     } 

儘管錯誤控制並不專注於現實,但這種巧妙的解決方法可以幫助我實現目標。

希望這是對別人

0
private void Control_GotFocus(object sender, EventArgs e) 
    { 
     Console.WriteLine("Control GotFocus : " + ((sender as Control).Name)); 
    }