[ASP.NET] Mobile Web Page 開發–jQuery Mobile ListUI 結合ListView控制項

  • 6020
  • 0

[ASP.NET] Mobile Web Page 開發–jQuery Mobile ListUI 結合ListView控制項

資料呈現清單大慨是開發頁面上最常見的,在jQuery Mobile也為資料清單提供了一些呈現上的設計機制,完整的文件可參考(http://jquerymobile.com/demos/1.2.0/docs/lists/index.html),除了基本樣式之外,也有不少進階的樣式,例如有可以放置圖片的,有可以顯示明細數的,非常豐富。

 

【基本的樣式】

image

 

【進階的樣式】

image

 

【進階的樣式】

image

 

jQuery Mobile在處理資料清單的顯示是以<ul><li>做為基底元素,再以下列屬性進行變化

data-role="listview"

data-theme="d"

data-filter="true"

data-split-icon="grid"

這些屬性的作用文件相當的清楚,就不多廢話。

 

不過對於習慣使用Web Control開發的人員來說,總會希望可以結合原有習慣,不太希望由程式一點一滴的去組HTML字串,一來程式也不好維護,二來開發起來綁手綁腳的,所以既然已知jQuery Mobile在處理清單是以<ul><li>做為基底元素,那麼我們就可以轉個彎以想辦法看有什麼Web Control可以render出這樣的HTML元素,或是具有樣板特性可以讓我們在樣板裡定義好HTML元素,應該就可以達到相同的效果

 

這裡我們選用ListView來做

  • 藉由<LayoutTemplate>來放置<ul>元素
  • 藉由<ItemTemplate>來放置<li>元素
<asp:ListView ID="ListView1" runat="server" OnItemDataBound="ListView1_ItemDataBound">
	<LayoutTemplate>
	    <ul data-role="listview" data-theme="d" data-filter="false" data-split-icon="grid">
	        <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
	    </ul>
	</LayoutTemplate>
	<ItemTemplate>
	    <li data-icon="false">
	        <a href="xxxx">
	            <p>
	                <strong>姓名:
	                    <%#Eval("name")%>
	                </strong></p>
	            <p>
	                編號:<%#Eval("empno")%></p>
	            <p>
	                性別:<%#Eval("sex")%></p>
	        </a>
	    </li>
	</ItemTemplate>
</asp:ListView>
  • 接著同樣在背後程式碼裡進行資料綁定的動作,就可以看到以下效果

image

 

  • 沒有header看起來好像少了點什麼,我們來加個header設置
<div data-role="header" data-position="fixed">
	<h1>
	    通訊錄
	</h1>
</div>
<div data-role="content">
	<asp:ListView ID="ListView1" runat="server">
	    <LayoutTemplate>
	        <ul data-role="listview" data-theme="d" data-filter="false" data-split-icon="grid">
	            <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
	        </ul>
	    </LayoutTemplate>
	    <ItemTemplate>
	        <li data-icon="false"><a href="xxxx">
	            <p>
	                <strong>姓名:
	                    <%#Eval("name")%>
	                </strong>
	            </p>
	            <p>
	                編號:<%#Eval("empno")%></p>
	            <p>
	                性別:<%#Eval("sex")%></p>
	        </a></li>
	    </ItemTemplate>
	</asp:ListView>
</div>

 

image

 

是不是很簡單就可以做出行動裝置上的UI樣式了呢 :)

 

同樣我們也可以加上footer,當然關於資料清單還有很多變化,這些在官方文件上提供的很詳細,就由大家慢慢去玩囉,這裡只是舉個例子讓大家了解,在開發上還是可以一方面運用Web Control,一方面借由jQuery Mobile強大的行動UI設定處理,快速簡單打造出行動裝置的網頁

 

若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。

By No.18