最近遇到乙個問題害我鬱悶了很久,在乙個頁面裡分類顯示資料,每乙個大類裡的資料是動態取得。打算將它分三列顯示,希望得到的效果:顯示成了:
aa cceeaaccee
aaacceeaaccee
aaacceeaaccee
bbbcceeccee
bbbcceeccee
bbbddeeee
bbbddffbbddff
ffbbbddff
ffbbbff
思索良久結果發現我是迴圈大類的datatable將每一大類放在乙個div中,設定他的寬度是整個div 的1/3將它的float屬性設為了left,屬性margin-top:0px;,結果就成了右邊的那樣式。檢視頁面原始碼時發現bb的那個div的margin-top是針對ee的那個div的。這樣就麻煩了,我的將頁面劃分成左、中、右三塊,然後再在每個div中填資料,可是大類就乙個datatable啊。只好將這datatable拆分三個了。
拆分的步驟如下:
secclasstb.defaultview.sort = "sec_shortening asc";//排序
//為了顯示三列
//qing 新增於6-8,6-10改
datatable dt1 = new datatable();
datatable dt2 = new datatable();
datatable dt3 = new datatable();
datarow dr;
//將大類的datatable裡的列加入到新建的datatable中去
foreach (datacolumn c in secclasstb.columns)
dt1.columns.add(c.columnname, c.datatype);
dt2.columns.add(c.columnname, c.datatype);
dt3.columns.add(c.columnname, c.datatype);
//將secclasstb拆分成三個datatable
for (int i=0; i < secclasstb.rows.count; i++)
object rowitems = new object[secclasstb.columns.count];
if (i % 3 == 0)
//可以用這種方法新增行,因為我沒成功,沒有用它
//object o1 = secclasstb.rows.count>i ? secclasstb.rows[i].itemarray : new object[secclasstb.columns.count];
// dr = dt1.newrow();
//dt1.rows.add(o1);
dr = dt1.newrow();
dr["sec_classname"] = secclasstb.rows[i].itemarray[0];
dr["sec_shortening"] = secclasstb.rows[i].itemarray[1];
dr["id"] = secclasstb.rows[i].itemarray[2];
dt1.rows.add(dr);
else if (i % 3 == 1)
dr = dt2.newrow();
dr["sec_classname"] = secclasstb.rows[i].itemarray[0];
dr["sec_shortening"] = secclasstb.rows[i].itemarray[1];
dr["id"] = secclasstb.rows[i].itemarray[2];
dt2.rows.add(dr);
else if (i % 3 == 2)
dr = dt3.newrow();
dr["sec_classname"] = secclasstb.rows[i].itemarray[0];
dr["sec_shortening"] = secclasstb.rows[i].itemarray[1];
dr["id"] = secclasstb.rows[i].itemarray[2];
dt3.rows.add(dr);
//排序
dt1.defaultview.sort = "sec_shortening asc";
dt2.defaultview.sort = "sec_shortening asc";
dt3.defaultview.sort = "sec_shortening asc";
//資料來源的繫結
repdalei.datasource = dt1;
repdalei.databind();
//datalist1.datasource = secclasstb;
//datalist1.databind();
//迴圈每個二級分類,獲得獲得它的所有項
for (int i = 0; i < dt1.rows.count; i++)
//得到分類的key直
//得到應用的table
//資料繫結
((datalist)repdalei.items[i].findcontrol("datalist2")).databind();
//資料來源的繫結
repdalei2.datasource = dt2;
repdalei2.databind();
//datalist1.datasource = secclasstb;
//datalist1.databind();
//迴圈每個二級分類,獲得獲得它的所有項
for (int i = 0; i < dt2.rows.count; i++)
//得到分類的key直
//得到應用的table
//資料繫結
((datalist)repdalei2.items[i].findcontrol("datalist3")).databind();
//資料來源的繫結
repdalei3.datasource = dt3;
repdalei3.databind();
//datalist1.datasource = secclasstb;
//datalist1.databind();
//迴圈每個二級分類,獲得獲得它的所有項
for (int i = 0; i < dt3.rows.count; i++)
//得到分類的key直
//得到應用的table
//資料繫結
((datalist)repdalei3.items[i].findcontrol("datalist4")).databind();
拆成三個datatable後分別繫結到頁面上後問題就解決了。。。
多對多拆成兩個 多對一
今天就談談使用多對多的感想。多對多的用處有很多,比如專題和文章,這是常用的新聞系統。乙個專題下有很多文章,同樣乙個文章可以屬於多個專題,那麼這就是多對多,但是如果我們使用hibernate的多對多的話,會出現兩個嚴重的問題 1 多對多基於中間表,那麼中間表是無法操作的。你無法查詢出該專題下的所有文章...
n個平面最多把乙個空間拆成多少個區域
n條直線最多把乙個平面拆成1 n 1 n 2個區域,請問 n個平面最多把乙個空間拆成多少個區域?n 0 這個問題我想了挺久,後來有在網上搜,並且也搜到了很詳細的解答,但是沒有看,我還是希望能自己想出來 其實是覺得看那 麼多字很煩 p 終於在乙個漆黑的夜晚靈光一現,地球 了。答案是什麼並不重要,重要的...
多個DataTable的合併成乙個新錶
有時我們知道了兩個datatable1和datatable2,我們希望將它們合併為乙個新的datatable 下面的例子中命名為了newdatatable 這就分為兩種情況 datatable1和datatable2結構相同 datatable1和datatable2結構不同,下面分別介紹怎麼進行合...