Я использую данные datatables. Требование состоит в том, чтобы сделать определенные столбцы данных доступными для редактирования после того, как пользователь проверит/нажмет на соответствующие переключатели. Например, если пользователь нажимает на DEA, соответствующий DEA coulmn в обеих таблицах должен быть доступен для редактирования и так далее, как показано на скриншоте. Измененные данные также должны быть сохранены в БД.Сделать конкретную колонку редактируемой на основе изменения переключателя в Datatables
стороне клиента код:
var $bTable = $('#tblBadFormat').dataTable({
"sDom": "<'row'<'col-sm-12'<'pull-right'f><'pull-left'l>r<'clearfix'>>>t<'row'<'col-sm-12'<'pull-left'i><'pull-right'p><'clearfix'>>>",
"bFilter": false,
"bInfo": false,
"bLengthChange": false,
"sPaginationType": "full_numbers",
"bServerSide": true,
"bProcessing": true,
"iDisplayLength": 10,
"sAjaxSource": '@Url.Action("GetBadFormatData")',
"aoColumns": [
{ "sName": "ID", "bVisible": false, "bSortable": false },
{ "sName": "DEA", "bSortable": false },
{ "sName": "Product", "bSortable": false },
{ "sName": "NDC", "bSortable": false },
{ "sName": "Sales", "bSortable": false },
{ "sName": "Fees", "bSortable": false },
{ "sName": "Quantity", "bSortable": false },
{ "sName": "Contract", "bSortable": false },
{ "sName": "Fee", "bSortable": false },
{ "sName": "HIN", "bSortable": false },
{ "sName": "CustomerName", "bSortable": false },
{ "sName": "CustomerAddress", "bSortable": false },
{ "sName": "City", "bSortable": false },
{ "sName": "State", "bSortable": false }
],
"fnPreDrawCallback": function() {
centerThis('Processing');
$("#Processing").css("display", "block");
},
"fnDrawCallback": function (oSettings) {
if (oSettings._iDisplayLength < oSettings.fnRecordsDisplay()) {
$('.dataTables_paginate').css("display", "block");
}
else {
$('.dataTables_paginate').css("display", "none");
}
$('#tblBadFormat tbody tr td').each(function() {
this.setAttribute('title', "Click to see contracts.");
});
},
"fnInitComplete": function() {
this.fnAdjustColumnSizing();
centerThis('Processing');
$("#Processing").css("display", "none");
}
});
var $nTable = $('#tblNotInBad').dataTable({
"sDom": "<'row'<'col-sm-12'<'pull-right'f><'pull-left'l>r<'clearfix'>>>t<'row'<'col-sm-12'<'pull-left'i><'pull-right'p><'clearfix'>>>",
"bFilter": false,
"bInfo": false,
"bLengthChange": false,
"sPaginationType": "full_numbers",
"bServerSide": true,
"bProcessing": true,
"iDisplayLength": 10,
"sAjaxSource": '@Url.Action("GetNotInBadFormatData")',
"aoColumns": [
{ "sName": "ID", "bVisible": false, "bSortable": false, "sWidth": "2%" },
{ "sName": "DEA", "bSortable": false, "sWidth": "2%" },
{ "sName": "Product", "bSortable": false },
{ "sName": "NDC", "bSortable": false },
{ "sName": "Sales", "bSortable": false },
{ "sName": "Fees", "bSortable": false },
{ "sName": "Quantity", "bSortable": false },
{ "sName": "Contract", "bSortable": false },
{ "sName": "Fee", "bSortable": false },
{ "sName": "HIN", "bSortable": false },
{ "sName": "CustomerName", "bSortable": false },
{ "sName": "CustomerAddress", "bSortable": false },
{ "sName": "City", "bSortable": false },
{ "sName": "State", "bSortable": false }
],
"fnPreDrawCallback": function() {
centerThis('Processing');
$("#Processing").css("display", "block");
},
"fnDrawCallback": function (nSettings) {
if (nSettings._iDisplayLength < nSettings.fnRecordsDisplay()) {
$('.dataTables_paginate').css("display", "block");
}
else {
$('.dataTables_paginate').css("display", "none");
}
$('#tblNotInBad tbody tr td').each(function() {
this.setAttribute('title', "Click to see contracts.");
});
},
"fnInitComplete": function() {
this.fnAdjustColumnSizing();
centerThis('Processing');
$("#Processing").css("display", "none");
}
});
HTML код:
<div class="content-box-content">
<table style="width:100%;font-size:10px;">
<tr>
<td >
<label>
<input type="checkbox" id="skip" value="Skip Check" />Skip Check
</label>
</td>
<td >
<label>
Check:
</label>
</td>
<td style="text-align:center;">
<label>
<input type="radio" name="filter" value="DEA" id="rdb1" />DEA
</label>
</td>
<td >
<label>
<input type="radio" name="filter" value="HIN" id="rdb2" />HIN
</label>
</td>
<td >
<label>
<input type="radio" name="filter" value="NDC" id="rdb3" />NDC
</label>
</td>
<td >
<label>
<input type="radio" name="filter" value="Contract" id="rdb4" />Contract
</label>
</td>
<td >
<label>
<input type="radio" name="filter" value="Payment" id="rdb5" />Payment
</label>
</td>
</tr>
</table>
</div>
<div>
<label style="font-size:12px;">Bad Format:</label>
<table id="tblBadFormat" class="table table-bordered table-hover table-striped table-condensed" style="width:100%;">
<thead>
<tr>
<th style="font-size:11px;">Id</th>
<th style="font-size:11px;">DEA</th>
<th style="font-size:11px;">Product Name/Description</th>
<th style="font-size:11px;">NDC</th>
<th style="font-size:11px;">Sales $</th>
<th style="font-size:11px;">Fees $</th>
<th style="font-size:11px;">Qty/Units</th>
<th style="font-size:11px;">Contract #(ID)</th>
<th style="font-size:11px;">Fee %</th>
<th style="font-size:11px;">HIN</th>
<th style="font-size:11px;">Customer Name</th>
<th style="font-size:11px;">Customer Address</th>
<th style="font-size:11px;">City</th>
<th style="font-size:11px;">State</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<div>
<label style="font-size:12px;">Not in GPO:</label>
<table id="tblNotInBad" class="table table-bordered table-hover table-striped table-condensed" style="width:100%;">
<thead>
<tr>
<th style="font-size:11px;">Id</th>
<th style="font-size:11px;">DEA</th>
<th style="font-size:11px;">Product Name/Description</th>
<th style="font-size:11px;">NDC</th>
<th style="font-size:11px;">Sales $</th>
<th style="font-size:11px;">Fees $</th>
<th style="font-size:11px;">Qty/Units</th>
<th style="font-size:11px;">Contract #(ID)</th>
<th style="font-size:11px;">Fee %</th>
<th style="font-size:11px;">HIN</th>
<th style="font-size:11px;">Customer Name</th>
<th style="font-size:11px;">Customer Address</th>
<th style="font-size:11px;">City</th>
<th style="font-size:11px;">State</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
Json Ответ на 1-й таблице:
{"sEcho":"1","iTotalRecords":4,"iTotalDisplayRecords":4,"aaData":[["1","22EF581100","Shampoo","0090456890","9.80","4.50","5","2000018590-01","13.33","","JOHNSON","Boston","Houston","Texas"],["2","22EF581100","Toothpaste","0090456890","5.50","3.50","5","2000018590-01","15.66","","Merk","Dallas","Los Angeles","California"],["3","22EF581100","Hair Gel","0090456890","5.66","2.50","5","2000018590-01","14.67","","Sun","Dallas","San Antonio","Texas"],["4","22EF581100","Hair Cream","0090456890","3.33","3.89","5","2000018590-01","12.56","","JOHNSON","Dallas","Dallas","Texas"]]}
Json ответ на 2-ой таблице:
{"sEcho":"1","iTotalRecords":4,"iTotalDisplayRecords":4,"aaData":[["5","22EF581100","Body Deodrant","0090456890"
,"6.50","4.56","3","2000018590-01","11.67","","Olay","San Diego","Lexington","Kentucky"],["6","22EF581100"
,"FaceWash","0090456890","3.50","7.68","6","2000018590-01","10.90","","Facklay","Washington","Kansas
City","Missouri"],["7","22EF581100","Facial Cream","0090456890","8.90","8.65","8","2000018590-01","45
.67","","Neutrogena","Washington","Buckeye","Arizona"],["8","22EF581100","Perfume","0090456890","2.30"
,"9.78","9","2000018590-01","23.56","","Garnier","Washington","Phoenix","Arizona"]]}
Пожалуйста, поймите, что это не готовый к вставке код сайта. Что вы пробовали? Сначала вам нужно проявить свои усилия. – niksofteng
Приносим извинения, что вы не вставляете код. Я редактировал свой пост. –
Ничего, не могли бы вы также отправить ответ 'json' с сервера или обработанный' html' тоже будет хорошо. Также, когда вы добавляете комментарий, если хотите уведомить пользователя, начинайте с '@' и имени пользователя, как в моем случае @GuruprasadRao чтобы уведомить меня .. Другие мудрые мы не знали бы о вашем комментарии или обновлении .. –