2013-02-26 124 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