0

次のような更新パネルが生成されたページがあります。

foreach(DataRow r in GetSteps(ID).Rows)
    {

      UpdatePanel StepPanel = new UpdatePanel();
      StepPanel.ID = "stepPanel_" + r["StepID"].ToString();

      StepPanel.ContentTemplateContainer.Controls.Add(GenerateInnerPanel(r));
      StepHolder.Controls.Add(StepPanel);         

    }

これにより、すべての UpdatePanels が生成され、ページのプレースホルダーに追加されます。

<asp:PlaceHolder ID="StepHolder" runat="server"></asp:PlaceHolder>

各 UpdatePanel 内には、次の JavaScript 関数を呼び出すクリック可能なパネルがあります。

function StepClick(sender, stepID){
  __doPostBack(sender.ID, stepID);
}

JavaScript がポスト バックし、送信者を確認して、ページの読み込み時にクリックされた更新パネルに詳細を追加します。

私が抱えている問題は、更新パネルの div の 1 つをクリックすると、含まれている更新パネルのコンテンツをポストバックするだけでなく、完全なポストバックが発生することです。ページ全体ではなく、それ自体のみをポストバックするように更新パネルを設定するにはどうすればよいですか? たぶんそれは設定でさえないかもしれません。

助けてくれて本当にありがとうございます!

4

1 に答える 1

1

updatemode を条件付きとして設定し、div をトリガーとして設定するか、ChildrenAsTriggers=true を設定します。

また、ASPX ページに scriptmanager が配置されていることを確認してください。このようにして、サーバー側の関数を無差別に呼び出すことができます。

于 2013-05-14T11:47:47.770 に答える