#c# #asp.net-mvc #razor
#c# #asp.net-mvc #razor
Вопрос:
У меня есть условие типа, у меня есть параметр и подпараметр в одной таблице столбцов с именем «NameParameter». Параметр и подпараметр становятся единым целым в этом столбце, но у меня есть другой столбец, чтобы определить, было ли значение параметром или подпараметром, столбец имеет тип «TypeParameter» типа int, если значение было параметром в параметре NameParameter, идентификатор в параметре типа будет равен 1, а для подпараметра будет равно 2 в столбце TypeParameter.
и я хочу создать столбец в таблице, в котором есть параметр и подпараметр, они являются spread. итак, вот мои коды.
<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»
еще не распространен по параметру типа, поэтому, пожалуйста, помогите мне с этим. Спасибо
Комментарии:
1. Это простая опечатка? Первый и второй
td
оба вывода@jajal.NameParameter
2. нет, я не предполагаю, что это будет одинаковым, потому что первый «td» предназначен для параметра, а второй «td» — для подпараметра, поэтому @jajal. NameParameter, «NameParameter» был именем столбца из моей таблицы db. Я застрял на логике, как распространить значение в столбце «NameParameter», чтобы оно было параметром, а подпараметр основывался на «TypeParameter», параметр был равен 1, а подпараметр — 2.
3. на самом деле для распространения и зацикливания. хехе, я застрял на логике.
4. Я понимаю. Знаете ли вы, в каком порядке они (param и subparam) отображаются
ViewBag.Coba1
в списке?5. Я создаю Viewbag, подобный этому ViewBag. Coba1 = db.CIXMasterParameter. ToList(); он отображает все данные из таблицы.
Ответ №1:
Неясно, как связаны строки параметра и подпараметра, поэтому кажется трудным отобразить их в одной строке. При отсутствии этого лучшее, чего вы можете добиться, это оставить один из столбцов пустым. Выглядело бы примерно так:
parameter Sub Parameter
a
b
e
c
g
h
d
Конечно, это всего лишь пример. Для этого вы могли бы использовать еще несколько if
s:
@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. я пробовал этот способ, его работа, но. таблица выглядит беспорядочно. кажется, я неправильно зацикливаю его
Ответ №2:
вот мой временный ответ, на самом деле я использую некоторый код jquery.rowspanizer.min.js по лицензии MIT.
<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>
но в таблице все еще беспорядок. я получил этот ответ от моего старшего.