国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

用JavaScript解決ASP.NET服務器控件造成的刷新問題

2024-07-10 13:08:03
字體:
來源:轉載
供稿:網友
用asp.net開發的人對服務器端控件事件引起的頁面刷新很頭痛吧!

我把解決問題的方法拿出來與大家共享,思路是事件執行完后寫段腳本,讓頁面自動滾動到刷新頁面之前的控件處,減少頁面刷新帶來的不便。
比如按了一個按鈕后,腳本會自動將頁面自動滾動到這個按鈕的位置。

寫段腳本的事情not用了一個scripthelper的類來搞定,這個類有個getviewcontrolscript(string controlname)的方法,它返回是一段客戶端的腳本,傳入的參數就是這個控件的id。

scripthelper類代碼:

/// <summary>
/// 提供一些產生頁面腳本的方法
/// </summary>
public class scripthelper
{

 /// <summary>
 /// 獲取客戶端查看控件的腳本
 /// </summary>
 /// <param name="controlname"></param>
 /// <returns>腳本代碼</returns>
 public static string getviewcontrolscript(string controlname)
 {

  //創建客戶端函數viewobj
  string script = "/n";
  script += "<script language=/"javascript/">/n";
  script += "function viewobj(objname)/n";
  script += "{/n";
  script += "var obj = document.all.item(objname);/n";
  script += "if (obj != null)/n";
  script += "{/n";
  script += "/tobj.scrollintoview();/n";
  script += "/tobj.focus();/n";
  script += "}/n";
  script += "}/n";

  //創建客戶端函數todo
  script += "function todo()";
  script += "{/n";
  script += string.format("settimeout(/"viewobj('{0}')/",1000);/n", controlname);
  script += "}/n";

  script += "window.onload = todo;/n";
  script += "</script>/n";

  return script;
 }

}

使用示例:

為了方便輸入腳本,我在頁面上放了個label:lblscript,并把lblscript的enableviewstate屬性和visible屬性設成false。
然后在lblscrpt的click事件的操作代碼后添加輸入腳本的代碼,如下所示:

private void btnsave_click(object sender, system.eventargs e)
{
project.updateprojectinfo(ds);
lblscript.text = scripthelper.getviewcontrolscript("btnsave");
}

在點擊btnsave按鈕后,頁面會自動滾動到btnsave的位置,減少了頁面刷新帶來的不便。
powered by dvnew


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴塘县| 延川县| 广东省| 灵武市| 丰镇市| 闽侯县| 博爱县| 南漳县| 柳江县| 曲松县| 内江市| 蒙城县| 尚义县| 边坝县| 和龙市| 黎城县| 烟台市| 阆中市| 江川县| 峨山| 启东市| 辰溪县| 沙田区| 肃宁县| 长兴县| 香港 | 周至县| 陆河县| 大理市| 同德县| 全州县| 陈巴尔虎旗| 蚌埠市| 兴安盟| 轮台县| 新安县| 天峨县| 永靖县| 宝丰县| 凤台县| 武邑县|