很久沒有寫技術日志了,主要是最近研究的不多。不過剛剛從事asp 2.0網站開發。在過程中遇到了一些簡單的問題。特把這些内容摘要記錄一下。
(1)ASP2.0調用用戶端的腳本:在PageLoad事件進行中,添加如下代碼:
//在頁面全部載入後,執行該腳本~
if (!this.IsClientScriptBlockRegistered(key))
{
this.RegisterStartupScript(key, string.Format("<script language=\"javascript\">SwitchPanel({0});</script>",sel));
}
使用RegisterStartupScript的方法,會在頁面完全加載後調用script。如果是RegisterClientScriptBlock則會在頁面加載前調用,是以在這裡script函數要用到頁面内容,是以必須在頁面加載完成後調用。
(2)一些基本的概念,都是很基本的javascript的内容。
下面是列印一個div的内容,方法是講它的html内容輸出到一個新的視窗,然後列印。
//列印頁面内容
function printPage(div_id)
{
var newWin = window.open('printPage','','');
var titleHTML = document.getElementById( div_id ).innerHTML;
newWin.document.write(titleHTML);
newWin.document.location.reload();
newWin.print();
newWin.close();
}
在javascrip中,文法和c#非常類似。不同的地方是,函數不需要定義時不需要聲明傳回值和參數的類型,字元串定義也是單引号和雙引号都可以,采用那種主要依據能把它能把字元串中的引号區分開為準。還有變量的定義等地方都可以看出java腳本裡面是比較随意和自由的。這個特點某種程度上有些類似office軟體中的vba。
可以把一個GridView放到一個div節中,然後實作僅僅列印GridView,而不包含頁面其他内容。
(3)使GridView的BoundField顯示日期,而不是預設的DateTime類型(yyyy-MM-dd HH:mm:ss)。
string[] fields=
; //列名
//為GridView添加列
for (int i = 0; i < fields.Length; i++)
BoundField bf = new BoundField();
obj = this.GetLocalResourceObject(fields[i]);
bf.HeaderText = (obj == null) ? (fields[i] + "??") : obj.ToString();
bf.DataField = fields[i]; //日期型的列不顯示時分秒
if(fields[i].EndsWith("Date"))
bf.HtmlEncode=false; //必須!
bf.DataFormatString="{0:yyyy-MM-dd}";
}
this.GridView1.Columns.Add(bf);
}