首先在上一篇也提到过这样一个理论:在谈论UpdatePanel控件的刷新时,当UpdatePanel控件中的子控件触发Async-Postback动作时,刷新的区域是“涵盖网页上的所以将UpdateMode(vs提示的属性描述是“指明updatepanel是将在每次异步同发是刷新还是只在发生特定操作时刷新”)设为Always的UpdatePanel控件”,而不是单单只有触发Async-Postback的那个UpdatePanel控件。用我的话说,就是一个页面上有可能有多个updatepanel控件,而每个updatepanel控件有一个共同的属性是UpdateMode,updateMode属性又有两个值:一个是Always,一个是Conditional。当页面每刷新一次,这样页面中的所有将updateMode属性设为Always的updatepanel也会跟着刷新,而这个页面中那些将updateMode属性设为Conditional的updatepanel会根据特定的操作条件来刷新,那么这个特定条件是用什么来设置的呢?答案是交由Triggers(vs提示的属性描述是“可以导致updatepanel更新的触发器的集合)或程序来控制该updatepanel控件的刷新。
{
//当用户点击Button1时,GridView1控件的第3行数据处于编辑状态。
GridView1.EditIndex = 2;
GridView1.DataBind();
}
2<head runat="server">
3 <title>无标题页</title>
4 <script type="text/javascript">
5
6 function pageLoad() {
7 }
8
9 </script>
10</head>
11<body>
12 <form id="form1" runat="server">
13 <div>
14 <asp:ScriptManager ID="ScriptManager1" runat="server" />
15 </div>
16 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
17 <ContentTemplate>
18 <asp:GridView ID="GridView1" runat="server"
19 AutoGenerateColumns="False"
20 DataSourceID="SqlDataSource1" EmptyDataText="没有可显示的数据记录。" AllowPaging="True"
21 PageSize="5">
22 <Columns>
23 <asp:CommandField ShowEditButton="True" />
24 <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False"
25 ReadOnly="True" SortExpression="id" />
26 <asp:BoundField DataField="projectid" HeaderText="projectid"
27 SortExpression="projectid" />
28 <asp:BoundField DataField="marketid" HeaderText="marketid"
29 SortExpression="marketid" />
30 <asp:BoundField DataField="marketyear" HeaderText="marketyear"
31 SortExpression="marketyear" />
32 <asp:BoundField DataField="cdxm" HeaderText="cdxm" SortExpression="cdxm" />
33 <asp:BoundField DataField="cdje" HeaderText="cdje" SortExpression="cdje" />
34 </Columns>
35 </asp:GridView>
36 <asp:SqlDataSource ID="SqlDataSource1" runat="server"
37 ConnectionString="<%$ ConnectionStrings:erp_dataConnectionString %>"
38 ProviderName="<%$ ConnectionStrings:ReportServerConnectionString1.ProviderName %>"
39 SelectCommand="SELECT * FROM [cd]"></asp:SqlDataSource>
40 </ContentTemplate>
41 <Triggers>
42 <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
43 </Triggers>
44 </asp:UpdatePanel>
45 <p>
46 <asp:Button ID="Button1" runat="server" onclick="Button1_Click"
47 Text="点击我第3行处于编辑状态" />
48 </p>
49 <asp:UpdatePanel ID="UpdatePanel2" runat="server">
50 <ContentTemplate>
51 <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
52 </ContentTemplate>
53 </asp:UpdatePanel>
54 </form>
55</body>
56</html>
2{
3 protected void Page_Load(object sender, EventArgs e)
4 {
5 //获取当前时间
6 Label1.Text ="我在updatepanel2里:"+ DateTime.Now.ToString();
7 }
8 protected void Button1_Click(object sender, EventArgs e)
9 {
10 //当点击第Button时,GridView1第3行进入编辑状态
11 GridView1.EditIndex = 2;
12 GridView1.DataBind();
13 }
14
15}