我剛剛開始在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會觸發刷新updatepanel up1觸發方法'refreshUP1'。但在我的情況下,所有的更新面板正在刷新,至少方法'refreshUP2'和'refreshUP3'運行,導致不希望的行爲...
任何方法將受到歡迎!