Jquery 法拉通讯: @Html.TextBox(“FalarCom”) Obs: @Html.TextBox(“ObsTel”) 身份证件 努梅罗 法拉公司 Obs 数据状态(N=无/U-更新/D-删除/I=插入) @{ foreach(型号Telefones中的var tel) { @DisplayFor(t=>tel.idtelefoneproprio) @DisplayFor(t=>tel.Numero) @DisplayFor(t=>tel.FalarCom) @DisplayFor(t=>tel.Obs) X N } }
请注意,这并没有完全起作用(仅用于普通用途),而且它还没有实现很多情况 将此表发送回控制器的方式完全基于“http://code.msdn.microsoft.com/Detail-CRUD-Operations-fbe935ef作者称之为“主细节积垢操作”的示例 试试这个 控制器Jquery 法拉通讯: @Html.TextBox(“FalarCom”) Obs: @Html.TextBox(“ObsTel”) 身份证件 努梅罗 法拉公司 Obs 数据状态(N=无/U-更新/D-删除/I=插入) @{ foreach(型号Telefones中的var tel) { @DisplayFor(t=>tel.idtelefoneproprio) @DisplayFor(t=>tel.Numero) @DisplayFor(t=>tel.FalarCom) @DisplayFor(t=>tel.Obs) X N } },jquery,asp.net-mvc-3,grid,datatables,Jquery,Asp.net Mvc 3,Grid,Datatables,请注意,这并没有完全起作用(仅用于普通用途),而且它还没有实现很多情况 将此表发送回控制器的方式完全基于“http://code.msdn.microsoft.com/Detail-CRUD-Operations-fbe935ef作者称之为“主细节积垢操作”的示例 试试这个 控制器 public ActionResult ObtenerDatosGrid(string sidx, string sord, int page, int rows) { F
public ActionResult ObtenerDatosGrid(string sidx, string sord, int page, int rows)
{
Func<Amigo, IComparable> funcOrden =
sidx == "Apellidos" ? a => a.Apellidos :
sidx == "FechaDeNacimiento" ? a => a.FechaDeNacimiento :
sidx == "Email" ? a => a.Email :
(Func<Amigo, IComparable>)(a => a.Id);
// Establecemos si se trata de orden ascendente o descendente, en
// función del parámetro "sord", que puede valer "asc" o "desc"
Ordenacion ordenacion = sord == "asc" ? Ordenacion.Ascendente : Ordenacion.Descendente;
// Usamos el modelo para obtener los datos
var datos = gestorDeAmigos.ObtenerAmigos(page, rows, funcOrden, ordenacion);
int totalRegistros = gestorDeAmigos.ContarAmigos();
int totalPages = (int)Math.Ceiling((decimal)totalRegistros / (decimal)rows);
// Creamos la estructura
var data = new
{
total = totalPages,
page = page,
records = totalRegistros,
rows = from a in datos
select new {
id= a.Id,
cell= new string[] {
a.Apellidos,
a.Nombre,
a.FechaDeNacimiento.ToShortDateString(),
a.Email
}
}
};
// return Json(data);
return Json(data, JsonRequestBehavior.AllowGet);
}
<link href="../../Content/Runnable.css" rel="stylesheet" type="text/css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery("#list").jqGrid({
url: '<%= Url.Action("ObtenerDatosGrid") %>',
datatype: 'json',
mtype: 'GET',
colNames: ['Apellidos', 'Nombre', 'Fecha Nac.', 'Email'],
colModel: [
{ index: 'Apellidos', width: 150, align: 'left' },
{ index: 'Nombre', width: 150, align: 'left', sortable: false },
{ index: 'FechaDeNacimiento', width: 80, align: 'center' },
{ index: "Email", width: 120, align: 'left'}],
pager: jQuery('#pager'),
rowNum: 20,
rowList: [20, 50, 100],
sortname: 'Apellidos',
sortorder: 'asc',
viewrecords: true,
imgpath: '/content/cupertino/images',
caption: 'Agenda personal',
height: 400,
width: 900,
onSelectRow: function (id) {
alert("Pulsado Id: " + id);
}
});
});
</script>
public ActionResult ObtenerDatosGrid(字符串sidx、字符串sord、int页、int行)
{
Func funcOrden=
sidx==“阿佩利多斯”?a=>a.阿佩利多斯:
sidx==“FechaDeNacimiento”?a=>a.FechaDeNacimiento:
sidx==“电子邮件”?a=>a.电子邮件:
(Func)(a=>a.Id);
//在英格兰的上升和下降方向上
//FuffiN.DEL帕拉地铁“SORD”,QuePueDe Valr“ASC”O“DESC”
Ordenacion Ordenacion=sord==“asc”?Ordenacion.Ascendente:Ordenacion.Ascendente;
//Usamos el modelo para obtener los datos
var datos=gestorDeAmigos.ObtenerAmigos(页、行、函数、函数);
int totalRegistros=gestorDeAmigos.ContarAmigos();
int totalPages=(int)数学上限((十进制)totalRegistros/(十进制)行);
//埃斯特瑞斯塔奶油酒店
var数据=新
{
总计=总页数,
第页,
记录=totalRegistros,
行=从DATO中的a开始
选择新的{
id=a.id,
单元格=新字符串[]{
a、 阿佩利多斯,
a、 名义上,
a、 FechaDeNacimiento.ToSortDateString(),
a、 电子邮件
}
}
};
//返回Json(数据);
返回Json(数据,JsonRequestBehavior.AllowGet);
}
jQuery(文档).ready(函数(){
jQuery(“#list”).jqGrid({
url:“”,
数据类型:“json”,
mtype:'获取',
colNames:['Apellidos','Nombre','Fecha-Nac','Email'],
colModel:[
{索引:'Apellidos',宽度:150,对齐:'left'},
{索引:'Nombre',宽度:150,对齐:'left',可排序:false},
{索引:'FechaDeNacimiento',宽度:80,对齐:'center'},
{索引:“电子邮件”,宽度:120,对齐:'左'},
pager:jQuery(“#pager”),
rowNum:20,
行列表:[20,50,100],
sortname:“阿佩利多斯”,
排序器:“asc”,
viewrecords:是的,
imgpath:“/content/cupertino/images”,
标题:“个人议程”,
身高:400,
宽度:900,
OnSetrow:功能(id){
警报(“脉冲Id:+Id”);
}
});
});
@KundanSinghChouhan,添加了代码。。。有什么想法吗?
(...)
$(document).ready(function () {
// here i have used datatables.js (jQuery Data Table)
$('#tblTelefones').dataTable({
"sDom": 'T<"clear">lfrtip',
"oTableTools": {
"aButtons": [],
"sRowSelect": "single"
},
"bLengthChange": false,
"bFilter": false,
"bSort": false,
"bInfo": false,
"oLanguage": {
"sZeroRecords": " - - - ",
"sEmptyTable": "< nenhum telefone armazenado >"
},
"aoColumns": [
/*ID*/ { "bVisible": false },
/*Número*/ null,
/*Falar com */ null,
/*Obs*/ null,
/*Actions*/ null,
/*DataStatus*/ { "bVisible": false, "sType": "html" }
]
});
var oTable = $('#tblTelefones').dataTable();
});
(...)
function AddTel() {
if ($('#Telefone').val().trim() == '')
{
alert('É necessário indicar ao menos o número do telefone a incluir');
return;
}
$('#tblTelefones').dataTable().fnAddData(['', $('#Telefone').val(), $('#FalarCom').val(), $('#ObsTel').val(), '<span onclick="DeleteTel(this.parentNode.parentNode);">X</span>', 'I']);
$('#Telefone').val("");
$('#FalarCom').val("");
$('#ObsTel').val("");
}
function DeleteTel(nTr) {
var oTT = $('#tblTelefones').dataTable();
var sRow = oTT.fnGetData(nTr);
if (confirm('Tem certeza que deseja remover o telefone ' + sRow[1] + '?')) {
if (sRow[0] == '') {
oTT.fnDeleteRow(nTr);
} else {
oTT.fnUpdate('D', nTr, 5);
}
}
}
<div style="width:75%; margin-left:auto; margin-right:auto;">
<fieldset style="width:100%;">
<legend>Novo Telefone</legend>
<table style="width:100%;">
<tr>
<td style="width:10%;">
<span class="editor-label">
<label>Telefone:</label>
</span>
</td>
<td style="width:23%;">
<span class="editor-field">
@Html.TextBox("Telefone")
</span>
</td>
<td style="width:10%;">
<span class="editor-label">
<label>Falar com:</label>
</span>
</td>
<td style="width:23%;">
<span class="editor-field">
@Html.TextBox("FalarCom")
</span>
</td>
<td style="width:10%;">
<span class="editor-label">
<label>Obs:</label>
</span>
</td>
<td style="width:23%;">
<span class="editor-field">
@Html.TextBox("ObsTel")
</span>
</td>
</tr>
<tr>
<td colspan="6" style="text-align:center;">
<input type="button" value="Adicionar telefone" onclick="AddTel()" />
</td>
</tr>
</table>
</fieldset>
<table id="tblTelefones" class="TabelaDados" style="width:100%">
<thead>
<tr>
<th>ID</th>
<th>Número</th>
<th>Falar com </th>
<th>Obs</th>
<th> </th>
<th>DataStatus(N = None / U - Updated / D - Deleted / I = Inserted)</th>
</tr>
</thead>
<tbody>
@{
foreach (var tel in Model.Telefones)
{
<tr>
<td>@Html.DisplayFor(t => tel.IDTelefoneProprietario)</td>
<td>@Html.DisplayFor(t => tel.Numero)</td>
<td>@Html.DisplayFor(t => tel.FalarCom)</td>
<td>@Html.DisplayFor(t => tel.Obs)</td>
<td><span onclick="DeleteTel(this.parentNode.parentNode);">X</span></td>
<td>N</td>
</tr>
}
}
</tbody>
</table>
</div>
public ActionResult ObtenerDatosGrid(string sidx, string sord, int page, int rows)
{
Func<Amigo, IComparable> funcOrden =
sidx == "Apellidos" ? a => a.Apellidos :
sidx == "FechaDeNacimiento" ? a => a.FechaDeNacimiento :
sidx == "Email" ? a => a.Email :
(Func<Amigo, IComparable>)(a => a.Id);
// Establecemos si se trata de orden ascendente o descendente, en
// función del parámetro "sord", que puede valer "asc" o "desc"
Ordenacion ordenacion = sord == "asc" ? Ordenacion.Ascendente : Ordenacion.Descendente;
// Usamos el modelo para obtener los datos
var datos = gestorDeAmigos.ObtenerAmigos(page, rows, funcOrden, ordenacion);
int totalRegistros = gestorDeAmigos.ContarAmigos();
int totalPages = (int)Math.Ceiling((decimal)totalRegistros / (decimal)rows);
// Creamos la estructura
var data = new
{
total = totalPages,
page = page,
records = totalRegistros,
rows = from a in datos
select new {
id= a.Id,
cell= new string[] {
a.Apellidos,
a.Nombre,
a.FechaDeNacimiento.ToShortDateString(),
a.Email
}
}
};
// return Json(data);
return Json(data, JsonRequestBehavior.AllowGet);
}
<link href="../../Content/Runnable.css" rel="stylesheet" type="text/css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery("#list").jqGrid({
url: '<%= Url.Action("ObtenerDatosGrid") %>',
datatype: 'json',
mtype: 'GET',
colNames: ['Apellidos', 'Nombre', 'Fecha Nac.', 'Email'],
colModel: [
{ index: 'Apellidos', width: 150, align: 'left' },
{ index: 'Nombre', width: 150, align: 'left', sortable: false },
{ index: 'FechaDeNacimiento', width: 80, align: 'center' },
{ index: "Email", width: 120, align: 'left'}],
pager: jQuery('#pager'),
rowNum: 20,
rowList: [20, 50, 100],
sortname: 'Apellidos',
sortorder: 'asc',
viewrecords: true,
imgpath: '/content/cupertino/images',
caption: 'Agenda personal',
height: 400,
width: 900,
onSelectRow: function (id) {
alert("Pulsado Id: " + id);
}
});
});
</script>