私は、少なくともライターとして、stackoverflow を始めたばかりです... AJAX に関して遭遇したいくつかの問題について、助けていただければ幸いです。まず、私は仕事で AJAX を実装しましたが、button_onclick によって更新される UpdatePanel などの基本的なものだけに実装しました。しかし今、複数の方法で更新される複数の UpdatePanel を実装する必要があります。
HTML コードを簡略化しましたが、基本的には次のようになります。
<script type="text/javascript">
function mostrarDatosSolicitante() {
var nroDoc = document.getElementById('<%=txtDocumento.ClientID%>').value;
if (nroDoc != "") {
__doPostBack('<%=up1.ClientID%>', '');
}
}
</script>
<table>
<tr>
<td>
<b>Documento </b>
</td>
<td>
<asp:TextBox runat="server" id="txtDoc"
onblur="mostrarDatosSolicitante()"/>
</td>
<td>
<asp:Button runat="server" id="btnConfirmar"
Text="Confirmar" />
</td>
</tr>
</table>
<asp:ScriptManager ID="ScriptManager1" runat="server"
EnablePartialRendering="True" />
<asp:UpdatePanel ID="up1" runat="server"
OnLoad="refreshUP1" UpdateMode="Conditional">
<ContentTemplate>
<!--some stuff-->
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="up2" runat="server"
OnLoad="refreshUP2" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnConfirmar" />
</Triggers>
<ContentTemplate>
<!--some stuff 2-->
<asp:UpdatePanel ID="up3" runat="server"
OnLoad="refreshUP3" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlTipoConvInt" />
</Triggers>
<ContentTemplate>
<!--some stuff 3-->
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
そして私のコードビハインドは次のようになります:
protected void refreshUP1(object sender, EventArgs e)
{
//do something
}
protected void refreshUP2(object sender, EventArgs e)
{
//do something
}
protected void refreshUP3(object sender, EventArgs e)
{
//do something
}
私が解決する必要がある問題は、テキストボックスを離れると、javascript が起動され、メソッド 'refreshUP1' を起動する updatepanel up1 を更新することです。しかし、私の場合、すべての更新パネルが更新され、少なくともメソッド「refreshUP2」と「refreshUP3」が実行され、望ましくない動作が発生します...
どんなアプローチでも大歓迎です!!!