Easyui의 스타일을 사용하고 싶지는 않았지만 테이블 기능이 필요했습니다. 원래는 온라인에서 관련 플러그인을 찾아보고 싶었지만 찾을 수 없어서 직접 작성하기 시작했습니다. 그렇게 쉬울 거라고는 기대하지 마세요.
백엔드 코드: (중요하지 않음)
public ActionResult GetDictTypes() { var data = from a in dbo.DictTypes select new DictTypeListViewModel { ID = a.ID, Name = a.Name, LastChangeUser = a.LastChangeUser, LastChangeDate = a.LastChangeDate, Remark = a.Remark }; return Json(data.ToList()); }
페이지 코드:
<table class="table" id="DictTypeTable"> <thead> <tr> <th>ID</th> <th>标题</th> <th>简介</th> </tr> </thead> <tbody class="sel"></tbody> </table>
javascript 코드: ($(document).ready(function ($){ })에서 호출해야 함
function ShowDictType() { $('#DictTypeTable').children('tbody').empty(); $.ajax({ url: GetDictTypes_URL, type: 'post', dataType: 'json' }) .done(function (data) { var tbody = ""; $.each(data, function (index, el) { var tr = "<tr>"; tr += "<td>" + el.ID + "</td>"; tr += "<td>" + el.Name + "</td>"; tr += "<td>" + el.Remark + "</td>"; tr += "</tr>"; tbody += tr; }); $('#DictTypeTable').children('tbody').append(tbody); BindDictTypeTableEvent();//这里是绑定事件 }) .fail(function () { alert("Err"); }); }
양식이 생성된 후 이벤트를 바인딩하려면:
function BindDictTypeTableEvent() { $('#DictTypeTable tbody.sel').children('tr').click(function (event) { $(this).siblings('tr').removeClass('active');//删除其他行的选中效果 $(this).addClass('active');//增加选中效果 var id = $(this).children('td:eq(0)').text();//获取ID ShowDictData(id);//操作代码,这里是显示另一个表格数据 }); }
마지막으로 선택한 항목의 ID를 가져오는 코드는 다음과 같습니다.
function GetTypeTableSelectId() { return $('#DictTypeTable tbody.sel tr.active td:eq(0)').text(); }