【问题标题】:gridview is not updating in update panelgridview 未在更新面板中更新
【发布时间】:2012-11-14 09:45:30
【问题描述】:

我在更新面板中有一个网格视图,就像这样。

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


<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White"
                                            BorderColor="#D9EFFD" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" DataSourceID="SqlDataSource1"
                                            Font-Names="Tahoma" Font-Size="8pt" GridLines="Horizontal" Width="100%" ForeColor="#010101"
                                            ShowHeaderWhenEmpty="True">
                                            <Columns>
                                                <asp:BoundField DataField="MODE_TPT_ENTRY" HeaderText="Balance" SortExpression="MODE_TPT_ENTRY">
                                                    <HeaderStyle HorizontalAlign="Left" />
                                                    <ItemStyle Font-Bold="True" HorizontalAlign="Left" Width="120px" ForeColor="#035BAC" />
                                                </asp:BoundField>
                                                <asp:BoundField DataField="OB" HeaderText="Opening" SortExpression="OB">
                                                    <ItemStyle HorizontalAlign="Right" Width="70px" />
                                                </asp:BoundField>
                                                <asp:BoundField DataField="ISSUED" HeaderText="Arrival" SortExpression="ISSUED">
                                                    <ItemStyle HorizontalAlign="Right" Width="70px" />
                                                </asp:BoundField>
                                                <asp:BoundField DataField="UNTARE" HeaderText="UNTARE" SortExpression="UNTARE" Visible="False" />
                                                <asp:BoundField DataField="TARE" HeaderText="Tare" SortExpression="TARE">
                                                    <ItemStyle HorizontalAlign="Right" Width="70px" />
                                                </asp:BoundField>
                                                <asp:BoundField DataField="BALANCE" HeaderText="Balance" SortExpression="BALANCE">
                                                    <ItemStyle HorizontalAlign="Right" Width="70px" />
                                                </asp:BoundField>
                                                <asp:BoundField DataField="RRY" HeaderText="Recovery" SortExpression="RRY">
                                                    <ItemStyle HorizontalAlign="Right" Width="70px" />
                                                </asp:BoundField>
                                                <asp:BoundField DataField="TRANSPORT_NO" HeaderText="TRANSPORT_NO" SortExpression="TRANSPORT_NO"
                                                    Visible="False" />
                                            </Columns>
                                            <FooterStyle BackColor="White" ForeColor="#000066" />
                                            <HeaderStyle BackColor="#D9EFFD" Font-Bold="True" ForeColor="#010101" HorizontalAlign="Right" />
                                            <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
                                            <RowStyle ForeColor="#101010" HorizontalAlign="Right" />
                                            <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
                                            <SortedAscendingCellStyle BackColor="#F1F1F1" />
                                            <SortedAscendingHeaderStyle BackColor="#007DBB" />
                                            <SortedDescendingCellStyle BackColor="#CAC9C9" />
                                            <SortedDescendingHeaderStyle BackColor="#00547E" />
                                        </asp:GridView>


<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString3 %>"
                                                ProviderName="<%$ ConnectionStrings:ConnectionString3.ProviderName %>" SelectCommand="SELECT * from cms_production">
                                            </asp:SqlDataSource>
</ContentTemplate>
</asp:UpdatePanel>

还有一个 JavaScript 函数,它会像这样在 5 秒后刷新面板

<script type="text/javascript">
window.setInterval(function () {
__doPostBack('<%= UpdatePanel1.ClientID %>', '');
        }, 5000);
</script>

问题是,当我更改与 gridview 绑定的数据时,五秒钟后不会显示任何更改。任何人都可以告诉我我的代码中有什么问题或任何其他要添加到我的代码中以使 gridview 在内部更新的附加内容没有页面重定向的更新面板。

【问题讨论】:

  • 先生,我正在使用 Sqldatasource 来绑定 Grid。UpdatePanel1.Update(); 在哪里写?
  • 先生 sqldatasource 已经在 contenttemplate 中,除了内容模板中的 gridview 列之外没有更多代码
  • 如何更改数据?看起来您的网格是只读的。
  • 我从oracle数据库更改表中的数据。我不是在谈论gridview的编辑

标签: asp.net gridview updatepanel


【解决方案1】:

您需要在每次回发时手动更新 SqlDataSource。如果它背后没有真正的逻辑,您可以将以下内容添加到您的 Page_Load:

protected void Page_Load(object sender, EventArgs e)
{
       .....

    if (IsPostBack)
    {
        SqlDataSource1.DataBind();
        GridView1.DataBind();
    }
}

如果您希望仅在 UpdatePanel 执行回发时完成此操作,use this method

【讨论】:

  • 我认为他也必须调用 grid.DataBind()
  • @AmiramKorach 尚未对其进行测试,但您可能是对的。已更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多