我在UpdatePanel中使用GridView。更新数据后,单击与DataBind()绑定的刷新按钮不会更改页面上的任何内容,直到数据更新后至少10秒。以下是相关代码:
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div class="container-fluid">
<asp:UpdatePanel runat="server" ID="UpdatePanel1" >
<ContentTemplate>
<div class="row">
<div class="col-xs-12">
<asp:Button ID="btnRefresh" runat="server" Text="Refresh" CausesValidation="False" CssClass="btn btn-success" OnClick="btnRefresh_OnClick" />
</div>
</div>
<div class="row">
<div class="col-xs-12">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowSorting="True"
DataKeyNames="id" DataSourceID="sqldatasource" CssClass="table table-responsive table-hover"
OnRowDataBound="GridView1_OnRowDataBound"
OnRowCommand="GridView1_OnRowCommand"
>
<Columns>
<asp:CommandField ShowSelectButton="True" SelectText="Open" />
<!-- columns -->
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
背后的代码:
protected void btnRefresh_OnClick(object sender, EventArgs e)
{
GridView1.DataBind();
}
我在另一个页面上使用相同类型的设置而不使用UpdateMode或触发器,并且数据绑定没有问题,但这不会。
答案 0 :(得分:0)
回答后代。 SQL数据源启用了缓存,因此我删除了它,数据绑定按预期正常工作。
<asp:SqlDataSource ID="sqlInProgress" runat="server" ConnectionString="<%$ ConnectionStrings:AppConnectionString %>" EnableCaching="true" CacheDuration="30"
SelectCommand =" SELECT [Order].[id] as id, [Checker], [InternalComments], [CompanyName], [ProdLine], [ProductName],[Due], [Fulfillment], [FulfillmentX], [QA], [QAX], FROM [Order], [Companies] where [Order].[CompanyName] = [Companies].[CompanyName] and [stage] = 'In progress' order by Due" />