2008-12-22 32 views
0

我正在與ASP.NET做一些客戶端JavaScript。
我有以下JavaScript處理XMLHTTPRequest回調。在某些情況下,頁面將使用ASP.NET提供的__doPostBack()函數返回,並在下面的代碼中列出。不過,我希望能夠在回發後設置下拉列表控件的焦點。有沒有一種方法可以使用Javascript來設置它,或者我需要以其他方式進行設置。設置焦點回發由javascript發起

function onCompanyIDSuccess(sender, e) { 
     if (sender == 0) 
      document.getElementById(txtCompanyIDTextBox).value = ""; 
     document.getElementById(txtCompanyIDHiddenField).value = sender; 
     if (bAutoPostBack) { 
      __doPostBack(txtCompanyIDTextBox, ''); 
     } 
    } 

回答

0

我找到了這個解決方案。在爲每個特定項目調用事件處理程序後面的代碼中,我將Control.Focus()作爲最後一行。舉例來說,如果一個下拉列表事件處理程序被觸發,下一控制得到重點是郵政編碼文本框:

protected void ddl_state_selectedValueChanged(Object sender, EventArgs e) 
{ 
    // ... here is all my code for the event handler 

    txtZipCode.Focus(); 
} 

容易得多,我什麼,我要怎樣做。我一直試圖通過創建Javascript來實現過度複雜的事情,而這正是微軟已經在框架中爲我做的。

3

既然你做了充分的回傳,你需要使用Page.SetFocus在服務器端得到的下一個頁面加載發出相應的JavaScript。否則,在一個純粹的AJAX解決方案 - document.getElementById('id')。focus()會做的伎倆。

+0

+1。你證明了什麼使得在網絡上成爲如此美妙的資源。 – PEZ 2008-12-22 20:28:47