我有一个条件,例如,我在名为“ NameParameter” 的一列表中有参数和子参数。参数和子参数在该列中变为一个,但是我还有另一列来标识值是参数还是子参数,如果值是中的参数,则该列为“ TypeParameter” 类型int NameParameter ,在 TypeParameter 列中, TypeParameter 中的ID为1,子参数为2。
我想在表的一列中创建一个参数和子参数,它们被散布了。 所以这里是我的代码。
<table>
<tr>
<th>Parameter</th>
<th>SubParameter</th>
<th>Persentase</th>
<th>Bobot</th>
</tr>
@foreach (var jajal in ViewBag.Coba1)
{
<tr>
@if (@jajal.TypeParameter != null)
{
<td contenteditable='true'>@jajal.NameParameter</td>
<td contenteditable='true'>@jajal.NameParameter</td>
<td contenteditable='true'>@jajal.Persentase</td>
<td contenteditable='true'>@jajal.Bobot</td>
}
</tr>
}
</table>
}
我对输出的期望是这样的
parameter Sub Parameter
a e
b f
c g
d h
但是从上面的代码中,它们显示了列“ NameParameter” 中的所有值 尚未通过 TypeParameter 传播,因此请帮助我。谢谢
答案 0 :(得分:0)
尚不清楚参数和子参数行如何连接,因此似乎很难在同一行上显示它们。缺少这一点,您可以实现的最佳结果就是将其中一列留空。看起来像这样:
parameter Sub Parameter
a
b
e
c
g
h
d
当然,这只是一个例子。为此,您可以使用更多if
:
@foreach (var jajal in ViewBag.Coba1)
{
<tr>
@if (@jajal.TypeParameter != null)
{
@if (@jajal.TypeParameter == 1)
{
<td contenteditable='true'>@jajal.NameParameter</td>
<td></td>
}
@if (@jajal.TypeParameter == 2)
{
<td></td>
<td contenteditable='true'>@jajal.NameParameter</td>
}
<td contenteditable='true'>@jajal.Persentase</td>
<td contenteditable='true'>@jajal.Bobot</td>
}
</tr>
}
请注意如何使用空的<td>
代替缺少的列值
答案 1 :(得分:0)
这是我的临时答案,实际上我使用了MIT许可证中的一些代码jquery.rowspanizer.min.js。
<tr>
> <th>Parameter</th>
> <th>SubParameter</th>
> <th>DetailParameter</th>
> <th>Narasi</th>
> <th>Jumlah</th>
> <th>Persentase</th>
> <th>Total Konvensi</th>
> <th>Range</th>
> <th>Risk Level</th>
> <th>Bobot</th>
> <th>Score</th>
> </tr>
> <tr>
> @{
> var isi = (List<APUPPT.Models.CIXMasterParameter>)ViewBag.Coba1; // Cast the
> list
> var parent = isi.Where(x => x.TypeParameter == 1).Where(x => x.Parent_id == null);
> }
>
> @foreach (var param in parent)
> {
> var subPar = isi.Where(x => x.TypeParameter == 2).Where(x => x.Parent_id == param.Id);
> <tr>
>
> @foreach (var sub in subPar)
> {
> var detPar = isi.Where(x => x.TypeParameter == 3).Where(x => x.Parent_id == sub.Id);
> if (detPar.Count() == 0 || detPar.Count() == null)
> {
> <td contenteditable='true'>
> @param.NameParameter
> </td>
> <td contenteditable='true'>
> @sub.NameParameter
> </td>
> <td contenteditable='true'></td>
> @Html.Raw("</tr><tr>")
> }
> else
> {
> foreach (var det in detPar)
> {
> <td contenteditable='true'>
> @param.NameParameter
> </td>
> <td contenteditable='true'>
> @sub.NameParameter
> </td>
> <td contenteditable='true'>
> @det.NameParameter
> </td>
> <td contenteditable='true' width='200'></td>
> <td contenteditable='true'></td>
> <td contenteditable='true'>
> @det.Persentase
> </td>
> <td contenteditable='true'></td>
> <td contenteditable='true'></td>
> <td contenteditable='true'></td>
> <td contenteditable='true'>
> @det.Bobot
> </td>
> <td contenteditable='true'>
>
> </td>
>
>
> @Html.Raw("</tr><tr>")
> }
> }
> }
> </tr>
但是桌子仍然一团糟。我从上级那里得到了这个答案。