jquery repeater 模仿 Google 展開(kāi)頁(yè)面預(yù)覽子視圖
示例代碼下載: http://zsharedcode.googlecode.com/files/JQueryElementDemo.rar
本文將詳細(xì)的講解 Repeater 控件中如何使用子視圖, 目錄如下:
* 準(zhǔn)備
* 定義子視圖樣本
* 切換子視圖狀態(tài)
* 定義子視圖容器
示例圖片:
請(qǐng)參照 http://code.google.com/p/zsharedcode/wiki/JQueryElementRepeaterDoc 中的準(zhǔn)備.
定義子視圖樣本
顯示在 repeater 中的 repeater 被稱(chēng)為子視圖, 每一個(gè)子視圖都是子視圖樣本的副本, 并根據(jù)條件來(lái)展示不同的數(shù)據(jù). 子視圖樣本的定義沒(méi)有特別之處, 比如:
<je:Repeater ID="<子視圖 ID>" runat="server"
FilterField="<子視圖搜索字段>">
</je:Repeater>
<je:Repeater ID="pictureRepeater" runat="server"
FilterField="['url']"
FillAsync-Url="webservice.asmx"
FillAsync-MethodName="GetGooglePicture">
<ItemTemplate>
<div>
<span class="url">#{url}</span>
<br />
<br />
#{picture}
</div>
</ItemTemplate>
</je:Repeater>
大多數(shù)情況下, 需要為子視圖樣本定義 FilterField 屬性, 也就是搜索子視圖數(shù)據(jù)所用到的字段或條件, 上面的代碼中, 我們添加了 url 作為條件, 那么后臺(tái)返回?cái)?shù)據(jù)的代碼可以這樣編寫(xiě):
[WebMethod]
public SortedDictionary<string, object> GetGooglePicture ( string url )
{
// 返回 JSON
}
由于, 只返回一行數(shù)據(jù), 因此不必添加 pageindex 和 pagesize 參數(shù).
關(guān)于如何返回 JSON, 請(qǐng)參考 使用 ASP.NET 一般處理程序或 WebService 返回 JSON, 本示例所有代碼為在 .NET 4.0 下編寫(xiě).
切換子視圖狀態(tài)
如果需要在 Repeater 中控制子視圖切換, 關(guān)閉和打開(kāi), 可以使用 shiftview, collapseview, expandview 三個(gè)函數(shù), 比如:
// je-<javascript 事件名>="shiftview,'<子視圖 ID>'[,<子視圖搜索字段值n>]"
<div id="list">
<je:Repeater ID="googleRepeater" runat="server"
Selector="'#list'" PageSize="2" IsVariable="true"
FillAsync-Url="webservice.asmx"
FillAsync-MethodName="SearchGoogle">
<ItemTemplate>
<div class="picture">
<div
je-button="label='更多';"
je-onclick="shiftview,'pictureRepeater','#{url}'">
</div>
<div je-id="pictureRepeater" style="display: none;">
</div>
</div>
</ItemTemplate>
</je:Repeater>
</div>
以 shiftview 為例, 第一個(gè)參數(shù)為子視圖的 ID, 之后的參數(shù)為用于搜索子視圖數(shù)據(jù)的條件, 示例中將字段 url 作為參數(shù), 對(duì)應(yīng)了子視圖樣本 FilterField 屬性中的 url. 如果有更多的條件, 繼續(xù)添加即可, 順序需要和子視圖樣本 FilterField 屬性中條件一樣.
expandview 方法和 shiftview 是類(lèi)似的, 不同的 expandview 是打開(kāi)子視圖, 而 shiftview 是切換子視圖的打開(kāi)狀態(tài).
而 collapseview 方法是關(guān)閉子視圖, 不需要傳遞條件.
默認(rèn)情況下, 當(dāng)子視圖首次被打開(kāi)時(shí), 將自動(dòng)調(diào)用 fill 方法來(lái)填充數(shù)據(jù), 而之后的打開(kāi)顯示現(xiàn)存的數(shù)據(jù), 不再刷新.
定義子視圖容器
除了定義子視圖樣本之外, 還需要在行模板中定義子視圖容器, 在剛才的代碼中, 有這樣一段:
// je-id="<子視圖 ID>"
<ItemTemplate>
<div class="picture">
<div je-id="pictureRepeater" style="display: none;">
</div>
</div>
</ItemTemplate>
通過(guò) je-id 綁定為子視圖 ID, 即可將元素綁定為子視圖的容器, 而子視圖將顯示在目標(biāo)容器中.
子視圖默認(rèn)為關(guān)閉狀態(tài), 因此代碼中通過(guò) style="display: none;" 使子視圖容器在開(kāi)始時(shí)隱藏.
JQueryElement 是開(kāi)源共享的代碼, 可以在 http://code.google.com/p/zsharedcode/wiki/Download 頁(yè)面下載 dll 或者是源代碼.
實(shí)際過(guò)程演示: http://www.tudou.com/programs/view/uVx2BBMHgOQ/, 建議全屏觀看.
- Jquery圖片延遲加載插件jquery.lazyload.js的使用方法
- Jquery的each里用return true或false代替break或continue
- jQuery基于當(dāng)前元素進(jìn)行下一步的遍歷
- jquery 表格排序、實(shí)時(shí)搜索表格內(nèi)容(附圖)
- jQuery實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)圖片預(yù)覽大圖效果
- jquery預(yù)覽圖片實(shí)現(xiàn)鼠標(biāo)放上去顯示實(shí)際大小
- jquery實(shí)現(xiàn)兼容瀏覽器的圖片上傳本地預(yù)覽功能
- jQuery實(shí)現(xiàn)圖片放大預(yù)覽實(shí)現(xiàn)原理及代碼
- jquery 圖片上傳按比例預(yù)覽插件集合
- 基于jquery實(shí)現(xiàn)的上傳圖片及圖片大小驗(yàn)證、圖片預(yù)覽效果代碼
- jquery實(shí)現(xiàn)預(yù)覽提交的表單代碼分享
相關(guān)文章
.NET客戶(hù)端實(shí)現(xiàn)Redis中的管道(PipeLine)與事物(Transactions)
本文主要介紹了.NET客戶(hù)端實(shí)現(xiàn)Redis中的管道(PipeLine)與事物(Transactions)的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-03-03Asp.Net Core 企業(yè)微信靜默授權(quán)的實(shí)現(xiàn)
這篇文章主要介紹了Asp.Net Core 企業(yè)微信靜默授權(quán)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10ASP.NET 定制簡(jiǎn)單的錯(cuò)誤處理頁(yè)面實(shí)現(xiàn)代碼
通常web應(yīng)用程序在發(fā)布后,為了給用戶(hù)一個(gè)友好界面和使用體驗(yàn),都會(huì)在錯(cuò)誤發(fā)生時(shí)跳轉(zhuǎn)至一個(gè)自定義的錯(cuò)誤頁(yè)面,而不是asp.net向用戶(hù)暴露出來(lái)的詳細(xì)的異常列表。2010-01-01.NET微信開(kāi)發(fā)之PC 端微信掃碼注冊(cè)和登錄功能實(shí)現(xiàn)
這篇文章主要介紹了.NET微信開(kāi)發(fā)之PC 端微信掃碼注冊(cè)和登錄功能實(shí)現(xiàn)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09淺談ASP.NET MVC 防止跨站請(qǐng)求偽造(CSRF)攻擊的實(shí)現(xiàn)方法
下面小編就為大家分享一篇淺談ASP.NET MVC 防止跨站請(qǐng)求偽造(CSRF)攻擊的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01詳解ASP.NET Core 中的多語(yǔ)言支持(Localization)
本篇文章主要介紹了ASP.NET Core 中的多語(yǔ)言支持(Localization) ,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08linq to sql 中,如何解決多條件查詢(xún)問(wèn)題,答案,用表達(dá)式樹(shù)! (下)
在上一篇中,我們做了基于linq to sql 的多條件組合查詢(xún),但通過(guò)監(jiān)視數(shù)據(jù)庫(kù)發(fā)現(xiàn),這樣做的成本比較高,每次都要取出全部的數(shù)據(jù)到內(nèi)存進(jìn)行篩選.2011-08-08DataAdapter執(zhí)行批量更新的實(shí)例代碼
這篇文章介紹了DataAdapter執(zhí)行批量更新的實(shí)例代碼,有需要的朋友可以參考一下,希望對(duì)你有所幫助2013-07-07