我有一个“旧”的 ASP.NET 站点,我想改进一下。我想做的一个领域是页面更新——现在,它总是整页更新,但我想开始使用部分更新。
我希望能够为此使用 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
和两个DropDowns
. 每当这些控件中的某些内容发生更改时,现在都会发出回发(它们已AutoPostback="true"
设置)。
我的问题是:我如何告诉我的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
内容区域中的那些控件不可见,所以我想我不能真正将它们添加为更新触发器,对吗?
要么我完全没有得到它(绝对有可能!),要么我错过了一个明显的步骤/技巧来让它工作 - 或者这是不可能的。让我知道!