|
分類:[ASP.NET (C#)]
GridViewのRowDataBoundで、 以下の様にOnClientClickを設定して、リンクを押された時に、その行にある情報をGETで引き渡して JAVSCRIPTからwindow.openをしています。
しかし・・・
GridViewに700件ほどデータを表示させたところ10秒近くかかります。
試しにOnClientClickに設定する内容をOpenWindow('test1','test2');と固定値にすると3秒ほどに改善されます。 LinkButtonの生成が遅いわけでもなくe.Row.Cells[3].Textの取得が遅いわけでも無いようです。
可変の値をOnClientClickに設定した時のみ、遅くなるのですが、これを回避する良い方法は無いでしょうか? というかどういう原理で遅くなるのでしょうか?
LinkButton lk = (LinkButton)e.Row.Cells[0].Controls[1]; lk.OnClientClick = "OpenWindow('" + e.Row.Cells[3].Text.TrimEnd() + "','" + e.Row.Cells[1].Text.TrimEnd() + "');";
<script type="text/javascript">
function OpenWindow(selectedKey, selectedDate) { var urlStr = 'SelectedFuryo.aspx?selectedKey=' + selectedKey + '&selectedDate=' + selectedDate; window.open(urlStr, "_blank", "resizable=yes,menubar=no,status=no,location=no,toolbar=no,scrollbars=yes,height=700");
} </script>
|