javascript函数在更新面板中进行完整的回发

时间:2013-02-26 16:29:58

标签: javascript jquery asp.net ajax updatepanel

我在更新面板中调用以下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>

我不希望此脚本更改我的更新面板的部分回发行为。如何做到这一点?

2 个答案:

答案 0 :(得分:1)

您的回发控制是什么,它是否设置为更新面板上的异步触发器?根据您发布的代码,我怀疑txt_RequestEmpNum和txt_RequestPersonNum是文本框。这些控件本身不支持回发。你需要的是页面上的一个隐藏按钮,你的javascript将会点击&#34;点击&#34;发送回传。像这样:

<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>

答案 1 :(得分:0)

如果您希望不进行全页回发,那么您将需要实现使用AJAX的解决方案。我会使用jQuery,因为它使得使用AJAX更容易(在我看来,无论如何)。