【问题标题】:AJAX GridView Not UpdatingAJAX GridView 未更新
【发布时间】:2012-12-02 11:04:19
【问题描述】:

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

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

这是我的代码

    <%@ 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>

【问题讨论】:

    标签: asp.net ajax gridview


    【解决方案1】:

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

        protected void Timer1_Tick(object sender, EventArgs e)
        {
            SqlDataSource1.DataBind();
            GridView1.DataBind();
        }
    

    【讨论】:

    • 声明式方法是什么意思?
    • 声明性含义我想使用 aspx 标记(当然没有代码标记()而不是代码隐藏方法,所以我不必使用 ado.net 来绑定数据集或数据表按照你的建议在代码隐藏中。
    • 我不知道这怎么可能,您可以在 aspx 文件中物理编写 onClick(如果您没有 .cs 代码隐藏文件),但这样或那样,您重新需要它作为代码而不是标签运行。
    • 我认为将控件放在更新面板下会像在整页回发中一样重新初始化它们我想我将不得不使用代码 newayz thanx :>
    猜你喜欢
    • 2011-10-05
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多