關於巢狀使用DataList的心得 原創

2021-03-31 08:56:59 字數 1155 閱讀 1807

做乙個歌手列表的時候,想做成按拼音首字母排序,由於歌手都放在一起,所以涉及到記錄巢狀的問題,在網上找了下,發現寫得不是很清楚,經過一番研究後,有了如下心得:

datalist的巢狀(先說明一下,dloutside表示外面的datalist,dlinner表示裡面的datalist),實現原理是dloutside在建立的時候,動態生成dlinner,所以,dloutside在定義的時候,要定義乙個函式,在dloutside建立的時候觸發,也就是dloutside.itemcreated所指向的函式。這裡,我們假設這個函式為dloutsideitemcreated()。在dloutsideitemcreated()中,根據e.item.itemtype來生成所需要的東西,if (e.item.itemtype==listitemtype.item) 表示當dloutside建立普通項,e.item.itemtype==listitemtype.alternatingitem就是建立交替項了。

接下來,就到重點了。dlinner的資料來源根據dloutside.datakeys[e.item.itemindex]來得到,所以dloutside的datakeys就是二者聯絡的關鍵了。dlinner由於要動態生成,所以我們要自己寫個類,繼承itemplate,這就是乙個模板了。建立模板的時候有個instantiatein(),這個就是生成模板的主要部分了,資料還要繫結,所以在instantiatein()中,要定義乙個觸發事件,在觸發的事件中繫結資料。

原理講的差不多了,這裡我隨便寫個例子,給大家加深映象,由於是示範,寫得不是很具體,具體就要靠大家了:

private void dloutside_itemcreated(object sender, system.web.ui.webcontrols.datalistitemeventargs e)

if (e.item.itemtype==listitemtype.alternatingitem)

}dloutside就到這裡,下面是dlinner的自定義模板:

public class mytemp:itemplate

private void templatecontrol_databinding(object sender, system.eventargs e)

}還有些datalist的介面什麼的,就把html**寫到模板類裡就ok了,這裡不多說了。

好了,就到這裡。

續 datalist巢狀方法二

前台 page language c autoeventwireup true codefile datalist巢狀.aspx.cs inherits datalist巢狀 後台 using system using system.collections.generic using system....

Repeart控制項中巢狀DataList控制項

repeart控制項中巢狀datalist控制項,一般顯示資料,網頁上都比較喜歡用datalist因為他很靈活,而且樣式好控制.而一些特定的功能需要用到資料控制項之間繫結才能實現.但如果在datalist中再繫結乙個datalist呢?這樣效率很底.在功能條件允許的情況下,應該更優先的考慮reper...

關於度量值的巢狀使用

將計算列作為引數在度量值中進行巢狀使用是非常常見的一種操作。反過來,在度量值表示式中使用度量值作為引數也挺常見。不過需要注意的是,當度量值中巢狀度量值時,dax其實是會將引數度量值轉譯成乙個計算列,之後再參與運算。也就是說,為了避免出現複雜的巢狀引用依賴關係,dax內部邏輯處理上不允許使用度量值作為...