1

ページに 2 つのパネルがあります。最初のパネルが更新されると、最初のパネルのコードが実行されます。2 番目のパネルが更新される (テキストが変更される) と、最初のパネルのコードが実行されます。2 番目のパネルのボタンをクリックして正しいコードを実行することはできますが、2 番目のパネルが変更されたときに正しいトリガーが起動しないのはなぜですか?

開発マシン上の Windows Server 2008R2 と Windows 7 IIS の両方でこれを試しました。

TESTPANEL.ASPX

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="testpanel.aspx.vb" Inherits="tpanels.testpanel" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Button runat="server" ID="btn1" Text="BTN1" OnClick="btn1_click" />
<asp:Button runat="server" ID="BTN2" Text="BTN2" OnClick="btn2_Click" />
      <asp:UpdatePanel runat="server" ID="pnl1" UpdateMode="Conditional" ChildrenAsTriggers="False">
        <ContentTemplate>
          <asp:TextBox runat="server" ID="txt1" value="start"></asp:TextBox>
          <asp:TextBox runat="server" ID="txt2" value="start"></asp:TextBox>
        </ContentTemplate>

      </asp:UpdatePanel>
      <asp:UpdatePanel runat="server" ID="pnl2" UpdateMode="Conditional" ChildrenAsTriggers="False">
        <ContentTemplate>
          <asp:TextBox runat="server" ID="txt3" value="start"></asp:TextBox>
          <asp:TextBox runat="server" ID="txt4" value="start"></asp:TextBox>
        </ContentTemplate>
        <Triggers>
          <asp:AsyncPostBackTrigger ControlID="BTN2"  EventName="click" />
        </Triggers>
      </asp:UpdatePanel>

    </div>
    </form>
</body>
</html>

テストパネル.ASPX.VB

Public Class testpanel
    Inherits System.Web.UI.Page
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

  End Sub

  Protected Sub BTN2_Click(sender As Object, e As EventArgs)
    txt4.Text = txt3.Text
  End Sub

  Protected Sub btn1_Click(sender As Object, e As EventArgs)
    txt2.Text = txt1.Text
  End Sub
End Class
4

0 に答える 0