我正试图从GrowlMessage的close方法更新我的asp.net网格视图。
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>
在网格视图中有一个超链接,它打开一个对话框,该对话框调用一个Web方法,导致网格视图的数据发生更改。
我使用Growl通知通知最终用户发生了更改,然后单击ok按钮,调用after_close函数。
当我调试OnLoad=UpdatePanel1_Load时,我可以看到所有的更改都被绑定等。
然而,在after_close方法运行后,我的GridView总数就消失了,它甚至不在DOM中了。
奇怪的是,尽管标签在那里!
有人能告诉我为什么我的网格消失了吗?
*编辑*
好的,所以我已经将EmptyDataText添加到了gridview中,并且这里指定的文本是可见的。所以,即使调用bindmethod,我的Gridview也是空的!
在页面加载事件中,当ispostback
为true时,您需要实现一个检查,然后不要将页面加载到默认值,即网格视图的绑定。希望这能有所帮助。
问题是用户错误。我有一个案例统计,它根据下拉菜单中选择的日期加载网格数据,然后下拉菜单为空,因此我的代码按预期执行,没有数据显示