首页
老网站
正文
ASP.NET2.0MasterPage技巧总结
{$ad$} 好久没有更新博客了,想了想写一篇总结一下关于MasterPage的小技巧,都是自己在实际工作中遇到问题->解决问题发现,有更好的方法大家可直接指出。
1、关于MasterPage和Frameset的使用:网上很多帖子争论到底用MasterPage还是Frameset,我觉得导航树的系统还是Frameset好,尤其数导航树非常复杂的时候,虽然VS.NET 2005不支持它的可视化设计,自己手写html就行了,其实MasterPage就是继承自UserControl做了一些扩展,也不是什么新东西,MasterPage每次刷新整个页面,感觉效率低。
2、关于MasterPage中引用Javascript,CSS的问题:如果所有套用模板的页面都在同一个路径,这个问题就不存在了,但实际中为了方便管理,往往会建立一些文件夹,将引用模板的页面放在不同的文件加,这时在模板中引用的JS、CSS文件,由于路径的问题,在套用它的页面中不一定能用有用,可以用一下的方法在masterpage中来动态的添加JS、CSS文件的引用:
方法一:
string JSFile = "";
Response.Write(string.Format(JSFile,ResolveUrl("~/Javascript/jquery.js")));
这种方法虽然可以快速解决问题,但是Response.Write是将脚本的引用写到html的最开始,这就破坏了xhtml的格式,会带来各种存在的隐患,记得过去这么做的时候,同时在用asp.net ajax做开发的时候,发现ASP.NET AJAX AjaxControlToolkit中很多的控件不起作用了,后来发现是用了Response.Write的结果。
方法二:
string JSFile = "";
Page.Header.InnerHtml = string.Format(JSFile,ResolveUrl("~/Javascript/jquery.js"));
这种方法也可以实现而且可以很好的解决方法中的问题。
方法三:
HtmlLink link = new HtmlLink();
link.Href = string.Format(JSFile,ResolveUrl("~/CSS/base.css"));; link.Attributes["type"] = "text/css";
page.Header.Controls.Add(link);
这是注册样式的一种方法。
SELECT [t0].[a_id], [t0].[a_site], [t0].[a_model], [t0].[a_type], [t0].[a_special], [t0].[a_name], [t0].[a_from], [t0].[a_from_url], [t0].[a_author], [t0].[a_editor], [t0].[a_describe], [t0].[a_content], [t0].[a_create_date], [t0].[a_tag], [t0].[a_hits], [t0].[a_commend], [t0].[a_istop], [t0].[a_isimg], [t0].[a_cacheimg], [t0].[a_imgurls], [t0].[a_imgurl], [t0].[a_ismedia], [t0].[a_mediaurl], [t0].[a_iscomment], [t0].[a_isRecycle], [t0].[a_weight], [t0].[a_weights], [t0].[a_status], [t0].[a_url], [t0].[a_file_path], [t0].[a_contentfile], [t0].[a_comment], [t0].[a_ispass], [t0].[a_bury], [t0].[a_dig], [t0].[a_score], [t0].[a_rank], [t0].[a_diguser], [t0].[a_buryuser], [t0].[a_viewip], [t0].[a_lastviewdate], [t0].[a_neworimageorvideo], [t0].[class_id], [t0].[class_type], [t0].[class_name], [t0].[class_show_name], [t0].[class_parent_id], [t0].[class_id_path], [t0].[class_name_path], [t0].[class_show_name_path], [t0].[class_depth], [t0].[class_order], [t0].[class_content], [t0].[class_img], [t0].[a_model_name]
FROM [dbo].[mvc_content_view] AS [t0]
WHERE ([t0].[a_id] = @p0) AND ([t0].[a_type] = @p1)
-- @p0: Input BigInt (Size = 0; Prec = 0; Scale = 0) [5889]
-- @p1: Input BigInt (Size = 0; Prec = 0; Scale = 0) [236]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.1
SELECT TOP (1) [t0].[a_id], [t0].[a_site], [t0].[a_model], [t0].[a_type], [t0].[a_special], [t0].[a_name], [t0].[a_from], [t0].[a_from_url], [t0].[a_author], [t0].[a_editor], [t0].[a_describe], [t0].[a_content], [t0].[a_create_date], [t0].[a_tag], [t0].[a_hits], [t0].[a_commend], [t0].[a_istop], [t0].[a_isimg], [t0].[a_cacheimg], [t0].[a_imgurls], [t0].[a_imgurl], [t0].[a_ismedia], [t0].[a_mediaurl], [t0].[a_iscomment], [t0].[a_isRecycle], [t0].[a_weight], [t0].[a_weights], [t0].[a_status], [t0].[a_url], [t0].[a_file_path], [t0].[a_contentfile], [t0].[a_comment], [t0].[a_ispass], [t0].[a_bury], [t0].[a_dig], [t0].[a_score], [t0].[a_rank], [t0].[a_diguser], [t0].[a_buryuser], [t0].[a_viewip], [t0].[a_lastviewdate], [t0].[a_neworimageorvideo], [t0].[class_id], [t0].[class_type], [t0].[class_name], [t0].[class_show_name], [t0].[class_parent_id], [t0].[class_id_path], [t0].[class_name_path], [t0].[class_show_name_path], [t0].[class_depth], [t0].[class_order], [t0].[class_content], [t0].[class_img], [t0].[a_model_name]
FROM [dbo].[mvc_content_view] AS [t0]
WHERE ([t0].[a_type] = @p0) AND ([t0].[a_id] < @p1)
ORDER BY [t0].[a_id] DESC
-- @p0: Input BigInt (Size = 0; Prec = 0; Scale = 0) [236]
-- @p1: Input BigInt (Size = 0; Prec = 0; Scale = 0) [5889]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.1
SELECT TOP (1) [t0].[a_id], [t0].[a_site], [t0].[a_model], [t0].[a_type], [t0].[a_special], [t0].[a_name], [t0].[a_from], [t0].[a_from_url], [t0].[a_author], [t0].[a_editor], [t0].[a_describe], [t0].[a_content], [t0].[a_create_date], [t0].[a_tag], [t0].[a_hits], [t0].[a_commend], [t0].[a_istop], [t0].[a_isimg], [t0].[a_cacheimg], [t0].[a_imgurls], [t0].[a_imgurl], [t0].[a_ismedia], [t0].[a_mediaurl], [t0].[a_iscomment], [t0].[a_isRecycle], [t0].[a_weight], [t0].[a_weights], [t0].[a_status], [t0].[a_url], [t0].[a_file_path], [t0].[a_contentfile], [t0].[a_comment], [t0].[a_ispass], [t0].[a_bury], [t0].[a_dig], [t0].[a_score], [t0].[a_rank], [t0].[a_diguser], [t0].[a_buryuser], [t0].[a_viewip], [t0].[a_lastviewdate], [t0].[a_neworimageorvideo], [t0].[class_id], [t0].[class_type], [t0].[class_name], [t0].[class_show_name], [t0].[class_parent_id], [t0].[class_id_path], [t0].[class_name_path], [t0].[class_show_name_path], [t0].[class_depth], [t0].[class_order], [t0].[class_content], [t0].[class_img], [t0].[a_model_name]
FROM [dbo].[mvc_content_view] AS [t0]
WHERE ([t0].[a_type] = @p0) AND ([t0].[a_id] > @p1)
ORDER BY [t0].[a_id]
-- @p0: Input BigInt (Size = 0; Prec = 0; Scale = 0) [236]
-- @p1: Input BigInt (Size = 0; Prec = 0; Scale = 0) [5889]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.1
SELECT [t0].[a_id], [t0].[a_site], [t0].[a_model], [t0].[a_type], [t0].[a_special], [t0].[a_name], [t0].[a_from], [t0].[a_from_url], [t0].[a_author], [t0].[a_editor], [t0].[a_describe], [t0].[a_content], [t0].[a_create_date], [t0].[a_tag], [t0].[a_hits], [t0].[a_commend], [t0].[a_istop], [t0].[a_isimg], [t0].[a_cacheimg], [t0].[a_imgurls], [t0].[a_imgurl], [t0].[a_ismedia], [t0].[a_mediaurl], [t0].[a_iscomment], [t0].[a_isRecycle], [t0].[a_weight], [t0].[a_weights], [t0].[a_status], [t0].[a_url], [t0].[a_file_path], [t0].[a_contentfile], [t0].[a_comment], [t0].[a_ispass], [t0].[a_bury], [t0].[a_dig], [t0].[a_score], [t0].[a_rank], [t0].[a_diguser], [t0].[a_buryuser], [t0].[a_viewip], [t0].[a_lastviewdate], [t0].[a_neworimageorvideo]
FROM [dbo].[mvc_content] AS [t0]
WHERE ([t0].[a_id] = @p0) AND ([t0].[a_type] = @p1)
-- @p0: Input BigInt (Size = 0; Prec = 0; Scale = 0) [5889]
-- @p1: Input BigInt (Size = 0; Prec = 0; Scale = 0) [236]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.1
UPDATE [dbo].[mvc_content]
SET [a_hits] = @p19
WHERE ([a_id] = @p0) AND ([a_site] = @p1) AND ([a_model] = @p2) AND ([a_type] = @p3) AND ([a_special] = @p4) AND ([a_name] = @p5) AND ([a_from] = @p6) AND ([a_from_url] IS NULL) AND ([a_author] IS NULL) AND ([a_editor] IS NULL) AND ([a_describe] IS NULL) AND ([a_content] = @p7) AND ([a_create_date] = @p8) AND ([a_tag] = @p9) AND ([a_hits] = @p10) AND (NOT ([a_commend] = 1)) AND (NOT ([a_istop] = 1)) AND (NOT ([a_isimg] = 1)) AND ([a_cacheimg] IS NULL) AND ([a_imgurls] IS NULL) AND ([a_imgurl] = @p11) AND (NOT ([a_ismedia] = 1)) AND ([a_mediaurl] IS NULL) AND (NOT ([a_iscomment] = 1)) AND (NOT ([a_isRecycle] = 1)) AND ([a_weight] = @p12) AND ([a_status] = @p13) AND ([a_url] IS NULL) AND ([a_file_path] IS NULL) AND ([a_contentfile] IS NULL) AND ([a_comment] = @p14) AND ([a_ispass] = @p15) AND ([a_bury] = @p16) AND ([a_dig] = @p17) AND ([a_score] = @p18) AND ([a_diguser] IS NULL) AND ([a_buryuser] IS NULL) AND ([a_viewip] IS NULL) AND ([a_lastviewdate] IS NULL) AND ([a_neworimageorvideo] IS NULL)
SELECT [t1].[a_weights], [t1].[a_rank]
FROM [dbo].[mvc_content] AS [t1]
WHERE ((@@ROWCOUNT) > 0) AND ([t1].[a_id] = @p20)
-- @p0: Input BigInt (Size = 0; Prec = 0; Scale = 0) [5889]
-- @p1: Input BigInt (Size = 0; Prec = 0; Scale = 0) [197]
-- @p2: Input BigInt (Size = 0; Prec = 0; Scale = 0) [24]
-- @p3: Input BigInt (Size = 0; Prec = 0; Scale = 0) [236]
-- @p4: Input BigInt (Size = 0; Prec = 0; Scale = 0) [0]
-- @p5: Input NVarChar (Size = 24; Prec = 0; Scale = 0) [ASP.NET2.0MasterPage技巧总结]
-- @p6: Input NVarChar (Size = 4; Prec = 0; Scale = 0) [2933]
-- @p7: Input NVarChar (Size = 1271; Prec = 0; Scale = 0) [{$ad$} 好久没有更新博客了,想了想写一篇总结一下关于MasterPage的小技巧,都是自己在实际工作中遇到问题->解决问题发现,有更好的方法大家可直接指出。
1、关于MasterPage和Frameset的使用:网上很多帖子争论到底用MasterPage还是Frameset,我觉得导航树的系统还是Frameset好,尤其数导航树非常复杂的时候,虽然VS.NET 2005不支持它的可视化设计,自己手写html就行了,其实MasterPage就是继承自UserControl做了一些扩展,也不是什么新东西,MasterPage每次刷新整个页面,感觉效率低。
2、关于MasterPage中引用Javascript,CSS的问题:如果所有套用模板的页面都在同一个路径,这个问题就不存在了,但实际中为了方便管理,往往会建立一些文件夹,将引用模板的页面放在不同的文件加,这时在模板中引用的JS、CSS文件,由于路径的问题,在套用它的页面中不一定能用有用,可以用一下的方法在masterpage中来动态的添加JS、CSS文件的引用:
方法一:
string JSFile = "";
Response.Write(string.Format(JSFile,ResolveUrl("~/Javascript/jquery.js")));
这种方法虽然可以快速解决问题,但是Response.Write是将脚本的引用写到html的最开始,这就破坏了xhtml的格式,会带来各种存在的隐患,记得过去这么做的时候,同时在用asp.net ajax做开发的时候,发现ASP.NET AJAX AjaxControlToolkit中很多的控件不起作用了,后来发现是用了Response.Write的结果。
方法二:
string JSFile = "";
Page.Header.InnerHtml = string.Format(JSFile,ResolveUrl("~/Javascript/jquery.js"));
这种方法也可以实现而且可以很好的解决方法中的问题。
方法三:
HtmlLink link = new HtmlLink();
link.Href = string.Format(JSFile,ResolveUrl("~/CSS/base.css"));; link.Attributes["type"] = "text/css";
page.Header.Controls.Add(link);
这是注册样式的一种方法。
]
-- @p8: Input DateTime (Size = 0; Prec = 0; Scale = 0) [2008-10-16 10:04:05]
-- @p9: Input NVarChar (Size = 25; Prec = 0; Scale = 0) [ASP,NET2,MasterPage,技巧,总结]
-- @p10: Input BigInt (Size = 0; Prec = 0; Scale = 0) [1589]
-- @p11: Input NVarChar (Size = 0; Prec = 0; Scale = 0) []
-- @p12: Input BigInt (Size = 0; Prec = 0; Scale = 0) [0]
-- @p13: Input Int (Size = 0; Prec = 0; Scale = 0) [0]
-- @p14: Input BigInt (Size = 0; Prec = 0; Scale = 0) [0]
-- @p15: Input Int (Size = 0; Prec = 0; Scale = 0) [0]
-- @p16: Input BigInt (Size = 0; Prec = 0; Scale = 0) [0]
-- @p17: Input BigInt (Size = 0; Prec = 0; Scale = 0) [0]
-- @p18: Input Float (Size = 0; Prec = 0; Scale = 0) [0]
-- @p19: Input BigInt (Size = 0; Prec = 0; Scale = 0) [1590]
-- @p20: Input BigInt (Size = 0; Prec = 0; Scale = 0) [5889]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.1
SELECT TOP (10) [t0].[a_id], [t0].[a_site], [t0].[a_model], [t0].[a_type], [t0].[a_special], [t0].[a_name], [t0].[a_from], [t0].[a_from_url], [t0].[a_author], [t0].[a_editor], [t0].[a_describe], [t0].[a_content], [t0].[a_create_date], [t0].[a_tag], [t0].[a_hits], [t0].[a_commend], [t0].[a_istop], [t0].[a_isimg], [t0].[a_cacheimg], [t0].[a_imgurls], [t0].[a_imgurl], [t0].[a_ismedia], [t0].[a_mediaurl], [t0].[a_iscomment], [t0].[a_isRecycle], [t0].[a_weight], [t0].[a_weights], [t0].[a_status], [t0].[a_url], [t0].[a_file_path], [t0].[a_contentfile], [t0].[a_comment], [t0].[a_ispass], [t0].[a_bury], [t0].[a_dig], [t0].[a_score], [t0].[a_rank], [t0].[a_diguser], [t0].[a_buryuser], [t0].[a_viewip], [t0].[a_lastviewdate], [t0].[a_neworimageorvideo], [t0].[class_id], [t0].[class_type], [t0].[class_name], [t0].[class_show_name], [t0].[class_parent_id], [t0].[class_id_path], [t0].[class_name_path], [t0].[class_show_name_path], [t0].[class_depth], [t0].[class_order], [t0].[class_content], [t0].[class_img], [t0].[a_model_name]
FROM [dbo].[mvc_content_view] AS [t0]
WHERE ([t0].[a_type] IN (@p0)) AND (NOT ([t0].[a_isRecycle] = 1))
ORDER BY [t0].[a_id] DESC
-- @p0: Input BigInt (Size = 0; Prec = 0; Scale = 0) [236]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.1