生活随笔
收集整理的這篇文章主要介紹了
关于.net项目从vs2003升级到2005的若干问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本人剛學習VS2.0,諸多問題,請勿見笑。
1.項目從2003轉換成2005版本:用VS2005直接打開項目文件就會自動轉換,注意保存備份,不然轉換失敗還可以恢復。
2.似乎2005中.cs文件里控件的聲明都取消了,所以我一個js內部嵌入了一個Literal控件,轉換后.cs文件里就說已經有了聲明,注釋掉就可以了。
3.轉換后運行后發現報錯:
Parser Error Message: Unrecognized configuration section ’xhtmlConformance’
Source Error:
是只要在IIS里的ASP.net選項卡中選擇到2.0就可以了。
4.使用MasterPage
- 如同使用Theme可以格式化整個網站各個控件的顯示模式一樣,Master Page可以用來定義網站中不同網頁的相同部分,例如整個網站都包括同樣的格局,同樣的頁頭,同樣的頁腳,同樣的導航欄。這個時候,可以把這些控件定義在一個masterpage上。其他網頁只需要繼承這個Masterpage即可。
- Master page文件本身的寫法和其他aspx頁面并沒有什么不同,主要的區別在于,Master page包含一個ContentPlaceHolder ,這個控件定義了一些可以被其他頁面繼承的區域,該區域內可以被其他頁面用來擺放自己的控件。
eg: Master page文件MyMaster.master
<%@ Master Language="VB" CodeFile="MyMaster.master.vb" Inherits="MyMaster" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
</asp:contentplaceholder>
<br />
<asp:AdRotator ID="AdRotator1" runat="server" DataSourceID="XmlDataSource1"/>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/ads.xml">
</asp:XmlDataSource>
</div>
</form>
</body>
</html>
Master page文件可以擁有自己的服務器端代碼文件,該文件定義了一個contentplaceholder控件為了給繼承的頁面使用控件定義了一個AdRotator(廣告)控件和它關聯的數據源XmlDataSource 任何繼承MyMaster.master的aspx文件都會在下方有一個廣告條!
format.aspx
<%@ Page Language="VB" MasterPageFile="~/MyMaster.master" AutoEventWireup="false"
CodeFile="frommaster.aspx.vb" Inherits="frommaster" title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Label ID="Label1" runat="server" Text="name"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="submit" />
<br />
<asp:Label ID="Label2" runat="server">
</asp:Label>
</asp:Content>
注意事項
- 1.在*.aspx文件中無法動態的改變*.master文件中的控件的狀態
- 2.如果在Master Page中定義了Theme,VS2005會進行警告。實際運行將以子頁面的theme為基準
- 3.在web.config中可配置master page為整個站點使用
<configuration>
<system.web>
<pages masterPageFile="~/Site.master" />
</system.web>
</configuration>
void Page_PreInit (Object sender, EventArgs e)
{
Page.MasterPageFile = "~/Site.master";
}
- 5.操作Master Page中的控件 (弱類型)
<asp:Label ID="Title" RunAt="server" />
((Label) Master.FindControl ("Title")).Text = "Orders";
- 6.操作Master Page中的控件 (強類型)
<asp:Label ID="Title" RunAt="server" />
.
.
.
<script language="C#" runat="server">
public string TitleText
{
get { return Title.Text; }
set { Title.Text = value; }
}
</script>
content page加入如下聲明
<%@ MasterType VirtualPath="~/Tree.master" %>
這樣Asp.net編譯器會為我們生成一個強類型的Master屬性(在頁面文件的CS文件的類中).
這樣,我們就可以直接通過Master.Info來操作
MasterPage上的東西.
調用如下
Master.TitleText = "Orders";
ContentPage要響應MasterPage頁上某些控件的事件(例如:Button).
和Scenario 1提到的一樣,可以把MasterPage的Button當做屬性暴露出來,
在ContentPage頁對其的Click事件進行訂閱.但這樣造成MasterPage和ContentPage頁的藕合太高.
更好的Pattern應該是在App_Code中定義事件,委托.在MasterPage中定義事件,并且暴露該事件.
這樣在ContentPage中就可以訂閱該事件.
Master Page可以嵌套使用,嵌套的Master Page只能含有Content控件,
但Content控件本身可以再嵌套 ContentPlaceHolders控件。
<!-- Orders.Master -->
<%@ Master MasterPageFile="~/Site.Master" %>
<asp:Content ContentPlaceHolderID="..." RunAt="server">
<asp:ContentPlaceHolder ID="..." RunAt="server">
...
</asp:ContentPlaceHolder>
<asp:Content>
轉載于:https://www.cnblogs.com/Tmouse/archive/2007/02/01/637171.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的关于.net项目从vs2003升级到2005的若干问题的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。