私がやりたいこと:
ユーザーが行を選択し、選択した行内のセルのテキストを編集するページの複数のテキストボックスに表示できるグリッドビューを実装したいと思います。また、選択した行のテキストに応じて画像を更新したいと思います。
私は今それをどのようにやっていますか:
現在、ここにあるカスタムのクリック可能なグリッドビューコントロールを使用しています。本質的に、カスタムコントロールは、行の任意の場所をクリックするとポストバックを引き起こし、イベント処理関数をアタッチできる「OnRowClicked」イベントを提供します。この関数内で、rowindexをビューステートに保存してから、次のようなコードを使用します。
protected void GridViewClicked(object sender, GridViewRowClickedEventArgs e){
TextBox1.Text = System.Net.WebUtility.HtmlDecode(e.Row.Cells[0].Text);
}
テキストボックスにテキストを入力し、次のようにコード化するには:
string filepath = "~/Bitmaps/" + TextBox1.Text + ".bmp";
if (File.Exists(Server.MapPath(filepath)))
{
bitmap.ImageUrl = filepath;
}
else
{
bitmap.ImageUrl = "~/Bitmaps/NoImage.bmp";
}
クリックした行に基づいて、私のWebページの画像(最大サイズ500kb)を更新します。
だから問題は何ですか?
まあ、すべてが正常に機能しています。ただし、問題は、マウスクリックが発生してからフィールド/画像が更新されるまで(〜0.5秒)、各行のクリックに顕著な遅延が発生することです。これは非常に煩わしいことです。ただし、パフォーマンスを向上させるために何ができるか、またはコードやホスティングサービスに問題がある場合でもわかりません。したがって、私が求めているのは、発生した遅延が修正可能なものであるかどうか、またはそれが私が対処しなければならないものであるかどうかです。それとも、このソリューションを本当に非効率的な方法で実装したのでしょうか。どんな入力でも大歓迎です。