Çok sayıda onay kutum var, şu anda her sütunu içeren bir div ile 3 sütun halinde koymak istiyorum.Liste verisini traş kullanarak birçok taneye bölmek için zarif bir yol
Ancak, oldukça kaprisliyim ve onları yarın 10 veya 20 sütun halinde koymak isteyebilirim, satırları veya başka türdeki bir div olarak döndürmek isteyebilirim.
3 sütun için bir örnek: Öncelikle bu kullanarak 3 süre yapmaya çalıştım
<div class="column-1">
<input type="checkbox" id="foo-1">Checkbox # 1
<input type="checkbox" id="foo-2">Checkbox # 2
<input type="checkbox" id="foo-3">Checkbox # 3
</div>
<div class="column-2">
<input type="checkbox" id="foo-4">Checkbox # 4
<input type="checkbox" id="foo-5">Checkbox # 5
<input type="checkbox" id="foo-6">Checkbox # 6
</div>
<div class="column-3">
<input type="checkbox" id="foo-7">Checkbox # 7
<input type="checkbox" id="foo-8">Checkbox # 8
<input type="checkbox" id="foo-9">Checkbox # 9
</div>
aşağıda döngüler: Bu iyi çalışır, ama çok çirkin olur
@{
int i = 0;
IEnumerable<foo> bar = new List<foo>(){foo1,foo2,foo3,foo4,foo5,foo6};
}
<div id="column-1">
while (i < bar.Count()/3)
{
baz = bar.ElementAt(i);
<input type="checkbox" id="[email protected]" checked='@baz.CheckIt' />@baz.DisplayText
i++;
}
</div>
<div id="column-2">
@while (i < bar.Count() * 2/3)
{
baz = bar.ElementAt(i);
<input type="checkbox" id="[email protected]" checked='@baz.CheckIt' />@baz.DisplayText
i++;
}
</div>
<div id="column-3">
@while (i < bar.Count())
{
baz = bar.ElementAt(i);
<input type="checkbox" id="[email protected]" checked='@baz.CheckIt' />@baz.DisplayText
i++;
}
</div>
kullanmak istediğim eğer 3'ten fazla sütun. Zaten oldukça çirkin bir şekilde. Ayrıca, sütun sayısının kolayca değiştirilmesine izin vermez. Ayrıca, her biri farklı bir değere (sırasıyla 0,1,2) başlayan ve i
3 sayısını artıran döngüler için değiştirilebilir, ancak bu hala 3 döngülerdir.
i = 0
foreach(checkbox in list)
{
if(i % numberOfColumns == 0)
{
createNewRow()
}
placeCheckBox()
i++
}
. Ancak bu, amacım için iyi bir hizmet sunmayan çok sayıda satır divs verir. Ayrıca aslında kutunun içinde olmak için onay kutusunu alma sorunu var. Yukarıdaki iki çözüm, satırlardan ziyade sütunlar oluşturmak için birleştirilebilirdi, bu daha iyi görünüyor ama yine de ikinci çözümle aynı sorunlara sahip.
Bunu yapmak için çok daha basit ve daha iyi bir yol olmalı, sütunların sayısını kodlamak zorunda kalmadan, hiç kimsenin bu temelden 20'sini yazmak istemediğinden.
Ayrıca, bir listedeki her öğe için html etiketleri oluşturmanın genişletilebilir ve özlü bir yolu var mıdır? Eğer öyleyse ne var?