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

首頁 > 編程 > .NET > 正文

用&#106avascript解決ASP.NET服務器控件造成的刷新問題

2024-07-10 13:05:15
字體:
來源:轉載
供稿:網友
用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 dvnews.net

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涡阳县| 柘荣县| 荃湾区| 睢宁县| 阿合奇县| 都兰县| 余干县| 高阳县| 年辖:市辖区| 花垣县| 格尔木市| 沂水县| 商南县| 东乌珠穆沁旗| 抚州市| 密山市| 余姚市| 吉安市| 南靖县| 军事| 宜昌市| 溧阳市| 大竹县| 饶河县| 陆川县| 平定县| 蓝山县| 白朗县| 大渡口区| 牟定县| 柳江县| 雷州市| 米林县| 苍梧县| 大丰市| 开封市| 西贡区| 上栗县| 邻水| 安新县| 衡水市|