標籤:style color io os 使用 ar for strong sp
1、Literal的一般用法,與Label對比 MSDN上的解釋: 使用 System.Web.UI.WebControls.Literal 控制項在網頁上保留顯示文本的位置。Literal 控制項與 Label 控制項類似,但 Literal 控制項不允許對所顯示的文本應用樣式。
可以通過設定 Text 屬性,以編程方式控制在控制項中顯示的文本。 Literal Web 伺服器控制項介紹 可以使用 Literal Web 伺服器控制項將靜態文本呈現在 Web 頁上並使用伺服器代碼操縱該文本。與 Label Web 伺服器控制項不同,Literal 控制項不將任何
HTML 元素添加到文本上。 例如,您可能想要建立可以編程方式操縱的文本元素的簡單垂直列表。可以通過將 Label 控制項或 Literal 控制項的 Text 屬性設定為要發送到 Web 頁的 HTML 內
容,建立上述簡單垂直列表。如果使用 Label 控制項,則該控制項被封裝在 HTML <span> 標記中。<span> 不以任何顯而易見的方式影響該頁的呈現。如果使用
Literal 控制項,將不添加 <span> 標記,這使您的代碼更為簡單。 您無法將樣式應用於 Literal 控制項的內容。這意味著在 Web Form設計器處於網格模式時,Literal 控制項無法定位。因此,Literal 可能不適合於建立標題。此外,
您無法使用用戶端代碼確定控制項的位置。 向 Web Form頁添加 Literal Web 伺服器控制項 在您要以編程方式設定文本而不是添加額外的 HTML 標籤時,向頁面添加 Literal Web 伺服器控制項。 注意:如果想顯示靜態文本,可以使用 HTML 呈現它;不需要 Literal 控制項。只有在需要更改伺服器代碼中的內容時才使用 Literal 控制項。 向 Web Form頁添加 Literal 控制項 在“設計”視圖中,從“工具箱”的“Web Form”選項卡將 Literal 控制項拖到頁面上。 下面的樣本顯示一個簡單頁,該頁在運行時顯示標題新聞。該頁的主體(包括 Literal 控制項)類似於下面的代碼: <body> <form runat="server"> <H1><asp:Literal id="Headline" runat=server /></H1> </form> </body> 將代碼添加到頁面上以在運行時設定控制項的 Text 屬性。 下面的樣本顯示如何以編程方式設定 Literal 控制項的文本。 // C# private void Page_Load(object sender, System.EventArgs e) { Headline.Text = "New Web Site Announced"; }
2、Literal控制項的巧妙用法,這裡我把它做成了一個類似Menu控制項,實現菜單的功能。
很簡單,就是設定其Text值就可以了,假如Literal的ID為“litMenu”,那麼代
碼如下 litMenu.Text = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td class=\"Tab1\" style=\"width:114px;\" onclick=\"window.location.href=‘/onlineUserView.aspx?type=1‘;\">線上人員</td> <td class=\"Tab2\" style=\"width:114px;\" onclick=\"window.location.href=‘/SMS/SMSList.aspx?type=2‘;\">收件匣</td> <td class=\"Tab1\" style=\"width:114px;\" onclick=\"window.location.href=‘/SMS/SMSList.aspx?type=3‘;\">草稿箱</td> <td class=\"Tab1\" style=\"width:114px;\" onclick=\"window.location.href=‘/SMS/SMSList.aspx?type=4‘;\">已發送</td> <td class=\"Tab1\" style=\"width:115px;\" onclick=\"window.location.href=‘/SMS/SMSList.aspx?type=5‘;\">已刪除</td> </tr> </table>"
解析:很明顯,這裡是把其Text的值設定為了一個Table而已,而在Table中的儲存格進行菜單的點選連結。呵呵好玩吧!
3、Literal控制項作為通用性Menu 如果想把Literal控制項作為通用性Menu,那就寫成一個公用類,然後就調用。假如在一個Menu.cs類裡定義
public static string[] sName4 = new string[5] { "線上人員","收件匣", "草稿箱", "已發送", "已刪除" }; //定義菜單數組的名稱 public static string[] sUrl4 = new string[5] { "/onlineUserView.aspx?type=1", "/SMS/SMSList.aspx?type=2", "/SMS/SMSList.aspx?type=3",
"/SMS/SMSList.aspx?type=4", "/SMS/SMSList.aspx?type=5" }; //定義每個菜單對應的連結的數組
/// <summary> /// 通用Tab /// </summary> /// <param name="litMenu">Literal的ID</param> /// <param name="sName">菜單數組名稱</param> /// <param name="sUrl">連結的數組的名稱</param> /// <param name="iSelect">選中的第幾個功能表項目</param> /// <param name="sParameter"></param> public static void LoadMenuCommon(System.Web.UI.WebControls.Literal litMenu, string[] sName, string[] sUrl, int iSelect,string sParameter) { System.Text.StringBuilder sb = new StringBuilder(); sb.Append("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">") .Append("<tr>"); for (int i = 0; i < sName.Length; i++) { string sClassName = (i + 1) == iSelect ? "Tab2" : "Tab1"; //選中的菜單用CSS中的類"Tab2",否則用"Tab1" int iWidth = i == (sName.Length - 1) ? 115 : 114; sb.Append(string.Format("<td class=\"{0}\" style=\"width:{4}px;\" onclick=\"window.location.href=‘{2}{3}‘;\">{1}</td>", sClassName, sName[i], sUrl[i],
sParameter, iWidth)); } sb.Append("</tr></table>"); litMenu.Text = sb.ToString(); } 這裡的“Tab2”與“Tab1”只是一個CSS類樣式,用於標識選中菜單與未選中菜單樣式的區別 .Tab1 { background-image: url(../Images/Tab1.gif); font-weight: bold; color: #064570; width: 120px; height: 27px; text-align: center; background-repeat: no-repeat; cursor: hand; } .Tab2 { background-image: url(../Images/Tab2.gif); font-weight: bold; color: #064570; width: 120px; height: 27px; text-align: center; background-repeat: no-repeat; cursor: hand; }
最後一步,就是調用了,在其他的web頁,調用如下
Menu.LoadMenuCommon(LitMenu, Menu.sName4, Menu.sUrl4, 1, string.Empty);
Literal的一般用法,與Label對比 MSDN上的解釋