611 lines
24 KiB
Plaintext
611 lines
24 KiB
Plaintext
<%@ Page Title="" Language="C#" MasterPageFile="~/MachineDeviceManagement/DeviceManagementBase.master" AutoEventWireup="true" CodeFile="AssetHistory.aspx.cs" Inherits="AssetHistory" %>
|
|
|
|
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
|
|
<link rel="shortcut icon" href="<%=GetFileUrlWithVersion("../favicon.ico") %>" />
|
|
<style type="text/css">
|
|
.no_wrap th {
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.max160 {
|
|
max-width: 160px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
#dialog_machines .dialog-content table td input {
|
|
width: auto;
|
|
}
|
|
|
|
.dialog-content table td textarea {
|
|
margin-top: 6px;
|
|
}
|
|
|
|
.dialog-content table td select {
|
|
width: 254px;
|
|
height: 24px;
|
|
}
|
|
|
|
.dialog-content table td input[type="checkbox"] {
|
|
border: none;
|
|
}
|
|
|
|
.dialog-content table td textarea {
|
|
height: 150px;
|
|
width: 420px;
|
|
max-width: 500px;
|
|
}
|
|
|
|
.ctl_button {
|
|
font-family: 'CalciteWebCoreIcons';
|
|
display: block;
|
|
margin: 6px auto;
|
|
width: 60px;
|
|
height: 22px;
|
|
line-height: 21px;
|
|
padding: 0;
|
|
}
|
|
|
|
.group_table .main_table {
|
|
table-layout: fixed;
|
|
}
|
|
|
|
.group_table .main_table thead tr {
|
|
display: block;
|
|
}
|
|
|
|
.group_table .main_table tbody {
|
|
height: 280px;
|
|
display: block;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.group_table .main_table th {
|
|
width: 165px;
|
|
}
|
|
|
|
.group_table .main_table td {
|
|
width: 165px;
|
|
white-space: nowrap;
|
|
word-break: keep-all;
|
|
}
|
|
|
|
.group_table .main_table td div {
|
|
width: 165px;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
word-break: keep-all;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.td_controller {
|
|
vertical-align: middle;
|
|
padding: 40px 8px;
|
|
/*border-left: 1px solid #b0b0b0;
|
|
border-right: 1px solid #b0b0b0;*/
|
|
}
|
|
|
|
.ctl_button {
|
|
font-family: 'CalciteWebCoreIcons';
|
|
display: block;
|
|
margin: 6px auto;
|
|
width: 60px;
|
|
height: 22px;
|
|
line-height: 21px;
|
|
padding: 0;
|
|
}
|
|
|
|
#tbwoh {
|
|
width: 100%;
|
|
line-height: 30px;
|
|
border-collapse: collapse;
|
|
border-spacing: 0;
|
|
}
|
|
|
|
#tbwoh th {
|
|
border: 1px solid #bababa;
|
|
background-color: #d8dce1;
|
|
text-align: left;
|
|
border-right: 1px solid #bababa;
|
|
font-weight: bold;
|
|
position: relative;
|
|
padding-left: 5px;
|
|
}
|
|
|
|
#tbwoh tr {
|
|
border-bottom: 1px solid #cacaca;
|
|
}
|
|
|
|
#tbwoh td {
|
|
border-right: 1px solid #cacaca;
|
|
padding-left: 5px;
|
|
}
|
|
|
|
.search_bar span, .search_bar label {
|
|
margin-left: 10px !important;
|
|
line-height: 25px !important;
|
|
}
|
|
</style>
|
|
<script src="<%=GetFileUrlWithVersion("js/controls.js")%>" type="text/javascript"></script>
|
|
<script src="<%=GetFileUrlWithVersion("../js/assetselector.js")%>" type="text/javascript"></script>
|
|
<script type="text/javascript">
|
|
var assetid = "<%=AssetId %>";
|
|
var custid = "<%=CustomerId %>";
|
|
var IsSuperAdmin =<%=IsSuperAdmin ?"true":"false"%>;
|
|
var IsAdmin =<%=IsAdmin ?"true":"false"%>;
|
|
var IsDealer = <%=IsDealer ?"true":"false"%>;
|
|
var IsOpen = <%=IsOpen ?"true":"false"%>;
|
|
var asset = null;
|
|
|
|
assetquery = function (method, param, callback, error) {
|
|
_network.request("MachineDeviceManagement/AssetHistory.aspx", -1, method, param, callback, error);
|
|
}
|
|
|
|
function devicerequest(method, param, callback, error) {
|
|
_network.request("MachineDeviceManagement/ManageMachines.aspx", -1, method, param, callback, error || function (e) {
|
|
console.log(e);
|
|
showAlert('An unknown error occurred. Please refresh page.', 'Query');
|
|
});
|
|
}
|
|
|
|
function CloseDialog(type) {
|
|
OnRefresh();
|
|
}
|
|
|
|
function OnRefresh() {
|
|
assetid = $('#div_asset').dropdownVal();
|
|
if (!assetid) {
|
|
return;
|
|
}
|
|
var begindate = $('#startdatetxt').val();
|
|
var enddate = $('#enddatetxt').val();
|
|
if (begindate && !$('#startdatetxt').is(':valid')) {
|
|
showAlert(GetTextByKey('P_COMMON_BEGINDATEISINVALID', "The begin date is invalid."), GetTextByKey("P_FR_ERROR", 'Error'));
|
|
return;
|
|
}
|
|
if (enddate && !$('#enddatetxt').is(':valid')) {
|
|
showAlert(GetTextByKey('P_COMMON_ENDDATEISINVALID', "The end date is invalid."), GetTextByKey("P_FR_ERROR", 'Error'));
|
|
return;
|
|
}
|
|
if (begindate && enddate && begindate > enddate) {
|
|
showAlert(GetTextByKey("P_JS_ENDDATEMUSTBELATERTHANBEGINDATE", "End Date must be later than Begin Date."), GetTextByKey("P_FR_ERROR", 'Error'));
|
|
return;
|
|
}
|
|
showloading(true);
|
|
var contractorid = "";
|
|
if (IsOpen)
|
|
contractorid = custid;
|
|
else
|
|
contractorid = htmlencode($.trim($('#sel_contractor').val()));
|
|
assetquery('GetAssetHistorys', JSON.stringify([contractorid, assetid, begindate, enddate]), function (data) {
|
|
showloading(false);
|
|
if (typeof (data) === "string") {
|
|
showAlert(data, GetTextByKey('P_MA_ASSETHISTORY', "Asset History"));
|
|
return;
|
|
}
|
|
showAssetList(data);
|
|
}, function (err) {
|
|
showloading(false);
|
|
});
|
|
}
|
|
|
|
function showAssetList(data) {
|
|
var ahislist = $("#ahislist").empty();
|
|
//var logid = -1;
|
|
var datetime = "";
|
|
var ftr = null;
|
|
var count = 0;
|
|
var adddoctext = GetTextByKey('P_MA_ADDITIONALDOCUMENTATION', 'Additional Documentation');
|
|
for (var i = 0; i < data.length; i++) {
|
|
var r = data[i];
|
|
|
|
var type = "";
|
|
var status = "";
|
|
var category = "";
|
|
if (r.UpdateType == 0)
|
|
type = GetTextByKey('P_MA_HIS_MANUALLY', 'Manually');
|
|
else if (r.UpdateType == 1)
|
|
type = GetTextByKey('P_MA_HIS_AUTOMATICALLY', 'Automatically');
|
|
else if (r.UpdateType == 2)
|
|
type = GetTextByKey('P_MA_HIS_SYSTEM', 'System');
|
|
|
|
if (r.UpdateStatus == 0)
|
|
status = GetTextByKey('P_MA_HIS_CREATED', 'Created');
|
|
else if (r.UpdateStatus == 1)
|
|
status = GetTextByKey('P_MA_HIS_MODIFIED', 'Modified');
|
|
else if (r.UpdateStatus == 2)
|
|
status = GetTextByKey('P_MA_HIS_SHARED', 'Shared');
|
|
else if (r.UpdateStatus == 9999)
|
|
status = GetTextByKey('P_WO_HIS_DELETED', 'Deleted');
|
|
|
|
switch (r.Category) {
|
|
case 0:
|
|
category = GetTextByKey('P_MA_ASSETNAME', 'Asset Name');
|
|
break;
|
|
case 1:
|
|
category = GetTextByKey('P_MA_ASSETNAME2', 'Asset Name(Custom)');
|
|
break;
|
|
case 2:
|
|
category = GetTextByKey('P_MA_VIN', 'VIN/SN');
|
|
break;
|
|
case 3:
|
|
category = GetTextByKey('P_MA_MAKE', 'Make');
|
|
break;
|
|
case 4:
|
|
category = GetTextByKey('P_MA_MODEL', 'Model');
|
|
break;
|
|
case 5:
|
|
category = GetTextByKey('P_MA_TYPE1', 'Type');
|
|
break;
|
|
case 6:
|
|
category = GetTextByKey('P_MA_HIDEHIDDEN', 'Hide/Hidden');
|
|
break;
|
|
case 7:
|
|
category = GetTextByKey('P_MA_ONROAD', 'On-Road');
|
|
break;
|
|
case 8:
|
|
category = GetTextByKey('P_MA_TELEMATICSENABLED', 'Telematics Enabled');
|
|
break;
|
|
case 9:
|
|
category = GetTextByKey('P_MA_ATTACHMENT', 'Attachment');
|
|
break;
|
|
case 10:
|
|
category = GetTextByKey('P_MA_PRELOADED', 'Preloaded');
|
|
break;
|
|
case 11:
|
|
category = GetTextByKey('P_MD_YEAR', 'Year');
|
|
break;
|
|
case 12:
|
|
category = GetTextByKey('P_MA_EQCLASS', 'Eq.Class');
|
|
break;
|
|
case 13:
|
|
category = GetTextByKey('P_MA_DESCRIPTION', 'Description');
|
|
break;
|
|
case 14://Custom status
|
|
category = GetTextByKey('P_MA_AVAILABILITY', 'Availability');
|
|
break;
|
|
case 15:
|
|
category = GetTextByKey('P_MA_ACQUISITIONTYPE', 'Acquisition Type');
|
|
break;
|
|
case 16:
|
|
category = GetTextByKey('P_MA_COSTCENTER', 'Cost Center');
|
|
break;
|
|
case 17:
|
|
category = GetTextByKey('P_MA_ICONFILENAME', 'Icon File Name');
|
|
break;
|
|
case 51:
|
|
category = adddoctext;
|
|
break;
|
|
case 52:
|
|
category = adddoctext + " " + GetTextByKey('P_MA_NAME', 'Name');
|
|
break;
|
|
case 53:
|
|
category = adddoctext + " " + GetTextByKey('P_MA_DESCRIPTION', 'Description');
|
|
break;
|
|
case 54:
|
|
category = adddoctext + " " + GetTextByKey('P_MA_VISIBLEONWORKORDER1', 'Visible On Work Order');
|
|
break;
|
|
case 55:
|
|
category = adddoctext + " " + GetTextByKey('P_MA_VISIBLEONMAP1', 'Visible On Map');
|
|
break;
|
|
case 56:
|
|
category = adddoctext + " " + GetTextByKey('P_MA_VISIBLEONMOBILE1', 'Visible On Mobile');
|
|
break;
|
|
case 57:
|
|
category = adddoctext + " " + GetTextByKey('P_MA_URL', 'Url');
|
|
break;
|
|
case 60:
|
|
category = GetTextByKey('P_MA_ASSETGROUP', 'Asset Group');
|
|
break;
|
|
case 61:
|
|
category = GetTextByKey('P_MA_PM', 'PM');
|
|
break;
|
|
case 62:
|
|
category = GetTextByKey('P_MA_ATTACHMENTINFO', 'Attachment Info');
|
|
break;
|
|
case 63:
|
|
category = GetTextByKey('P_MA_ASSETTYPETOATTACHTO', 'Asset Type to Attach To');
|
|
break;
|
|
case 64:
|
|
category = GetTextByKey('P_MA_STYLE', 'Style');
|
|
break;
|
|
case 65:
|
|
category = GetTextByKey('P_MA_CAPACITYCYD', 'Capacity (CYD)');
|
|
break;
|
|
case 66:
|
|
category = GetTextByKey('P_MA_CAPACITYWEIGHT', 'Capacity (Weight)');
|
|
break;
|
|
case 67:
|
|
category = GetTextByKey('P_MA_DIMENSION1INCM', 'Dimension #1 (in/cm)');
|
|
break;
|
|
case 68:
|
|
category = GetTextByKey('P_MA_WIDTH', 'Width');
|
|
break;
|
|
case 69:
|
|
category = GetTextByKey('P_MA_OLDNUMBER', 'Old Number');
|
|
break;
|
|
case 70:
|
|
category = GetTextByKey('P_MA_ATTACHTOMAKE', 'Attach to Make');
|
|
break;
|
|
case 71:
|
|
category = GetTextByKey('P_MA_ATTACHTOMODEL', 'Attach to Model');
|
|
break;
|
|
case 72:
|
|
category = GetTextByKey('P_MA_ATTACHTOANASSET', 'Attached to an Asset');
|
|
break;
|
|
case 73:
|
|
category = GetTextByKey('P_MA_ATTACHEDTO', 'Attached to');
|
|
break;
|
|
case 74:
|
|
category = GetTextByKey('P_MA_HIS_ATTRIBUTES', 'Attributes');
|
|
break;
|
|
case 75:
|
|
category = GetTextByKey('P_MA_HIS_ASSETCONTACT', 'Asset Contact');
|
|
break;
|
|
case 76:
|
|
category = GetTextByKey('P_MA_HIS_ASSETJOBSITE', 'Asset Jobsite');
|
|
break;
|
|
case 97:
|
|
category = GetTextByKey('P_WO_HIS_DELETED', 'Deleted');
|
|
break;
|
|
case 99:
|
|
category = GetTextByKey('P_MA_HIS_ASSETLIFECYCLE', 'Asset Life Cycle');
|
|
break;
|
|
default:
|
|
category = GetTextByKey('P_WO_HIS_OTHER', 'Other');
|
|
break;
|
|
}
|
|
|
|
var tr = $("<tr></tr>");
|
|
//if (logid != r.Id) {
|
|
if (datetime !== r.DateTimeStr) {
|
|
if (ftr && count > 1)
|
|
ftr.children().eq(0).attr("rowspan", count);
|
|
count = 0;
|
|
ftr = tr;
|
|
tr.append($("<td></td>").text(r.DateTimeStr));
|
|
}
|
|
tr.append($("<td></td>").text(status));
|
|
tr.append($("<td></td>").text(type));
|
|
tr.append($("<td></td>").text(r.UpdateBy));
|
|
tr.append($("<td></td>").text(category));
|
|
tr.append($("<td></td>").text(r.Detail));
|
|
var td_del = $("<td></td>");
|
|
tr.append(td_del);
|
|
if (i % 2 == 1)
|
|
tr.css("background-color", "#f1f4f8");
|
|
|
|
ahislist.append(tr);
|
|
//logid = r.Id;
|
|
datetime = r.DateTimeStr;
|
|
count++;
|
|
}
|
|
if (ftr && count > 1)
|
|
ftr.children().eq(0).attr("rowspan", count);
|
|
}
|
|
|
|
//admin用户 获取所有contractor
|
|
function getContractors() {
|
|
devicerequest('GetContractors', '', function (data) {
|
|
if (typeof (data) === "string") {
|
|
showAlert(data, GetTextByKey("P_MD_ERROR", 'Error'));
|
|
return;
|
|
}
|
|
if (data && data.length > 0) {
|
|
var sel_search = $('#sel_contractor').empty();
|
|
var sel_con = $("#dialog_contractor").empty();
|
|
sel_con.append($('<option></option>').val("-1").text(" "));
|
|
for (var i = 0; i < data.length; i++) {
|
|
var kv = data[i];
|
|
var op_search = $('<option></option>').val(kv.Key).text(kv.Value);
|
|
sel_search.append(op_search);
|
|
op_search = $('<option></option>').val(kv.Key).text(kv.Value);
|
|
sel_con.append(op_search);
|
|
}
|
|
contractors = data;
|
|
}
|
|
else
|
|
contractors = [];
|
|
|
|
GetAssets();
|
|
});
|
|
}
|
|
|
|
//普通用户 获取可操作的contractor
|
|
function GetContractorsByUser() {
|
|
devicerequest('GetContractorsByUser', '', function (data) {
|
|
if (typeof (data) === "string") {
|
|
showAlert(data, GetTextByKey("P_MD_ERROR", 'Error'));
|
|
return;
|
|
}
|
|
if (data && data.length > 0) {
|
|
var sel_search = $('#sel_contractor').empty();
|
|
for (var i = 0; i < data.length; i++) {
|
|
var kv = data[i];
|
|
var op_search = $('<option></option>').val(kv.Key).text(kv.Value);
|
|
sel_search.append(op_search);
|
|
}
|
|
contractors = data;
|
|
}
|
|
else
|
|
contractors = [];
|
|
|
|
GetAssets();
|
|
});
|
|
}
|
|
|
|
function getAssetDetailInfo() {
|
|
assetquery("GetAssetDetailInfo", custid + String.fromCharCode(170) + assetid, function (data) {
|
|
if (typeof (data) === "string") {
|
|
return;
|
|
}
|
|
asset = data;
|
|
$('#div_asset').dropdownSource([data]);
|
|
$('#div_asset').dropdownVal(assetid);
|
|
OnRefresh();
|
|
}, function (err) {
|
|
});
|
|
}
|
|
|
|
function GetAssets() {
|
|
showloading(true);
|
|
var contractorid = "";
|
|
if (IsOpen)
|
|
contractorid = custid;
|
|
else
|
|
contractorid = htmlencode($.trim($('#sel_contractor').val()));
|
|
assetquery('GetMachinesByCompany1', contractorid, function (data) {
|
|
if (typeof (data) === "string") {
|
|
showAlert(data, GetTextByKey("P_AM_ERROR", 'Error'));
|
|
return;
|
|
}
|
|
showloading(false);
|
|
$('#div_asset').dropdownSource(data);
|
|
if (assetid) {
|
|
$('#div_asset').dropdownVal(assetid);
|
|
OnRefresh();
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
var dialogAssets;
|
|
$(function () {
|
|
setPageTitle(GetTextByKey("P_MA_ASSETHISTORY", "Asset History"), true);
|
|
$('#div_asset').dropdown([], {
|
|
search: true,
|
|
valueKey: 'ID',
|
|
textKey: 'Name'
|
|
});
|
|
|
|
if (IsOpen) {
|
|
$('#sel_contractor').val(custid);
|
|
$('#sel_contractor').attr('disabled', true);
|
|
getAssetDetailInfo();
|
|
}
|
|
else {
|
|
if (IsDealer == true) {
|
|
$('#span_contractor').css('display', '');
|
|
if (IsAdmin)
|
|
getContractors();
|
|
else {
|
|
GetContractorsByUser();
|
|
}
|
|
}
|
|
else
|
|
GetAssets();
|
|
}
|
|
|
|
$("#sel_contractor").change(function () {
|
|
$('#div_asset').dropdownSource([]);
|
|
$('#div_asset').dropdownVal(-1);
|
|
$("#ahislist").empty();
|
|
assetid = '';
|
|
asset = null;
|
|
GetAssets();
|
|
});
|
|
|
|
$('#searchinputtxt').keydown(searchEnter);
|
|
$(window).resize(function () {
|
|
$("#divwoh").css("height", $(window).height() - $("#divwoh").offset().top - 4);
|
|
//grid_dt && grid_dt.resize();
|
|
}).resize();
|
|
|
|
if (!canExport) {
|
|
$('#spExport').hide();
|
|
}
|
|
|
|
});
|
|
|
|
function searchEnter(e) {
|
|
if (e.keyCode == 13 || e.keyCode == 9) {
|
|
OnRefresh();
|
|
}
|
|
}
|
|
|
|
function OnExport() {
|
|
if (!assetid) {
|
|
return;
|
|
}
|
|
|
|
var begindate = $('#startdatetxt').val();
|
|
var enddate = $('#enddatetxt').val();
|
|
if (begindate && !$('#startdatetxt').is(':valid')) {
|
|
showAlert(GetTextByKey('P_COMMON_BEGINDATEISINVALID', "The begin date is invalid."), GetTextByKey("P_FR_ERROR", 'Error'));
|
|
return;
|
|
}
|
|
if (enddate && !$('#enddatetxt').is(':valid')) {
|
|
showAlert(GetTextByKey('P_COMMON_ENDDATEISINVALID', "The end date is invalid."), GetTextByKey("P_FR_ERROR", 'Error'));
|
|
return;
|
|
}
|
|
if (begindate && enddate && begindate > enddate) {
|
|
showAlert(GetTextByKey("P_JS_ENDDATEMUSTBELATERTHANBEGINDATE", "End Date must be later than Begin Date."), GetTextByKey("P_FR_ERROR", 'Error'));
|
|
return;
|
|
}
|
|
|
|
var contractorid = "";
|
|
if (IsOpen)
|
|
contractorid = custid;
|
|
else
|
|
contractorid = htmlencode($.trim($('#sel_contractor').val()));
|
|
|
|
window.open("../ExportToFile.aspx?type=assethis&c=" + contractorid + "&from=" + begindate + "&to=" + enddate + "&aid=" + assetid);
|
|
}
|
|
</script>
|
|
</asp:Content>
|
|
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
|
|
<div style="min-width: 400px;">
|
|
<div class="page_title" data-lgid="P_MA_ASSETHISTORY">Asset History</div>
|
|
<div class="search_bar">
|
|
<input type="password" autocomplete="new-password" style="display: none" />
|
|
<span id="span_contractor" style="display: none;">
|
|
<span data-lgid="P_MD_CONTRACTOR_COLON">Contractor:</span>
|
|
<select id="sel_contractor"></select></span>
|
|
<span data-lgid="P_MA_ASSET_COLON">Asset:</span>
|
|
<div class="dropdown" id="div_asset" style="width: 200px"></div>
|
|
<span style="margin-left: 5px;" data-lgid="P_FR_BEGINDATE_COLON">Begin Date: </span>
|
|
<div>
|
|
<input id="startdatetxt" type="date" class="type-date" required min="1900-01-01" style="width: 90px; margin-left: 5px;" value="<%=BeginDate %>" autocomplete="off" />
|
|
</div>
|
|
<span style="margin-left: 5px;" data-lgid="P_FR_ENDDATE_COLON">End Date: </span>
|
|
<div>
|
|
<input id="enddatetxt" type="date" class="type-date" required min="1900-01-01" style="width: 90px; margin-left: 5px;" value="<%=EndDate %>" autocomplete="off" />
|
|
</div>
|
|
<div style="display: none;">
|
|
<input id="searchinputtxt" autocomplete="off" style="width: 100px; margin-left: 5px;" />
|
|
</div>
|
|
<input class="search" type="button" onclick="OnRefresh();" style="margin-left: 10px;" value="Search" data-lgid="P_FR_SEARCH" />
|
|
</div>
|
|
<div class="function_title">
|
|
<span class="sbutton iconrefresh" onclick="OnRefresh();" data-lgid="P_UM_REFRESH">Refresh</span>
|
|
<span id="spExport" class="sbutton iconexport" onclick="OnExport();" data-lgid="P_MR_EXPORTTOEXCEL">Export to Excel</span>
|
|
</div>
|
|
<div class="clear"></div>
|
|
<div id="divwoh" style="overflow: auto;">
|
|
<table id="tbwoh" style="min-width: 1250px; table-layout: fixed;">
|
|
<thead>
|
|
<tr>
|
|
<th style="width: 150px;" data-lgid="P_WO_HIS_DATETIMESTAMP">Date/Time Stamp</th>
|
|
<th style="width: 80px;" data-lgid="P_WO_HIS_UPDATE">Update</th>
|
|
<th style="width: 120px;" data-lgid="P_WO_HIS_UPDATETYPE">Update Type</th>
|
|
<th style="width: 200px;" data-lgid="P_WO_HIS_BY">By</th>
|
|
<th style="width: 210px;" data-lgid="P_WO_HIS_CATEGORY">Category</th>
|
|
<th style="width: 400px;" data-lgid="P_WO_HIS_DETAIL">Detail</th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="ahislist" style="border: 1px solid #cacaca; overflow: hidden; text-overflow: ellipsis;">
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div id="mask_bg" style="display: none;">
|
|
<div class="loading c-spin"></div>
|
|
</div>
|
|
</div>
|
|
</asp:Content>
|
|
|