在ASP.NET使用javascript一点小技巧
private void button1_click(object sender, system.eventargs e)
{
response.write( "<script language='javascript'>alert('ok');</script>") ;
}
经常是重复的书写这些脚本,如果我们能做成一个相应的函数就好了,直接就可以拿来使用。很多人都有自己的一些javascript的函数,但是大部分向这样的:
/// <summary>
/// 服务器端弹出alert对话框
/// </summary>
/// <param name="str_message">提示信息,例子:"请输入您姓名!"</param>
/// <param name="page">page类</param>
public void alert(string str_message,page page)
{
if(!page.isstartupscriptregistered ("msgonlyalert"))
{
page.registerstartupscript("msgonlyalert","<script>alert('"+str_message+"');</script>");
}
}
但是,用的时候,每次都要继承这个类,用起来还是有些麻烦,如果函数是静态的函数,类是静态的类的话,我们不要继承就可以使用。但是我们怎么写呢?
看看这段代码
#region public static void messagebox( page page, string msg )
///
/// 弹出对话框
///
/// 当前页面的指针,一般为this
/// 消息
public static void messagebox( page page, string msg )
{
stringbuilder strscript = new stringbuilder();
strscript.append( "<script language=javascript>" );
strscript.append( "alert('"+ msg +"');" );
strscript.append( "</script>" );
if ( ! page.isstartupscriptregistered( "messagebox" ) )
{
page.registerstartupscript( "messagebox", strscript.tostring() );
}
}
#endregion
这样的话我们就能方便使用很多已有的js脚本。
ps:其实很多常用的方法都能写成静态函数进行调用的。偶再附几个例子作为一个参考。
md5加密:
///
/// md5 encrypt
///
/// text
/// md5 encrypt string
public string md5encrypt(string strtext)
{
md5 md5 = new md5cryptoserviceprovider();
byte[] result = md5.computehash(system.text.encoding.default.getbytes(strtext));
return system.text.encoding.default.getstring(result);
}
取指定长度的随机数:
#region public static string getrandnum( int randnumlength )
///
/// 取得随机数
///
/// 随机数的长度
///
public static string getrandnum( int randnumlength )
{
system.random randnum = new system.random( unchecked( ( int ) datetime.now.ticks ) );
stringbuilder sb = new stringbuilder( randnumlength );
for ( int i = 0; i < randnumlength; i++ )
{
sb.append( randnum.next( 0, 9 ) );
}
return sb.tostring();
}
#endregion