با سلام
این سوال را بارها و بارها از سایت شما و جستجو در اینترنت کردم اما به نتیجه ای نرسیدم. نمی دانم روش سختی است یا خیر ولی به نتیجه ای نرسیدم.
لطفا راهنمایی فرمایید لطفا ...
می خواهم توسط 2 کنترل (روش DataTable و روش WebGrid ) با فشردن دکمه اضافه کردن به گرید اطلاعات را توسط Ajax از دو text box خوانده و در Grid اضافه نمایم و با فشردن دکمه ارسال کلیه اطلاعات بایند شده Model در Razor و همچنین اطلاعات تغییر یافته (Add,Delete Update) افلاین در گرید به Action در تگ Form ارسال گردد .
لطفا برای پیاده سازی با این 2 گرید مخصوصا Datatable راهنمایی نمایید
در زیر نمونه کد تستی را ارسال کردم
View =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@model Spec.Model.TempModel
@{
ViewBag.HeaderTitle = "فرم تستی";
}
<button id="btnGrid">اضافه کردن به گرید</button>
<form action="@Url.Action("Index", "Temp")" method="post" id="tempId">
@Html.TextBoxFor(x => x.Temp.CODE, new { id = "txtCode", Class = "form-control ", placeholder = "کد ", Style = "width:80%;" })
@Html.TextBoxFor(x => x.Temp.TITLE, new { id = "txtTitle", Class = "form-control ", placeholder = "عنوان", Style = "width:80%;" })
<table class="table table-striped table-bordered table-hover " id="myGrid">
<thead>
<tr>
<th>کد</th>
<th>عنوان</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.TempList)
{
<tr>
<td>@item.CODE</td>
<td>@item.TITLE</td>
</tr>
count++;
}
</tbody>
</table>
@if (Model.TempList != null && Model.TempList.Count() > 0)
{
var grid = new WebGrid(Model.TempList, canSort: true);
<div>
@grid.GetHtml(columns:
grid.Columns
(
grid.Column("CODE", "کد"),
grid.Column("TITLE", "عنوان")
), mode: WebGridPagerModes.Numeric)
</div>
}
<button id="btnPost" type="submit" class="btn btn-primary block btnstyle">ارسال</button>
</form>
<script type="text/javascript">
$(document).ready(function () {
var myTable = $('#myGrid').DataTable(
{
"columns": [
{ "data": "Column1" },
{ "data": "Column2" }
]
});
$('#btnGrid').on('click', function () {
myTable.rows.add([{
"Column1": $("#txtCode").val(),
"Column2": $("#txtTitle").val()
}]).draw(false);
});
});
</script>
Controller =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
public virtual ActionResult Index()
{
List<TempDto> temps = iTempService.GetListGeneric(null, null);
model = new TempModel(temps);
return View(model);
}
[HttpPost]
public virtual ActionResult Index(TempModel model)
{
//Do something
return View();
}
Dto =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
public class TempDto
{
public long CODE { get; set; }
public string TITLE { get; set; }
}
Model=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
public class TempModel
{
public TempDto Temp { get; set; }
public IList<TempDto> TempList { get; set; }
public TempModel() { }
public TempModel(List<TempDto> TEMPList)
{
this.TempList = TEMPList;
}
public TempModel(TempDto temp)
{
this.Temp= temp;
}
}
}