我有一个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')**">
答案 0 :(得分:2)
如果触发回发的控件位于更新面板中,或者在更新面板的触发器集合中引用了控件,则只会触发部分回发。
这可能是问题吗?
使用__doPostBack来触发部分回发 - 你需要在__doPostBack调用中引用updatepanel ID,例如。
__doPostBack('btnInsideUpdatePanel', '');
值得注意的是,第一个参数是ID而不是theClientID。如果使用clientID,则在回发时无法获得正确的事件处理。查看此论坛上的answer
本文提供了详细信息
http://encosia.com/easily-refresh-an-updatepanel-using-javascript/
任何帮助?
修改强>
我会考虑将您的锚点更改为“链接”按钮。锚点html控件不会像链接按钮那样引发页面事件(虽然我相信你所做的事情可以触发部分回发是公平的)。
以下链接非常适合您,如果您还没有看到它可能会有所帮助
干杯