我想要做什麼:實現gridview行點擊事件的有效方法?
我想實現一個gridview,用戶可以選擇的行和選定行內有從細胞中的文字出現在頁面上的多個文本框進行編輯。我還想根據所選行中的文本更新圖像。
如何我做現在:
目前,我使用自定義點擊GridView控件發現here。本質上,自定義控件在單擊該行的任何位置時會導致回發,並提供一個可以附加事件處理函數的「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";
}
要更新的圖像(最大尺寸500KB)在我點擊的行的網頁上。
那麼問題是什麼?
那麼,一切正常,因爲它應該。但是,問題在於,每次點擊鼠標時發生的鼠標點擊與字段/圖像更新(〜0.5s)之間的時間差異很大,這非常煩人。但是,我不知道我能做些什麼來提高性能,或者即使這是代碼或託管服務的問題。因此,我所要問的是延遲是否能夠被固定,或者是否我只需要處理?或者,也許我以非常低效的方式實施了這個解決方案?任何輸入讚賞。
我在此處使用ASP.NET Ajax使用部分頁面更新:http://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-partial-page-updates-with-asp-net -ajax。將我的代碼轉換爲JavaScript仍然值得嗎? – Tony
我想 - 閱讀文章(你是對的,這是一個很好的) - 轉換爲Javascript和使用靜態PageMethod檢查文件的存在可能是最好的方式。您遇到的延遲可能是重新渲染,部分刷新發生時由瀏覽器完成的重新解析以及瀏覽器爲獲取新圖像而完成的調用的組合。但是,您需要在圖像控件上進行更改的是圖像URL,您可以在javascript中執行此操作(如果您寫的PageMethod表示圖像存在)。*應該更快。 –