0

我正在使用更新面板并将 SqlDataSource 以及 GridView 放在 contenttemplate 中

我已将 timercontrol 设置为 asyncpostback 触发器,但是当我从 sqlserver 中的相关表更改记录时,gridview 不会更新,而且看起来更疯狂的是,当我刷新时,已删除的记录仍然显示在网格视图中(完整返回页面)我也禁用了数据源的缓存但是这不是 wrking HELP !!!!!

这是我的代码

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" 
      Inherits="_Default" %>


<!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>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
    </div>





    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">

    <ContentTemplate>
    <div id="ajx">
    <div>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:busConnectionString %>" 
            SelectCommand="SELECT * FROM [reserv]" EnableCaching="false" CacheDuration="0" CacheExpirationPolicy="Absolute" EnableViewState="false"></asp:SqlDataSource>
    </div>
    <div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataSourceID="SqlDataSource1" EnableModelValidation="True">
            <Columns>
                <asp:BoundField DataField="SeatNo" HeaderText="SeatNo" 
                    SortExpression="SeatNo" />
                <asp:BoundField DataField="Status" HeaderText="Status" 
                    SortExpression="Status" />
            </Columns>
        </asp:GridView>
    </div>
    <div>
        <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick">

        </asp:Timer>
    </div>

    <div>
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    </div>

    </div>
    </ContentTemplate>

    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="Timer1"/>
    </Triggers>



    </asp:UpdatePanel>




    </form>
</body>
</html>
4

1 回答 1

1

您必须在计时器的每个滴答声上手动对数据源和网格视图进行数据绑定。
将以下内容添加到您的 Timer1_Tick 事件中:

    protected void Timer1_Tick(object sender, EventArgs e)
    {
        SqlDataSource1.DataBind();
        GridView1.DataBind();
    }
于 2012-12-02T11:32:48.843 回答