五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > Asp.net 有ViewState和沒有ViewState的代碼該怎么寫?

Asp.net 有ViewState和沒有ViewState的代碼該怎么寫?

文章來源:365jz.com     點擊數(shù):382    更新時間:2011-06-18 23:17   參與評論

 進來看文章的各位先對你們說聲對不起了,我是帶著疑問來發(fā)表這篇文章的,標題可能說的還不夠明確,因為我也不知道該用什么詞語來形容。如果有更好的方法,請各個大大不吝賜教!

首先我想知道,在禁用ViewState的時候,只要存在<form id="form1" runat="server">的時候,就會存在ViewState,可是很多做的比較好的網(wǎng)站,首頁都沒有ViewState,就像我們的園子一樣,首頁連個ViewState的影子都看不到,是怎么實現(xiàn)的?

別和我說什么模板引擎,那完應(yīng)不是很清楚,也不了解,我問過我朋友,他說只要不用控件,就不會有ViewState產(chǎn)生,比如GridView,DataList等等,可是不用這些東東的話,又要像Asp和Jsp一樣,在頁面中寫亂七八糟的的代碼了,維護起來超難受,可是用了吧生成的|ViewState更難受,長的嚇人。。  我真不知道該怎么形容才好。

 

下面我就把代碼貼出來,大家看看有什么好方法可以解決這個頭疼的問題呢?

 

先來一個類,用于填充DataTable的

 

using System.Data;

namespace Test
{
    
public class DataSource
    {
        
public static DataTable GetList()
        {
            DataTable result 
= new DataTable();

            result.Columns.Add(
new DataColumn("Text"typeof(string)));
            result.Columns.Add(
new DataColumn("Url"typeof(string)));

            DataRow objDR 
= result.NewRow();

            objDR[
"Text"= "紅豆猥褻男童案下周將公布";
            objDR[
"Url"= "http://ent.163.com/11/0618/07/76QHOBR500034JAU.html";

            result.Rows.Add(objDR);

            
/**/

            objDR 
= result.NewRow();

            objDR[
"Text"= "希臘為推動新緊縮政策重組內(nèi)閣";
            objDR[
"Url"= "http://news.163.com/11/0618/02/76Q0OTS20001121M.html";

            result.Rows.Add(objDR);

            
/**/

            objDR 
= result.NewRow();

            objDR[
"Text"= "學校為騰宿舍讓大二學生提前畢業(yè)";
            objDR[
"Url"= "http://news.163.com/11/0618/10/76QV9OJ400014JB5.html";

            result.Rows.Add(objDR);

            
/**/

            objDR 
= result.NewRow();

            objDR[
"Text"= "北京有望年內(nèi)放松對高端項目的限購";
            objDR[
"Url"= "http://money.163.com/11/0617/19/76P92P0Q00253B0H.html";

            result.Rows.Add(objDR);

            
/**/

            objDR 
= result.NewRow();

            objDR[
"Text"= "中國制造的山寨電子產(chǎn)品在中東蔓延";
            objDR[
"Url"= "http://discover.news.163.com/11/0618/11/76R0TT79000125LI.html";

            result.Rows.Add(objDR);

            
return result;
        }
    }
}

 

先來一個有ViewState的代碼:aspx頁

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ExistsViewstate.aspx.cs"
    Inherits
="Test.ExistsViewstate" EnableViewState="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title></title>
</head>
<body>
    
<form id="form1" runat="server">
    
<asp:DataList ID="DataList1" runat="server">
        
<HeaderTemplate>
            
<ul>
        
</HeaderTemplate>
        
<ItemTemplate>
            
<li><href='<%# Eval("Url")%>' target="_blank">
                
<%Eval("Text"%></a></li>
        
</ItemTemplate>
        
<FooterTemplate>
            
</ul>
        
</FooterTemplate>
    
</asp:DataList>
    
</form>
</body>
</html>

 

后臺代碼:cs文件

 

using System;

namespace Test
{
    
public partial class ExistsViewstate : System.Web.UI.Page
    {
        
protected void Page_Load(object sender, EventArgs e)
        {
            
if (!this.IsPostBack)
            {
                
this.DataList1.DataSource = DataSource.GetList();
                
this.DataList1.DataBind();
            }
        }
    }
}

 

沒有ViewState的代碼:aspx頁  需要導入兩個命名空間; 這種寫法的CS文件里沒有任何多余的代碼!

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="NoExistsViewstate.aspx.cs"
    Inherits
="Test.NoExistsViewstate" %>

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="Test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title></title>
</head>
<body>
    
<ul>
        
<%
            foreach (DataRow objDR in DataSource.GetList().Rows)
            {
                Response.Write(
String.Format("<li><a href='{0}' target='_blank'>{1}</a></li>", objDR["Url"].ToString(), objDR["Text"].ToString()));
            }
        
%>
    
</ul>
</body>
</html>

 

小弟在此膜拜~  求更好的寫法,如果非得是用什么模板引擎,請?zhí)峁┮粋€案例,和“開源”易懂的,在此謝過……

 

如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答!! 點擊進入論壇

發(fā)表評論 (382人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號