经过前面一系列的代码编写,我们有了一个可以工作的Wiki系统,现在我们先来给它进行一点儿美化。

  我想象中的布局方式是,顶部是banner,导航栏,编辑、历史等链接,中间是Wiki或者FckEditor,下面是底边栏,显示一些提示信息和版权信息。这可以使用frame、iframe自己编码实现,也可以利用一些工具,我选择使用JQuery和它的插件JQuery Layout。

  在VisualWiki里创建scripts目录,加入jquery和jquery layout,我用的版本是1.2.6。另外,加入jquery-1.2.6-vsdoc.js的话,在Visual Studio里也可以进行JQuery的智能提示。再创建一个styles目录,把BasicStyle.css复制进去,我们还需要多一些css支持,也可以添加到这个css文件中。创建一个images,放入一个banner.jpg文件等等。

  JQuery Layout的写法基本上是定义一些特定class的div,然后把不同的内容,放入不同的div里,然后在script里初始化一下它,就可以了。所以,对于Show或者Edit页面,基本不用修改,只要修改Main.master就可以了,另外,考虑到我们要加入登录功能,我想用master页来进行鉴权工作,分离出一个新的master页也许更好些,Main.master负责鉴权和部分布局(manage部分也需要banner),而Wiki.master负责Wiki的布局,在Main.master里加入对于css和js的链接,并调用jquery layout进行初始化,它还会调用Wiki.master里的resetLayout以完成Wiki页的layout工作:

<%@ Master Language="C#" Inherits="Lephone.Web.SmartMasterPageBase" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title></title>
    
<link type="text/css" href="styles/BasicStyle.css" rel="stylesheet" />
    
<script type="text/javascript" src="scripts/jquery-1.2.6.js"></script>
    
<script type="text/javascript" src="scripts/jquery.layout.js"></script>
    
<script type="text/javascript">
        
function resetMainLayout() {
            $(
'form').layout({ slidable: false, resizable: false, closable: false,
                spacing_open: 
0, north__size: 52, center__paneSelector: "#mainContent"
            });
            
if (resetLayout)
                resetLayout();
        }
        $(document).ready(
function() { resetMainLayout(); });
        $(window).resize(
function() { resetMainLayout(); }); // for resize bug with form
    </script>
    
<asp:ContentPlaceHolder id="head" runat="server">
    
</asp:ContentPlaceHolder>
</head>
<body>
    
<form id="form1" runat="server">
        
<div class="ui-layout-north banner">
        
</div>
        
        
<div class="ui-layout-center">
        
</div>

        
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
        
</asp:ContentPlaceHolder>
    
</form>
</body>
</html>

相关文章: