jqueryが重いASP.netページがあります。
このページでは、更新パネル内にグリッドビューがあるので、非同期更新を行うことができます。
<asp:GridView ID="gvMail" runat="server" GridLines="None"
AutoGenerateColumns="false" Width="100%" OnRowDataBound="mail_RowDataBound"
CssClass="gridview" DataKeyNames="id">
<HeaderStyle HorizontalAlign="Left" />
<RowStyle ForeColor="#0072BC" HorizontalAlign="Left" CssClass="draggable" />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<!-- Hidden Link button for Async call back -->
<asp:UpdatePanel ID="updatePanel2" runat="server">
<ContentTemplate>
<asp:LinkButton ID="btnLoadData" onclick="btnLoadData_Click" runat="server"
Text="Fill GridView" CssClass="none"></asp:LinkButton> <!-- hidden-->
<a href="javascript: AsyncUpdateGridView()">A sync update</a>
<!-- testing purposes only-->
</ContentTemplate>
</asp:UpdatePanel>
したがって、この小さなハックで、リンクボタンをクリックして、正常に動作するグリッドビューを更新します。最終的に、非表示のリンクボタンの_dopostbackメソッドを呼び出すだけのAsyncUpdateGridView()がJavascriptになります。
私が抱えている問題は、GridViewにJqueryDatePickersとJqueryファンシードロップダウンボックスの列があることです。それらはこのjavascript呼び出しでロードされます:
function OnLoadPage() {
$(".jqueryselector").selectbox({
effect: "fade"
});
$(".jquerydatepicker").datepicker({ dateFormat: 'dd-mm-yy' });
}
$(document).ready(function () {
OnLoadPage();
}
OnLoadPage()関数を作成したのは、更新後に_DoPostBack呼び出しを行った後にそれを呼び出そうとしたためです。
ただし、これは機能しません。したがって、ページの拳が読み込まれると、すべてのjquery datepicker、ドロップダウンボックス、およびその他の凝ったものがGridViewで機能します。しかし、非同期コールバックの後、すべてのデフォルトのhtmlでリロードされます。