2011-07-09 39 views
1

我正在使用Ajax ModalPopupExtender來顯示彈出式面板。該面板有一個TextBox。我想setfocusTextBox,同時彈出面板。是否有任何方法或機制將焦點設置爲彈出式擴展程序。我嘗試了很多方法來實現這一目標,但失敗了。請幫助解決此問題。ModalPopupExtender setfocus問題

+0

是的,我得到了解決,添加以下JavaScript函數

1

添加下面的JavaScript:

function pageLoad() { 
    $find('modalPopupBehaviorID').add_shown(function() { 
     $get("<%= TextBox1.ClientID %>").focus(); 
    }); 
} 
+0

我需要調用這個Javascript函數嗎? –

+0

不通。這是在Application.Init和endRequest事件上調用的預定義函數名稱。 –

+0

不爲我工作,謝謝 –

1

既然你已經嘗試了許多方法沒有取得任何成功,在面板和文本框存在之前,重點代碼有一點點機會執行一點點。 ('document.getElementById(「TextBox」)。focus();',1);};}}

0

rkw的答案在其他人幫助我得到了一個複雜的修復。爲了正確地將焦點放在我的模態文本框中,我不得不使用超時和調用另一個函數。較少複雜的解決方案對我無效。我相信,增加setFocus()允許正確的執行隊列達到我想要的目的。 ...希望這可以幫助別人。像rkw建議的那樣,完成任務只需要一毫秒。

//標記

    <asp:Button ID="btnShow" runat="server" Text="Add New Test" OnClick="btnShow_OnClick" OnClientClick="return modalAdjust()" /> 

// JavaScript的

function setFocus() { 
       try { 
        document.getElementById('<%= TextBox_TestDescription.ClientID %>').focus(); 
       } catch (e) { 
        alert(e); 
       } 
      } 

      function modalAdjust() { 
       try { 
        setTimeout("setFocus();", 1); 
       } 
       catch (e) { 
        alert(e); 
       } 
      }