/
ivan
/
ModMas
Обзор
Документация
Войти
/
ivan
/
ModMas
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ModuleMaster/usercontrols/edgrid.ascx
225 строк
8 KB
i.krivokon
Initial commit
13 мар 2026, 13:49
13 мар 2026, 13:49
00d9fb6
Код
Авторство
О чём код?
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="edGrid.ascx.vb" Inherits="UserControls_edGrid" %> <%--<script src="../Scripts/jquery-1.9.1.min.js"></script>--%> <%--<script src="../Scripts/jquery-ui-1.10.4.min.js"></script>--%> <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server"> <Services> <asp:ServiceReference Path="~/Services/edGrid.svc" /> </Services> <Scripts> <asp:ScriptReference Path="~/Scripts/jquery-1.9.1.min.js" /> </Scripts> </asp:ScriptManagerProxy> <style type ="text/css"> .red{ background-color: #f66363; } .green { background-color: #61c661; } .blue { background-color: #5baaef; } </style> <div id="gridDiv"> <asp:GridView ID="grid" runat="server" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Vertical" ShowFooter="True"> <AlternatingRowStyle BackColor="White" /> <FooterStyle BackColor="#CCCC99" /> <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" /> <RowStyle BackColor="#F7F7DE" /> <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" /> <SortedAscendingCellStyle BackColor="#FBFBF2" /> <SortedAscendingHeaderStyle BackColor="#848384" /> <SortedDescendingCellStyle BackColor="#EAEAD3" /> <SortedDescendingHeaderStyle BackColor="#575357" /> </asp:GridView> </div> <script type="text/javascript"> var cell; var savingCell; var txt; var value; var srv = new Services.edGrid(); var category = []; $(document).ready(function () { countTotals(); }); $(document).keyup(function (e) { if (e.keyCode == 27) { if (cell != null) { cell.text(txt); changeStatus(cell, ""); cell = null; countTotals(); } } }); $(".click").dblclick(function () { if ($(this).attr("class").indexOf("noclick") < 0) { //Remove selectiion from previous field if ((cell != null)) { SaveData(); }; cell = $(this); //txt = $(this).text(); //value = $(this).text(); changeStatus(cell, "EDIT"); cell.html(getControl(cell)); //console.log(":" + value); if ($("#foo").attr("type") == "checkbox") { $("#foo").val($("#foo").is(':checked')); } else { $("#foo").val(value); }; $("#foo").focus(); bindSubmit("#foo"); }; }); function countTotals() { return true; $(".click").each(function () { var key = $(this).attr("field"); if (jQuery.inArray(key, category) != -1) { if ($.isNumeric($(this).text())) { $("body").data(key, $("body").data(key) + parseInt($(this).text())); }; } else { category.push(key); if ($.isNumeric($(this).text())) { $("body").data(key, parseInt($(this).text())); } else { $("body").data(key, 0); }; }; }); $.each(category, function (index, key) { $("td[field|='Total|" + key + "']").text($("body").data(key)); $("body").data(key, 0); }); category = []; }; function getControl(_cell) { var _type = _cell.attr("type"); var _value = ""; switch (_type) { case "TEXT": value = _cell.text(); txt = _cell.text(); return "<input name=\"foo\" type=\"text\" id=\"foo\">"; case "TEXTBOX": value = _cell.html().replace(/<br>/g, "\n"); txt = _cell.html(); return "<textarea name=\"foo\" id=\"foo\" rows=\"2\" cols=\"15\">" + _value + "</textarea>"; case "NUMBER": value = _cell.text(); txt = _cell.text(); return "<input name=\"foo\" type=\"number\" id=\"foo\">"; case "DATE": value = _cell.text(); txt = _cell.text(); return "<input name=\"foo\" type=\"date\" id=\"foo\">"; case "CHECKBOX": value = _cell.children(0).is(':checked'); txt = _cell.children(0).val(); return "<input id=\"foo\" type=\"checkbox\" name=\"foo\" checked=\"" + value + "\">"; default: value = _cell.text(); txt = _cell.text(); srv.GetControl(cell.attr("tid"), cell.attr("field"), cell.attr("type"), value, getControlSuccess, getControlFail); return "" }; }; function changeStatus(control, status) { switch (status) { case "EDIT": control.removeClass("green"); control.removeClass("red"); control.addClass("blue"); control.addClass("noclick"); control.removeClass("click"); break; case "CHANGED": control.addClass("green"); control.removeClass("red"); control.removeClass("blue"); break; case "ERROR": control.removeClass("green"); control.addClass("red"); control.removeClass("blue"); break; default: control.removeClass("green"); control.removeClass("red"); control.removeClass("blue"); control.removeClass("noclick"); control.addClass("click"); }; }; function bindSubmit(controlName) { $(controlName).bind('keydown', function (e) { if ((e.which == 13) && (e.shiftKey == false)) { e.preventDefault(); SaveData(); return false; } }); $(controlName).bind('change', function (e) { if (cell != null) { if ($(this).attr("type") == "checkbox") { $(this).val($(this).is(':checked')); }; //console.log($(this).is(':checked')); changeStatus(cell, "CHANGED"); } }); }; function SaveData() { savingCell = cell; //console.log($("#foo").val()); srv.SaveData(cell.attr("tid"), cell.attr("rowid"), cell.attr("field"), cell.attr("type"), $("#foo").val(), SaveDataSuccess, SaveDataFail); changeStatus(cell, ""); cell.html("<img src='../images/uploading.gif' />"); cell = null; }; function getControlSuccess(result) { if (cell != null) { cell.html(result) changeStatus(cell, "EDIT"); $("#foo").focus(); bindSubmit("#foo"); } }; function getControlFail(result) { alert("Can't connect to server. Try to refresh the page."); }; function SaveDataSuccess(result) { savingCell.html(result); changeStatus(savingCell,""); savingCell = null; countTotals(); }; function SaveDataFail(result) { savingCell.text(result); savingCell.html(result); changeStatus(savingCell, "ERROR"); cellsavingCell = null; }; </script>