【问题标题】:Repeater Not Updating After Databind数据绑定后中继器不更新
【发布时间】:2018-06-03 00:41:52
【问题描述】:

我有一个页面,上面有一个转发器。在Button(btnExport) 上单击我将数据导出到Excel,因此我在UpdatePanel 中添加按钮一组PostBackTrigger

我有method(BindData) databinding 一个中继器。所以我的问题是,当我在Button click(btnExport_click) 中添加BindData 方法时,转发器不刷新(PS:Dataset 返回更新的新值,DataBind() 方法有效,但转发器不刷新)。这是我的第一篇文章,抱歉,如果问题不完全清楚。提前谢谢。

<asp:Repeater ID="rptGoods" runat="server">
    <ItemTemplate>
        <asp:Literal ID="litGoodCode" runat="server" Text='<%# 
        Eval("GOODS_CODE") %>' />
        <asp:Literal ID="litGoodName" runat="server" Text='<%# 
       Eval("GOODS_CNAME") %>' />
    </ItemTemplate>
</asp:Repeater>
<asp:Button ID="btnExport" runat="server" Text="Export" OnClick="btnExport_click" />

<asp:UpdatePanel ID="Upd_Export" runat="server" >
    <ContentTemplate>
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="btnExport" />
    </Triggers>
</asp:UpdatePanel>


protected void btnExport_click(object sender, EventArgs e)
{
    ExportToExcel();
    BindData();
}

private void BindData()
{
    try
    {

        rptGoods.DataSource = /Here I  get Dataset/
        rptGoods.DataBind();                 
    }
    catch (Exception ex)
    {
        ExceptionHelper exsaver = new ExceptionHelper();
        exsaver.SaveException(ex);
    }
}

【问题讨论】:

  • Repeater 是否位于 UpdatePanel 之外?看到这个帖子:stackoverflow.com/questions/2864692/…
  • 您无法导出文件并更新 UI。这是一个或另一个。
  • 感谢您的回复。我认为 PostBackTrigger 有问题
  • 不,问题正是 VDWWD 所说的。你可以做一个或另一个,而不是在同一个响应中。如果您希望用户下载文件,请打开一个单独的选项卡/窗口以供下载。
  • 你是对的。导出必须在单独的选项卡上。谢谢大家

标签: c# asp.net .net data-binding


【解决方案1】:

由于Repeater 被放置在UpdatePanel 之外,它不会在异步回发后被刷新。仅刷新 UpdatePanel 的内容。

将中继器移动到 UpdatePanel 内或用另一个 UpdatePanel 包裹它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多