1

我有一个 LiteralText,当我单击我的控件时它会更改数据。我阅读了一些指南,如果我在 UpdatePanel 中更新 LiteralText,它应该只进行部分更新,但它会更新整个页面。

我还阅读了另一个指南,其中说将我的 __doPostBack 更改为 clientID 但也没有用。

所以这是我的 aspx 端代码:

<div id="modalbox" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
    aria-hidden="true">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"  ChildrenAsTriggers="true" UpdateMode="Conditional">
        <ContentTemplate>
           //Some Codes
                    <asp:Literal ID="modalTitle" runat="server"></asp:Literal>
           //More Codes
        </ContentTemplate>
    </asp:UpdatePanel>

我的 doPostBack 代码:

        <script type="text/javascript">
            function changeModalTitle(eventTarget, parameter) {
                __doPostBack('<%=modalboxStaff.ClientID%>;', parameter)
            }
        </script>

以及调用这两个代码的代码:

    <a href='#modalbox' data-toggle='modal' runat="server" id="modalboxStaff" **onclick="javascript:changeModalTitle('AddStaff', 'Sup World')**">
4

1 回答 1

2

如果触发回发的控件在更新面板中,或者在更新面板的触发器集合中引用了该控件,它只会触发部分回发。

这可能是问题吗?

使用 __doPostBack 触发部分回发 - 您需要在 __doPostBack 调用中引用更新面板 ID,例如

__doPostBack('btnInsideUpdatePanel', '');

值得注意的是,第一个参数是 ID 而不是 theClientID。如果使用了 clientID,那么您在回发时不会得到正确的事件处理。看看这个论坛的答案

这篇文章给出了详细信息

http://encosia.com/easily-refresh-an-updatepanel-using-javascript/

有什么帮助吗?

编辑

我会考虑将您的锚点更改为链接按钮。锚 html 控件不会以与链接按钮相同的方式引发页面事件(尽管我相信您所做的可以触发部分回发是公平的)。

并且下面的链接几乎是在做你正在做的事情,如果你还没有看到它可能会有所帮助

http://weblogs.asp.net/jeffreyzhao/archive/2008/04/26/refresh-the-updatepanel-using-javascript-code.aspx

干杯

于 2013-06-22T15:24:50.263 回答