<asp:UpdatePanel runat="server" ID="updatepanel2" >
        <ContentTemplate>
        <asp:Image ID="Image1" runat="server" Width="705px" ImageAlign="AbsBottom" Height="234px" />
        <asp:Timer runat="server" Enabled="true" Interval="6000" OnTick="timer2_tick" ID="timer2"></asp:Timer>
        <asp:Label  runat="server" ID="label6"></asp:Label>
        </ContentTemplate>
        </asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="updatepanel1">
          <ContentTemplate>                              
        <asp:GridView ID="GridView1" runat="server"
            Width="515px" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" AutoGenerateColumns="False" Height="400px" BorderStyle="Solid" >
            <Columns>
                <asp:BoundField DataField="序号" HeaderText="序号" SortExpression="序号" />
                <asp:BoundField DataField="测量时间" HeaderText="测量时间" SortExpression="测量时间" />
                <asp:BoundField DataField="测量日期" HeaderText="测量日期" SortExpression="测量日期" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="False" />
                <asp:BoundField DataField="目前罐存重量(t)" HeaderText="目前罐存重量(t)" SortExpression="[目前罐存重量(t)]" NullDisplayText="0" ReadOnly="True" />
            </Columns>
            <RowStyle HorizontalAlign="Center" />
            <PagerStyle BorderStyle="Solid" />
        </asp:GridView>
        <asp:Label runat="server" ID="label7"></asp:Label>
               <asp:Timer runat="server" Enabled="true" Interval="10000" OnTick="timer1_tick" ID="timer1"></asp:Timer>
                </ContentTemplate>
                </asp:UpdatePanel> protected void timer1_tick(object sender, EventArgs e)
    {
        ds.Clear();
        
        label7.Text = DateTime.Now.ToString();
    }
protected void timer2_tick(object sender, EventArgs e)
    {
        label6.Text = DateTime.Now.ToString();
    }单独任何一个timer工作都是好的,但合在一起就不行,求帮助

解决方案 »

  1.   

    两个<asp:UpdatePanel 都加属性UpdateMode="Conditional" 
      

  2.   

    了解数据库的人应该对触发器这个概念比较清楚,Trigger对于UpdatePanel来说也是很关键的 
    开始简单介绍了UpdatePanel的俩中触发器asyncPostBackTrigger和PostBackTrigger的作用 
    这里用例子大概在稍微深入地介绍下: 
    1,普通回调触发器(PostBackTrigger) 
    PostBackTrigger主要针对UpdatePanel模板内的子控件,因为当子控件被触发时。它只会更新模版内的数据,模板外的控件不会发生变化.当需要更新全局 内容的时候就可以通过PostBackTrigger触发器来实现页面的全部回调。下面是简单例子:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 
    <!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>无标题页</title> 
    </head> 
    <body> 
    <form id="form1" runat="server"> 
    <div> 
    </div> 
    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always"> 
    <ContentTemplate> 
    <% =DateTime.Now.ToString()%> 
    <asp:Button ID="Button1" runat="server" Text="UpdatePanelButton" /> 
    </ContentTemplate> 
    <Triggers> 
    <!--下面的注释掉,点击updatePanel内的button则只更新Panel内的时间,取消注释责全部更新--> 
    <!-- <asp:PostBackTrigger ControlID="Button1"/>--> 
    </Triggers> 
    </asp:UpdatePanel> 
    <br /> 
    <% =DateTime.Now.ToString()%> 
    <asp:Button ID="Button2" runat="server" Text="Button" /> 
    </form> 
    </body> 
    </html>2,异步回调触发器(AsyncPostBackTrigger) 
    是实现局部更新的关键,在触发器内定义引起回发的控件和事件 
    例:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 
    <!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>无标题页</title> 
    </head> 
    <body> 
    <form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always"> 
    <ContentTemplate> 
    <% =DateTime.Now.ToString()%> 
    </ContentTemplate> 
    <Triggers> 
    <asp:AsyncPostBackTrigger ControlID="Button2" EventName="Click" /> 
    </Triggers> 
    </asp:UpdatePanel> 
    <br /> 
    <% =DateTime.Now.ToString()%> 
    <asp:Button ID="Button2" runat="server" Text="Button" /> 
    </form> 
    </body> 
    </html>运行了发现点击button2的时候只更新了 updatepanel内部的时间 
    上面的例子也可以动态更新UpdatePanel的一些源代码: 
    具体例子就不写了下面 大概写点主要代码:protected void Page_Load(object sender, EventArgs e) 

    //获取更新控件儿 
    UpdatePanel mapanel = UpdatePanel1; 
    //设置触发模式 
    mapanel.UpdateMode = UpdatePanelUpdateMode.Conditional; 
    //显示时间 
    Label1.Text = DateTime.Now.ToString(); 
    //添加触发 
    AsyncPostBackTrigger tri = new AsyncPostBackTrigger(); 
    tri.ControlID = "Button2"; 
    tri.EventName = "Click"; 
    mapanel.Triggers.Add(tri); 
    }
      

  3.   

    updatepanel1。update()
    updatepanel2。update()试试