Reputation: 139
I want to print all Records at once, and for this I used String.Join()
. However, the problem is I cant make New Line
when I want print all records in DropDownList and as you see in Screenshots. Instead, it select all at once, but I want select one-by-one, like normal DropDownList.
Can anyone please help me or point me in the right direction at what did I wrong?
Here's what I have so far
ViewModel:
public OrdreRMA OrdreRMAs { get; set; }
public class OrdreRMA
{
public OrdreRMA(List<string> SerialNoInvoiceOrdrelineDeliveryClose)
{
this.SerialNoInvoiceOrdrelineDeliveryClose = SerialNoInvoiceOrdrelineDeliveryClose;
}
public List<string> SerialNoInvoiceOrdrelineDeliveryClose { get; set; }
}
Controller:
Serial = data.Item_Ledger_Entry
.Where(ledger => ledger.Document_No_ == t.Document_No_)
.Where(ledger => ledger.Document_Line_No_ == t.Line_No_)
.ToList(),
var bla4 = col2.Select(t => new OrdreRMA
{
SerialNoInvoiceOrdrelineDeliveryClose = t.Serial.Select(x => x.Serial_No_).ToList(),
}
1.View (First I used ,
):
@{
var SerialNos =
String.Join(",",Model.OrdreRMAs.SerialNoInvoiceOrdrelineDeliveryClose);
}
<div class="col-md-3">
<div class="form-group">
<label>Serial number</label>
@if (SerialNos == "")
{
<input name="ikketilgængelig" id="ikketilgængelig" class="form-control border-input disabled" value="not available">
}
else
{
<select class="form-control border-input" id="ddlSerial">
<option value="@SerialNos">@SerialNos</option>
</select>
}
</div>
</div>
Result 1:
2.View (Second I used Environment.NewLine
):
@{
var SerialNos =
String.Join(Environment.NewLine,Model.OrdreRMAs.SerialNoInvoiceOrdrelineDeliveryClose);
}
<div class="col-md-3">
<div class="form-group">
<label>Serial number</label>
@if (SerialNos == "")
{
<input name="ikketilgængelig" id="ikketilgængelig" class="form-control border-input disabled" value="not available">
}
else
{
<select class="form-control border-input" id="ddlSerial">
<option value="@SerialNos">@SerialNos</option>
</select>
}
</div>
</div>
**Result 2**:
[![Result #2][2]][2]
**3.View (instead using `String.Join`, I used `Foreach`)**:
```html
<div class="col-md-3">
<div class="form-group">
<label>Serial number</label>
@if (SerialNos == "")
{
<input name="ikketilgængelig" id="ikketilgængelig" class="form-control border-input disabled" value="not available">
}
else
{
@foreach (var item in Model.OrdreRMAs.SerialNoInvoiceOrdrelineDeliveryClose)
{
<select class="form-control border-input" id="ddlSerial">
<option value="@item">@item</option>
</select>
}
</div>
}
</div>
</div>
Result 3:
Upvotes: 2
Views: 1742
Reputation: 156
How about making an array of List<string>
in controller.
And later using it as @String.Join(",", @item.arrayname)
in Razor?
Upvotes: 0
Reputation: 675
You are putting foreach in a wrong place.
<select class="form-control border-input" id="ddlSerial">
@foreach (var item in Model.OrdreRMAs.SerialNoInvoiceOrdrelineDeliveryClose)
{
<option value="@item">@item</option>
}
</select>
Upvotes: 1
Reputation: 20111
Try to put select out side foreach loop
<select class="form-control border-input" id="ddlSerial">
@foreach (var item in Model.OrdreRMAs.SerialNoInvoiceOrdrelineDeliveryClose)
{
<option value="@item">@item</option>
}
</select>
Upvotes: 1