2010年4月17日 星期六

ASP.NET 4.0 New Feature : 清單控制項之延伸RepeatLayout功能

CheckBoxList 和 RadioButtonList這兩個清單控制項,在ASP.NET 4.0中的RepeatLayout屬性有做了延伸性的功能加強,在以往的ASP.NET 3.5版本中,RepeatLayout屬性只有兩個選擇可以設定,分別為:Table和Flow。

如果這個屬性設定為 RepeatLayout.Table,則清單中的項目會顯示在資料表,如果這個屬性設定為 RepeatLayout.Flow,則清單中的項目不顯示資料表結構。

例如假設我們把控制項設定為以下設定:

<asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatLayout="Flow">

<asp:ListItem Text="CheckBoxList" Value="cbl" />

</asp:CheckBoxList>

 

<asp:RadioButtonList runat="server" RepeatLayout="Table">

<asp:ListItem Text="RadioButtonList" Value="rbl" />

</asp:RadioButtonList>

那麼瀏覽網頁後所得到的HTML將分別轉譯為sapn和table為:

<span id="CheckBoxList1"><input id="CheckBoxList1_0" type="checkbox" name="CheckBoxList1$0" />

<label for="CheckBoxList1_0">CheckBoxList</label>

</span>

 

<table id="RadioButtonList1" border="0">

<tr>

<td><input id="RadioButtonList1_0" type="radio" name="RadioButtonList1"

value="rbl" />

<label for="RadioButtonList1_0">RadioButtonList</label></td>

</tr>

</table>

那麼ASP.NET 4.0又多了另外兩個選擇設定,分別為:OrderedList 和 UnorderedList,如果這個屬性設定為 RepeatLayout. OrderedList,則清單中的項目會顯示使用ol搭配li設定顯示,如果這個屬性設定為 RepeatLayout. UnorderedList,則清單中的項目會顯示使用ul搭配li設定顯示。

以下假設針對CheckBoxList分別設定RepeatLayout. OrderedList和RepeatLayout. UnorderedList,我們來看看所呈現不同的結果,首先當設定為OrderedList,則如下圖所示,會有順序性的排序編號資料:

clip_image002

如果是設定為UnorderedList,則會呈下如下圖所示,並不會有順序編號,但是會用條列重點方式:

clip_image004

這裡要特別注意一點,假設你設定RepeatLayout為OrderedList 或是 UnorderedList,那麼另一個屬性RepeatDirection就不能設定修改為Horizontal,否則將會出現設計上的錯誤,預設只能搭配Vertical。

image

9 則留言:

Kevin Lin 提到...

不好意思,請問一下我在悅知上頭看到您出版的【ASP.NET 4.0網站開發實戰】這本書,從圖片或目錄上看不到此書是用哪種語言寫的? 不知Adams 老師能否說一下呢? 感謝

亞當斯(Adams) 提到...

Dear Kevin :
這本書是用VB寫的唷~

匿名 提到...

我可以問一下你的新書,p.432

step01 的加入群組是指?父群組、下方相鄰、上方相鄰?

setp02 的群組和排序屬性,我怎麼找不到?

匿名 提到...

還有我一直找不到「重複群組首」這個選項。

亞當斯(Adams) 提到...

你好,[加入群組]的步驟,你可以參考本書的P429頁的最下面一個圖。

亞當斯(Adams) 提到...

群組的[排序]屬性,請參考P431頁,在群組屬性中就會有看到排序的選項了,如果不清楚如何叫出[群組屬性],那麼請參考P437頁最下方的圖片和步驟,謝謝

匿名 提到...

不好意思,可能我的表達不是很清楚,我再說一次好了。

step01 的加入群組是指?父群組、下方相鄰、上方相鄰?

我是指如下圖要選那一個:
http://img193.imageshack.us/img193/7420/addgroup.png

setp02 的群組和排序屬性p430-431頁中,並無「重複群組首」這個選項可以勾選。

ps:另外說一下跟你說一下,把資料集放在App_Code下report 會找不到,要放在網站的根目錄下才行,這是我實作發現的。

匿名 提到...

我原本以為你很忙,可是過了這麼多天,你怎麼都沒有回我呢?
是我問的問題太差勁了?還是你根本就不想理你的讀者呢?

亞當斯(Adams) 提到...

您好,首先對於這麼慢回覆深感抱歉,因為小弟的VS2010與PowerPoint衝到,因此在很早之前已經將VS2010移除了,加上這陣子忙著開發專案,所以不小心將此問題忘記回覆了!

剛剛已經把VS2010重新安裝在NB,在此回答以上的問題:
1.step01 的加入群組是指?父群組、下方相鄰、上方相鄰?
Ans : 父群組
2.setp02 的群組和排序屬性p430-431頁中,並無「重複群組首」這個選項可以勾選。
Ans : 不好意思這是小弟的筆誤,應該是「加入群組首頁」
3. ps:另外說一下跟你說一下,把資料集放在App_Code下report 會找不到,要放在網站的根目錄下才行,這是我實作發現的。
Ans : 放在App_Code下是可以找到的,因為我預設就是在專案中直接加入一個DataSet他會建議放到App_Code,網頁的ReportViewer還是可以對應的到!

以上,謝謝!!

如果想參考範例檔案,我將此範例檔放在以下網址,請自行參考:http://cid-baa5c855d4951e03.office.live.com/browse.aspx/%E5%85%AC%E9%96%8B