0

我正在尝试从 Growl Message 的 close 方法更新我的 asp.net gridview。

jQuery代码是:

  $.gritter.add({
              title: 'Success',
              text: msg.d[0],
                                sticky: true,
                                after_close: function () {
                                    __doPostBack('UpdatePanel1', '');
                                }
                            });

gridview 更新面板是:

        <div class="module_content">

                    <asp:Label runat="server" ID="Label1" />
                    <asp:GridView ID="grd1">
        <Columns> 
            <asp:TemplateField>
                      <ItemTemplate>
                          <asp:Hyperlink href="#" id="getSessionID" class="view-details" runat="server">View details</asp:Hyperlink>
                      </ItemTemplate>
                  </asp:TemplateField>

             <asp:TemplateField HeaderText="Message Id">
                <ItemTemplate>
                    <%# Eval("SessionID") %>
                </ItemTemplate>
            </asp:TemplateField>           
            <asp:TemplateField HeaderText="Sender">
                <ItemTemplate>
                    <%# Eval("Sender") %>
                </ItemTemplate>
            </asp:TemplateField>                
            <asp:TemplateField HeaderText="Message Date">
                <ItemTemplate>
                   <asp:HyperLink CssClass="msgDateDate" ID="lnkMsgDateSummary" Text='<%#DateTime.Parse(Eval("MsgDate").ToString()).ToShortDateString()%>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>                
            <asp:TemplateField HeaderText="Message Type">
                <ItemTemplate>
                    <asp:HyperLink CssClass="msgDateType" ID="lnkMsgDateType" Text='<%# Eval("MsgType")%>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>                
            <asp:TemplateField HeaderText="Reference">
                <ItemTemplate>
                   <%# Eval("MsgRef")%>
                </ItemTemplate>
            </asp:TemplateField> 
            <asp:TemplateField HeaderText="Status">
                <ItemTemplate>
                   <%# Eval("Status")%>
                </ItemTemplate>
            </asp:TemplateField>                
        </Columns>
    </asp:GridView>
      </div>
                </ContentTemplate>
            </asp:UpdatePanel>         

gridview 内部是一个超链接,它打开一个对话框,该对话框调用一个 web 方法,这导致 gridview 的数据发生变化。

我使用 Growl 通知来通知最终用户发生了一些变化,然后单击 ok 按钮调用 after_close 函数。

当我调试 OnLoad=UpdatePanel1_Load 时,我可以看到所有更改都被绑定等。

但是,运行 after_close 方法后,我的 GridView 总数消失了,它甚至不再存在于 DOM 中。

奇怪的是标签在那里!

谁能告诉我为什么我的网格消失了?

*编辑*

好的,所以我已将 EmptyDataText 添加到 gridview,并且此处指定的文本可见。所以,即使调用 bindmethod 我的 Gridview 是空的!

4

2 回答 2

0

问题是用户错误。我有一个案例陈述,它根据下拉列表中选择的日期加载 hte 网格数据,然后下拉菜单为空,因此我的代码按预期执行,即没有数据显示你 plonker :-)

于 2013-07-26T12:55:51.490 回答
0

在您的页面加载事件中,您需要检查何时ispostback为真,然后不要将页面加载到默认值,即网格视图的绑定。希望这可以帮助。

于 2013-07-26T12:37:41.773 回答