如何動態產生Asp.net前端的顯示

來源:互聯網
上載者:User

      今天在msn上有人跟我說用asp.net做網站不想用控制項了,我很奇怪。繼續探討下去發現原來他要解決的事情是前端頁面的

控制項數量是在運行時才能決定的,而他一直認為那些控制項只能拖到頁面上去。我想了想,覺得還是有必要把如何在前端頁面上動

態產生控制項的方法寫一下,大牛們可以走了,這個就是給不知道的兄弟們大概的說一下。

       在前端代碼中,可能我們看到只是像div ,span 這樣的標籤形成的布局層次。實際上,在後台,.net也給我們做好了控制層

次。這樣說比較抽象,下面來看一個小例子說明吧:

       <div id="div1" runat="server">

           <div id="subdiv1">

              ......

            </div>

           <div id="subdiv2">

              .....

           </div>

       <div>

      在上面的代碼中,我們看到的是三個div形成的一個布局層次關係,div1包含兩個子div,看起來只能是固定如此的布局。實際

上在後台,.net會為div1做一個控制容器,在這個容器裡面把兩個子div加入進去,我們可以在後台找到容器裡面找到他們並且進行

處理。這個控制容器也有分層的概念,div1的控制容器包含subdiv1,subdiv2,兩個子div也有自己的控制容器。對於所有的區塊層級元素,

都會屬於自己的控制容器(關於區塊層級元素和行內級元素的概念,可以自己上網上找找,屬於html中的概念).這個控制容器,我們在後

台可以通過 this.Controls取到。

      現在我們來做一個例子,來示意一個怎樣動態從資料庫中讀取資料產生一個導覽列,這個導覽列我用無序列表來實現(如何變

成導覽列自己參考html的內容)。首先來看前端代碼:

<div>

<ul id="ul" runat="server">

</ul>

 

</div>

      可以看到前端的代碼非常簡單,只是加了一個無序列表的標籤<ul>,但是必須聲明這個列表運行在伺服器端的,否則.net不會維護

它的控制層次,我們也沒有辦法在後台對他進行控制,下面來看後台代碼怎樣動態添加列表元素:

DataTable t = new DataTable();

da.Fill(t);

foreach (DataRow row in t.Rows)

{

         Label label = new Label();

         label.Text = row["room_type"].ToString();

         ul.Controls.Add(new LiteralControl("<li>"));

         ul.Controls.Add(label);

          ul.Controls.Add(new LiteralControl("</li>"));

}

       看一下背景代碼也很簡單,首先從資料庫裡面提取出需要作為導覽列內容的表。對於表中的每一個元素,我們建立一個靜態

文字框,將需要顯示到導覽列中的內容寫入到靜態文字框中,然後調用無序列表控制容器的增加控制元素方法,就可以將清單項目添加

到無序列表中了。對於在其他的區塊層級元素中動態添加控制項方法,完全可以參照上面的來做。

       有問題可以給我發郵件或者msn;zhaotiantang520@live.cn

 

 

 

     

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.