少し改善したい "レガシー" ASP.NET サイトがあります。私が何とかしたい分野の 1 つはページの更新です。今のところ、常にページ全体の更新ですが、部分的な更新の使用を開始したいと考えています。
私はこれに ASP.NET を使用できることを望んでいましたがUpdatePanel
、これを機能させる方法に少しこだわっています。
いくつかのコンテンツ プレースホルダーを定義するマスター ページがあります。単純化すると、次のようになります。
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Default.master.cs" Inherits="WebForms_Default" %>
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>MyTitle</title>
</head>
<body>
<form id="myForm" runat="server">
<asp:ScriptManager ID="smgrMaster" runat="server" LoadScriptsBeforeUI="true">
<Scripts>
<asp:ScriptReference Path="~/Scripts/jquery-1.4.2.min.js" />
</Scripts>
</asp:ScriptManager>
<asp:ContentPlaceHolder runat="server" ID="cphSearch" />
<asp:ContentPlaceHolder runat="server" ID="cphContent" />
</form>
</body>
</html>
私のコンテンツ ページでは、私のグリッドはcphContent
領域内のデータを表示しています - そして私のcphSearch
領域にはいくつかの入力コントロールがあります - aRadioButtonList
と two DropDowns
。これらのコントロールの何かが変更されるたびに、今のところ、ポストバックが発行されます (AutoPostback="true"
設定されています)。
私の問題は、次の 3 つのコントロールからのポストバックを「リッスン」するようにUpdatePanel
(エリア内のグリッドをラップしようとしている) にどのように指示するかです。cphContent
cphSearch
<asp:UpdatePanel>
<ContentTemplate>
<asp:GridView>
// grid view defined here
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID=".. what values to put here?? .." />
<asp:PostBackTrigger ControlID=".. - what values to put here?? .." />
</Triggers>
my を追加すると<asp:UpdatePanel>
、 section<Triggers>
が表示されますが、コンテンツ領域のそれらのコントロールがcphSearch
表示されないため、更新トリガーとして実際に追加することはできないと思いますよね?
私はそれを完全に理解していません(絶対に可能です!)、またはこれを機能させるための明らかな手順/トリックが欠けているか、または単に不可能です。お知らせ下さい!