【ASP.NET】使用母版页后如何让内容页来引用js或css。。。

JavaScript024

【ASP.NET】使用母版页后如何让内容页来引用js或css。。。,第1张

.net中提供的母版页大大的方便了制作网页时候使得页面共有元素统一化,给维护和修改提供了相当的便利。但是有一个让人很恼火的缺点就是母版页中才能有<head元素,使得很多情况下子页面引用css或者js就不那么方便。当然,你可以把css和js的引用全部放到母版页中,但是这样的做法会使得<head非常臃肿,是相当不理想的做法。这里介绍两种简单的方法,希望可以给碰到这个问题的朋友一点帮助,当然,如果您有更方便的做法,希望您可以告诉我,非常感谢呵呵。。。

第一种方法:

使用<asp:ScriptManagerProxy元素

直接看代码段:<%--这种方法是利用了ScriptManagerProxy控件中Scripts来引用js--%<asp:ScriptManagerProxyID=aarunat=server<Scripts<asp:ScriptReference

Path=

My97DatePicker/WdatePicker.js/</Scripts</asp:ScriptManagerProxy

这里之所以要使用ScriptManagerProxy是因为使用母版页时候要保证ScriptManager元素只有唯一一个,具体的就不多说了,MSDN查一下就明白了。

这种方法我个人觉得要稍微麻烦点(要敲多点代码),而且只能引用js,css无效。

---------------------------------------------我是华丽的分割线-------------------------------------

第二种方法:

使用<asp:ContentPlaceHolder元素

母版页中代码段:<headrunat=server<titleTechMan</title<metahttp-equiv=Content-Typecontent=text/html

charset=utf-8/<metaname=keywordscontent=$页面关键字$/<metaname=descriptioncontent=$页面描述$/<asp:ContentPlaceHolderID=cphHeadrunat=server</asp:ContentPlaceHolder</head

内容页中代码段:<%--这种是利用ContentPlaceHolder的方法,这种方法更加自由,还可以自由引用css--%<asp:ContentID=con2runat=serverContentPlaceHolderID=cphHead<scripttype=text/javascriptsrc=My97DatePicker/WdatePicker.js</script<linkhref=css/site.cssrel=stylesheettype=text/css/</asp:Content

这种方法简单实用,而且js和css都能很好的引用,利用这种做法可以很简单的解决很多类似问

问题应该是重定向时重新加载了模板页。可以试试使用MulitiView和view进行页面局部切换显示,这是避免重新加载模板页的方式;还可以试试传一个参数到新页面,在新页面根据参数的值决定模板页是加载原模板页的css样式还是加载点击链接后的css样式

你的意思是要在内容页 后台CS文件里调用 母版页 里的JS方法吗?

如果是在控件上加JS方法的话,就用控件的名称调用就可以!

例如:在后台load事件添加控件调用母版页Js方法。

protected void Page_Load(object sender, EventArgs e)

{

this.TxtBox1.Attributes.Add("onclick", "hanshu()")

//括号里第一个是要出发的事件名称,第二个就是前台JS函数!

}