我一直都想知道在ASP.NET中,怎么让C#和javascript交互,实现调用,这是如何实现的。
知道今天在一本书中看到如下代码,如果这就是一种方法的话,我总算懂一点了。
C#代码:
//protected enum Buttonkind{bkUP,bkDown};
//private const string _upbuttonStyle="";
//private const string _downbuttonStyle="";
protected String MakeButton(ButtonKind kind)
{
StringBuilder sb=new StringBuider();
if(kind==ButtonKind.bkUP)
sb.AppendFormat("<BUTTON onclick=\"SpinScriptHandler('{0}','{1}');\" "+"style=\"{2}\">"+"<DIV style=\"{3}\">5</DIV></BUTTON>",base.id,1,_upbuttonStyle,_updownFontFamily);
else
//process for ButtonKind.bkDown
return sb.ToString();
}
javascript代码:
<script language="javascript1.2">
function SpinScriptHandler(actrl,akind)
{
ctrl=document.all[actrl];
if(ctrl.value=='')
ctrl.value='0';
if(akind==1)
ctrl.value=parseInt(ctrl.value)+1;
else
ctrl.value=parseInt(ctrl.value)-1;
}
</script>
他利用StringBuilder的灵活性,在绘制javascript的同时运用其参数输出的功能,给javascript的函数SpinScriptHandler 传递C#的变量(控件ID等有用数据),达到调用和传参功能。
从中我也体会到了StringBuilder的强大。
这也许只是多种调用方法的一种,请大家给予指导,让我能对C#和javascript的交互有更多的掌握。
假期在 Microsoft ASP.NET 2.0 Site上下载了两个ASP.NET2.0的示例。这是该网站上为了推广ASP.NET2.0,帮助ASP.NET,及其他网站开发人员学习,掌握ASP.NET2.0新特性提供的许多实例中较基础的两个。
其中展示了比如SiteMapDataSource,SqlDataSource等新加入的数据源控件及其他新控件,还有Master Page(模板页)等新技术。我觉得这些实例有助于学习ASP.NET2.0的新特性,所以上传在附件中,大家有兴趣可以研究一下。
这是两个Visual Studio Community Content Installer File,可用winrar打开,装了VS.NET的话可以双击安装,安装后可在VS的新建网站中看到他们。
[内有附件]