2013-02-26 63 views
1

我在更新面板中調用以下javascript函數,其中刷新我的頁面儘管它位於更新面板中!javascript功能在更新面板中進行完整回發

<script type="text/javascript" language="javascript"> 
    function get_emp_num(source, eventArgs) { 
     var txt_emp_num = "<%= txt_RequestEmpNum.ClientID %>"; 
     document.getElementById(txt_emp_num).value = eventArgs.get_value(); 
     __doPostBack("<%=txt_RequestEmpNum.ClientID %>"); 
    } 

    function get_person_num(source, eventArgs) { 
     var txt_person_num = "<%= txt_RequestPersonNum.ClientID %>"; 
     document.getElementById(txt_person_num).value = eventArgs.get_value(); 
     __doPostBack("<%=txt_RequestPersonNum.ClientID %>"); 
    } 

</script> 

我不希望這個腳本來改變局部後回我的更新面板的行爲。如何做到這一點?

+0

你用'c#'標籤是因爲..? – 2013-02-26 16:30:38

+0

對不起,我刪除它 – 2013-02-26 16:31:59

+0

你是說你不想刷新頁面?我不明白.. – christopher 2013-02-26 16:32:06

回答

0

如果你不想做一個完整的頁面回發,那麼你會想實現一個使用AJAX的解決方案。我會去使用jQuery,因爲它使得使用AJAX更容易一些(在我看來,無論如何)。

1

什麼是您的回發控件,它是否在更新面板上設置爲異步觸發器?根據您發佈的代碼,我懷疑txt_RequestEmpNum和txt_RequestPersonNum是文本框。這些控件本身不支持回發。你需要的是一個隱藏的按鈕,你的JavaScript將「點擊」發送回發。這樣的事情:

<asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="Button1" /> 
    </Triggers> 
    <ContentTemplate> 
     <asp:TextBox ID="txt_RequestEmpNum" runat="server" /> 
     <asp:TextBox ID="txt_RequestPersonNum" runat="server" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 
<div style="display: none;"> 
    <asp:Button id="Button1" runat="server" OnClick="Button1_Click" /> 
</div> 

<script> 
    function get_emp_num(source, eventArgs) { 
     // I am unsure what your intent was with the code here so I removed it 
     __doPostBack("<%=Button1.UniqueID %>", ""); 
    } 

    function get_person_num(source, eventArgs) { 
     // I am unsure what your intent was with the code here so I removed it 
     __doPostBack("<%=Button1.UniqueID %>", ""); 
    } 

    function refresh_using_jquery() { 
     __doPostBack($('#<%=Button1.ClientID %>').attr('name'), ''); 
    } 
</script> 
+0

同樣的問題。 – 2013-02-27 07:22:00

+0

@just_name,對不起,這是遲到了,我用錯了標識符。 __doPostBack需要按鈕的name屬性,而不是id。 UniqueID應該返回該值。如果你在頁面上有jquery,我可以添加另一個選項。 – 2013-02-27 14:56:17

相關問題