not在此把not在做一個項目時的解決方法拿出來與大家共享。
not的思路是事件執行完后寫段腳本,讓頁面自動滾動到刷新頁面之前的控件處,減少頁面刷新帶來的不便。
比如按了一個按鈕后,腳本會自動將頁面自動滾動到這個按鈕的位置。
寫段腳本的事情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的位置,減少了頁面刷新帶來的不便。
新聞熱點
疑難解答
圖片精選