Growl Message の close メソッドから asp.net グリッドビューを更新しようとしています。
jqueryコードは次のとおりです。
$.gritter.add({
title: 'Success',
text: msg.d[0],
sticky: true,
after_close: function () {
__doPostBack('UpdatePanel1', '');
}
});
グリッドビュー更新パネルは次のとおりです。
<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 内には、ダイアログを開くハイパーリンクがあり、ダイアログは webmethod を呼び出します。これにより、gridview のデータが変更されます。
Growl 通知を使用して、何かが変更されたことをエンド ユーザーに通知し、[OK] ボタンをクリックすると、after_close 関数が呼び出されます。
OnLoad=UpdatePanel1_Load をデバッグすると、すべての変更がバインドされていることがわかります。
ただし、 after_close メソッドが実行された後、私の GridView の合計は消えます。もはや DOM にはありません。
奇妙なことに、ラベルはそこにあります!
グリッドが消える理由を誰か教えてもらえますか?
*編集*
わかりましたので、EmptyDataText をグリッドビューに追加しました。ここで指定されたテキストが表示されます。したがって、bindmethod を呼び出しても、Gridview は空です!