#html #asp.net-core
Вопрос:
У меня есть несколько десятичных столбцов в строке, которые сгруппированы в классе emphrs. Но когда я добавляю новую строку внутри таблицы, как я могу установить 0,00 в качестве значения по умолчанию для всех столбцов, сгруппированных в классе emphrs
В моем классе модели EmpHrs.cs атрибут столбца
public decimal SundayNetHrs { get; set; }
public decimal MondayNetHrs { get; set; }
public decimal TuesdayNetHrs { get; set; }
public decimal WednesdayNetHrs { get; set; }
public decimal ThursdayNetHrs { get; set; }
public decimal FridayNetHrs { get; set; }
public decimal SaturdayNetHrs { get; set; }
В Html EmpHrs у меня есть таблица со столбцом EmpHrs
<tbody>
<tr>
<td>@Html.TextBoxFor(model => model.FromDate, new { @class = "form-control date-input" })</td>
<td>@Html.TextBoxFor(model => model.ToDate, new { @class = "form-control date-input" })</td>
<td>@Html.EditorFor(model => model.SundayNetHrs, new { htmlAttributes = new { type = "number", @class = "form-control w-100 empHrs" } })</td>
<td>@Html.EditorFor(model => model.MondayNetHrs, new { htmlAttributes = new { type = "number", @class = "form-control w-100 empHrs" } })</td>
<td>@Html.EditorFor(model => model.TuesdayNetHrs, new { htmlAttributes = new { type = "number", @class = "form-control w-100 empHrs" } })</td>
<td>@Html.EditorFor(model => model.WednesdayNetHrs, new { htmlAttributes = new { type = "number", @class = "form-control w-100 empHrs" } })</td>
</tr>
</tbody>
<button type="button" id="btnUpdate" name="submitButton" value="DeleteAtt"
class="btn btn-primary form-control" onclick="AddNew();">
<i class="fa fa-save"></i><span class="padding-left-ten">Add New Row</span>
</button>
function AddNew() {
var clone = $("#tblEntry tr:last").clone().find('input').val('').end().insertAfter("#tblEntry tr:last");
$(clone).find(".date-input").datepicker({ format: 'dd/mm/yyyy', todayHighlight: true, date: new Date(), autoclose: true, todayBtn: 'linked' });
// Here All column under EmpHrs class should be set default value 0.00
}
Ответ №1:
Вы могли бы попробовать следующий способ:
Модель:
public class EmpHrs
{
[DataType(DataType.Date, ErrorMessage = "Date only")]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime FromDate { get; set; }
[DataType(DataType.Date, ErrorMessage = "Date only")]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime ToDate { get; set; }
public decimal SundayNetHrs { get; set; }
public decimal MondayNetHrs { get; set; }
public decimal TuesdayNetHrs { get; set; }
public decimal WednesdayNetHrs { get; set; }
public decimal ThursdayNetHrs { get; set; }
public decimal FridayNetHrs { get; set; }
public decimal SaturdayNetHrs { get; set; }
}
Контроллер:
public IActionResult SetDefaultValue()
{
var empHrs= new EmpHrs() { SundayNetHrs = 10, MondayNetHrs = 10, TuesdayNetHrs = 2, WednesdayNetHrs = 2, ThursdayNetHrs = 3, FridayNetHrs = 5, SaturdayNetHrs = 9 };
return View(empHrs);
}
Примечание: Я привязываю некоторое значение по умолчанию при загрузке. Если вы можете пропустить его, если потребуется. По щелчку мыши мы также установим значение по умолчанию, используя
javascript
его в следующей части.
Вид:
@model EmpHrs
@{
ViewData["Title"] = "SetDefaultValue";
}
<table id="tblEntry" class="table table-striped">
<thead>
<tr>
<th>Date From</th>
<th>Date To</th>
<th>SundayNetHrs</th>
<th>MondayNetHrs</th>
<th>TuesdayNetHrs</th>
<th>WednesdayNetHrs</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>@Html.EditorFor(model => model.FromDate, new { @id = "FromDate", htmlAttributes = new { @class = "form-control datepicker w-100" } })</td>
<td>@Html.EditorFor(model => model.ToDate, new { @id = "ToDate", htmlAttributes = new { @class = "form-control datepicker w-100" } })</td>
<td>@Html.EditorFor(model => model.SundayNetHrs, new {@id = "SundayNetHrs", htmlAttributes = new { type = "number", @class = "form-control w-100 empHrs" } })</td>
<td>@Html.EditorFor(model => model.MondayNetHrs, new { @id = "MondayNetHrs", htmlAttributes = new { type = "number", @class = "form-control w-100 empHrs" } })</td>
<td>@Html.EditorFor(model => model.TuesdayNetHrs, new { @id = "TuesdayNetHrs", htmlAttributes = new { type = "number", @class = "form-control w-100 empHrs" } })</td>
<td>@Html.EditorFor(model => model.WednesdayNetHrs, new { @id = "WednesdayNetHrs", htmlAttributes = new { type = "number", @class = "form-control w-100 empHrs" } })</td>
</tr>
</tbody>
</table> <div class="row padding-top-ten center-block">
<div class="col-md-4">
</div>
<div class="col-md-6">
<div class="col-sm-4">
<button type="button" id="btnUpdate" name="submitButton" value="DeleteAtt"
class="btn btn-primary form-control" onclick="AddNew();">
<i class="fa fa-save"></i><span class="padding-left-ten">Add New Row</span>
</button>
</div>
</div>
</div>
Скрипт:
<script>
function AddNew() {
// alert("Click");
var newRow = $("#tblEntry tbody tr").first().clone();
var row = $("tbody").append(newRow);
//Set Default value while adding new rows
var defaultValue = 0;
$("tbody tr:last-of-type td").find("input[id*='SundayNetHrs']").val(defaultValue.toFixed(2));
$("tbody tr:last-of-type td").find("input[id*='MondayNetHrs']").val(defaultValue.toFixed(2));
$("tbody tr:last-of-type td").find("input[id*='TuesdayNetHrs']").val(defaultValue.toFixed(2));
$("tbody tr:last-of-type td").find("input[id*='WednesdayNetHrs']").val(defaultValue.toFixed(2));
}
</script>
Примечание: Посмотрите на
tbody tr:last-of-type td
селектор, здесь я нахожу каждыйinputbox
и присваиваю ему значение. Поэтому просто найдите
ожидаемый элемент ввода и назначьте значение, используяdefaultValue
toFixed
javascript
метод with для настройки десятичного делителя.
Выход:
Надеюсь, это решит вашу проблему.
Ответ №2:
Используйте конкретное значение:
public decimal SundayNetHrs { get; set; }=0.00;
public decimal MondayNetHrs { get; set; }=0.00;
public decimal TuesdayNetHrs { get; set; }=0.00;
public decimal WednesdayNetHrs { get; set; }=0.00;
public decimal ThursdayNetHrs { get; set; }=0.00;
public decimal FridayNetHrs { get; set; }=0.00;
public decimal SaturdayNetHrs { get; set; }=0.00;