ext.net mvc架构 添加删除修改 linq的方式写的 含页面和后端

<%@ Page Language="C#" %>

<!DOCTYPE html>

<html>
<head runat="server">
    <title>客户资料收集</title>
    <link href="/resources/css/examples.css" rel="stylesheet" />
    <script type="text/javascript">
        var ActionFormDestroy = function () {
            if (App.GridPanel1.getStore().getCount() > 0) {
                App.btnInquiry.fireEvent("click");
            }
        };
        //时间控件From-To的实现
        var onKeyUp = function () {
            var me = this,
                v = me.getValue(),
                field;
            if (me.startDateField) {
                field = Ext.getCmp(me.startDateField);
                field.setMaxValue(v);
                me.dateRangeMax = v;
            } else if (me.endDateField) {
                field = Ext.getCmp(me.endDateField);
                field.setMinValue(v);
                me.dateRangeMin = v;
            }
            field.validate();
        };
    </script>
    <script>
        var onSelectionChange = function (grid, selection) {
            var status = App.Status,
                message = '??',
                firstRowIndex,
                firstColumnIndex,
                lastRowIndex,
                lastColumnIndex;

            if (!selection) {
                message = 'No selection';
            } else if (selection.isCells) {
                firstRowIndex = selection.getFirstRowIndex();
                firstColumnIndex = selection.getFirstColumnIndex();
                lastRowIndex = selection.getLastRowIndex();
                lastColumnIndex = selection.getLastColumnIndex();

                message = 'Selected cells: ' + (lastColumnIndex - firstColumnIndex + 1) + 'x' + (lastRowIndex - firstRowIndex + 1) +
                    ' at (' + firstColumnIndex + ',' + firstRowIndex + ')';
            } else if (selection.isRows) {
                message = 'Selected rows: ' + selection.getCount();
            } else if (selection.isColumns) {
                message = 'Selected columns: ' + selection.getCount();
            }

            status.update(message);
        };

        var toggleRowSelect = function (button, pressed) {
            App.SpreadsheetSelectionModel1.setRowSelect(pressed);
        };

        var toggleCellSelect = function (button, pressed) {
            App.SpreadsheetSelectionModel1.setCellSelect(pressed);
        };

        var toggleColumnSelect = function (button, pressed) {
            App.SpreadsheetSelectionModel1.setColumnSelect(pressed);
        };
    </script>

</head>
<body>
    <form runat="server">
        <ext:ResourceManager runat="server" />
        <ext:Viewport runat="server" Layout="fit">
            <Items>
                <%--   <h1>Spreadsheet Selection Model</h1>

        <p>Supported features:</p>

        <ul>
            <li>Single / Range / Multiple individual row selection.</li>
            <li>Single / Range cell selection.</li>
            <li>Column selection by click selecting column headers.</li>
            <li>Select / deselect all by clicking in the top-left, header.</li>
            <li>Adds row number column to enable row selection.</li>
            <li>Selection extensibility using a drag gesture. Configured in this case to be up or down.</li>
            <li>Copy/paste to system clipboard using CTRL+C, CTRL+X and CTRL+V.</li> //EnableColumnHide="false"
        </ul>--%>

                <ext:GridPanel ID="ExcelSave"
                    runat="server"
                    ColumnLines="true"
                    Height="400"
                    Width="775"
                    Title="Forwader资料收集"
                    Frame="true" EmptyText="没有数据">
                    <Store>
                        <ext:Store ID="Store1" runat="server" AutoLoad="false">
                            <Proxy>
                                <ext:AjaxProxy Url="/Forwader/UpdateForwader/GetData/" Json="true" NoCache="true">
                                    <Reader>
                                        <ext:JsonReader RootProperty="data" TotalProperty="count" IDProperty="ID" ModelName="新增行数" />
                                    </Reader>
                                </ext:AjaxProxy>
                            </Proxy>
                            <Model>
                                <ext:Model Name="新增行数" runat="server" IDProperty="ID">
                                    <Fields>
                                        <ext:ModelField Name="ID" />
                                        <ext:ModelField Name="BOOKINGNO" />
                                        <ext:ModelField Name="PLANCONTAINERNOS" />
                                        <ext:ModelField Name="ACTUALACTUALCONTAINERNOS" />
                                        <ext:ModelField Name="FE" />
                                        <ext:ModelField Name="SHIPCOMPANY" />
                                        <ext:ModelField Name="SHIPPERCONSIGNEE" />
                                        <ext:ModelField Name="POD" />
                                        <ext:ModelField Name="FORWADER" />
                                        <ext:ModelField Name="CREATOR" />
                                        <ext:ModelField Name="CREATETIME" />
                                        <ext:ModelField Name="CONTAINERSIZE" />
                                    </Fields>
                                </ext:Model>
                            </Model>
                            <%--  <Reader>
                        <ext:ArrayReader />
                    </Reader>--%>
                        </ext:Store>
                    </Store>
                    <SelectionModel>
                        <ext:SpreadsheetSelectionModel
                            ID="SpreadsheetSelectionModel1"
                            runat="server"
                            ColumnSelect="true"
                            CheckboxSelect="true"
                            PruneRemoved="false"
                            Extensible="Y" />
                    </SelectionModel>
                    <ColumnModel>
                        <Columns>
                            <ext:RowNumbererColumn runat="server" Width="35" />
                            <ext:Column runat="server" Text="ID" DataIndex="ID" Width="100" Hidden="true" />
                            <ext:Column runat="server" Text="BOOKINGNO" DataIndex="BOOKINGNO" Width="150">
                                <Editor>
                                    <ext:TextField runat="server">
                                    </ext:TextField>
                                </Editor>
                            </ext:Column>
                            <ext:Column runat="server" Text="Container Qty" DataIndex="PLANCONTAINERNOS" Width="90">
                                <Editor>
                                    <ext:NumberField runat="server">
                                    </ext:NumberField>
                                </Editor>
                            </ext:Column>
                            <ext:Column runat="server" Text="实际柜数" DataIndex="ACTUALACTUALCONTAINERNOS" Width="70" Hidden="true">
                            </ext:Column>
                            <ext:Column runat="server" Text="SIZE" DataIndex="CONTAINERSIZE" Width="70">
                                <Editor>
                                    <ext:ComboBox runat="server" Editable="false">
                                        <Items>
                                            <ext:ListItem Text="20" Value="20" Mode="Value" />
                                            <ext:ListItem Text="40" Value="40" Mode="Value" />
                                            <ext:ListItem Text="20" Value="20" Mode="Value" />
                                            <ext:ListItem Text="40" Value="40" Mode="Value" />
                                        </Items>
                                    </ext:ComboBox>
                                </Editor>
                            </ext:Column>
                            <%--   <ext:Column runat="server" Text="FE" DataIndex="FE" Width="150" >
                            <Editor>
                                <ext:TextField runat="server">
                                </ext:TextField>
                            </Editor>
                        </ext:Column>--%>
                            <ext:Column runat="server" Text="FE" DataIndex="FE" Width="60" ToolTip="双击选择">
                                <Editor>
                                    <ext:ComboBox runat="server" Editable="false">
                                        <Items>
                                            <ext:ListItem Text="F" Value="F" Mode="Value" />
                                            <ext:ListItem Text="E" Value="E" Mode="Value" />

                                        </Items>
                                    </ext:ComboBox>
                                </Editor>
                            </ext:Column>
                            <ext:Column runat="server" Text="SHIP COMPANY" DataIndex="SHIPCOMPANY" Width="150">
                                <Editor>
                                    <ext:TextField runat="server">
                                    </ext:TextField>
                                </Editor>
                            </ext:Column>
                            <%--  <ext:Column ID="Column1" runat="server" Text="SHIPPERCONSIGNEE" DataIndex="SHIPPERCONSIGNEE" Width="150" >
                               
                            </ext:Column>--%>

                            <ext:Column runat="server" Text="POD" DataIndex="POD" Width="130" ToolTip="双击选择">
                                <Editor>
                                    <ext:ComboBox runat="server" Editable="false">
                                        <Items>
                                            <ext:ListItem Text="HK001" Value="HK001" Mode="Value" />
                                            <ext:ListItem Text="HK002" Value="HK002" Mode="Value" />
                                            <ext:ListItem Text="HK003" Value="HK003" Mode="Value" />
                                            <ext:ListItem Text="HK004" Value="HK004" Mode="Value" />
                                            <ext:ListItem Text="HK005" Value="HK005" Mode="Value" />
                                            <ext:ListItem Text="HK006" Value="HK006" Mode="Value" />
                                            <ext:ListItem Text="HK007" Value="HK007" Mode="Value" />
                                            <ext:ListItem Text="HK008" Value="HK008" Mode="Value" />
                                            <ext:ListItem Text="HK009" Value="HK009" Mode="Value" />
                                            <ext:ListItem Text="HK010" Value="HK010" Mode="Value" />
                                            <ext:ListItem Text="HK011" Value="HK011" Mode="Value" />
                                            <ext:ListItem Text="HK012" Value="HK012" Mode="Value" />
                                            <ext:ListItem Text="HK013" Value="HK013" Mode="Value" />
                                            <ext:ListItem Text="HK014" Value="HK014" Mode="Value" />
                                            <ext:ListItem Text="HK015" Value="HK015" Mode="Value" />
                                            <ext:ListItem Text="HK016" Value="HK016" Mode="Value" />
                                            <ext:ListItem Text="HK017" Value="HK017" Mode="Value" />
                                            <ext:ListItem Text="HK018" Value="HK018" Mode="Value" />
                                            <ext:ListItem Text="HK019" Value="HK019" Mode="Value" />
                                            <ext:ListItem Text="HK020" Value="HK020" Mode="Value" />
                                        </Items>
                                    </ext:ComboBox>
                                </Editor>
                            </ext:Column>
                      <%--      <ext:Column Name="StorageLocation" runat="server" DataIndex="StorageLocation" Width="85" Text="StorageCode" >
                                <Editor>

                                    <ext:ComboBox Name="CODE" runat="server" Flex="3" Margins="0 0 0 6" EmptyText="CODENAME" Editable="false"
                                        AllowBlank="false" DisplayField="CODENAME" ValueField="CODE">
                                        <Store>
                                            <ext:Store  runat="server" AutoLoad="true">

                                                <Proxy>
                                                    <ext:AjaxProxy Url="/Forwader/UpdateForwader/GOCT_FORWARDCODE/" Json="true">
                                                        <Reader>
                                                            <ext:JsonReader RootProperty="data" />
                                                        </Reader>
                                                    </ext:AjaxProxy>
                                                </Proxy>
                                                <Model>
                                                    <ext:Model runat="server">
                                                        <Fields>
                                                            <ext:ModelField Name="CODE" />
                                                            <ext:ModelField Name="CODENAME" />
                                                        </Fields>
                                                    </ext:Model>
                                                </Model>
                                            </ext:Store>
                                        </Store>
                                    </ext:ComboBox>
                                </Editor>
                            </ext:Column>--%>
                            <ext:Column  Name="FORWADER" runat="server" DataIndex="FORWADER" Width="120" Text="StorageCode" ToolTip="双击选择">
                                <Editor>

                                    <ext:ComboBox Name="CODE" runat="server" Flex="3" Margins="0 0 0 6"  Editable="false" 
                                        AllowBlank="false" DisplayField="CODENAME" ValueField="CODE">
                                        <Store>
                                            <ext:Store  runat="server" AutoLoad="true">

                                                <Proxy>
                                                    <ext:AjaxProxy Url="/Forwader/UpdateForwader/GOCT_FORWARDCODE/" Json="true">
                                                        <Reader>
                                                            <ext:JsonReader RootProperty="data" />
                                                        </Reader>
                                                    </ext:AjaxProxy>
                                                </Proxy>
                                                <Model>
                                                    <ext:Model runat="server">
                                                        <Fields>
                                                            <ext:ModelField Name="CODE" />
                                                            <ext:ModelField Name="CODENAME" />
                                                        </Fields>
                                                    </ext:Model>
                                                </Model>
                                            </ext:Store>
                                        </Store>
                                    </ext:ComboBox>
                                </Editor>
                            </ext:Column>
                          <%--  <ext:Column runat="server" Text="StorageCode" DataIndex="FORWADER" Width="150"  ToolTip="双击选择">
                                <Editor>
                                    <ext:ComboBox runat="server" Editable="false" MaxLengthText="2" EmptyText="值不能大于2位">
                                        <Items>
                                            <ext:ListItem Text="创富星期一" Value="Z1" Mode="Value" />
                                            <ext:ListItem Text="创富星期二" Value="Z2" Mode="Value" />
                                            <ext:ListItem Text="创富星期三" Value="Z3" Mode="Value" />
                                            <ext:ListItem Text="创富星期四" Value="Z4" Mode="Value" />
                                            <ext:ListItem Text="创富星期五" Value="Z5" Mode="Value" />
                                            <ext:ListItem Text="创富星期六" Value="Z6" Mode="Value" />
                                            <ext:ListItem Text="创富备用一" Value="Z7" Mode="Value" />
                                            <ext:ListItem Text="创富备用二" Value="Z8" Mode="Value" />
                                        </Items>
                                    </ext:ComboBox>
                                </Editor>
                            </ext:Column>--%>
                            <ext:Column runat="server" Text="CREATOR" DataIndex="CREATOR" Width="100" Disabled="true">                           
                            </ext:Column>
                            <ext:Column runat="server" Text="CREATETIME" DataIndex="CREATETIME" Width="150" Disabled="true">
                                
                            </ext:Column>


                        </Columns>
                    </ColumnModel>
                    <ViewConfig TrackOver="false" />
                    <Tools>
                        <ext:Tool Type="Refresh" ToolTip="Reload Data">
                            <Listeners>
                                <Click Handler=" App.ExcelSave.getStore().reload();"></Click>
                            </Listeners>
                        </ext:Tool>
                    </Tools>
                    <TopBar>
                        <ext:Toolbar runat="server">
                            <Items>

                                <ext:FieldContainer runat="server" LabelStyle="font-weight:bold;padding:0;"
                                    Layout="HBoxLayout">
                                    <FieldDefaults LabelAlign="Top" />
                                    <Items>
                                        <ext:DateField ID="startDate" runat="server" Vtype="daterange" FieldLabel="开始时间"
                                            LabelAlign="Right" AnchorHorizontal="100%" EnableKeyEvents="true" LabelWidth="70" SelectedDate="<%# DateTime.Now %>" AutoDataBind="true" Editable="false"
                                            Width="200" Format="yyyy-MM-dd">
                                            <CustomConfig>
                                                <ext:ConfigItem Name="endDateField" Value="endDate" Mode="Value" />
                                            </CustomConfig>
                                            <Listeners>
                                                <KeyUp Fn="onKeyUp" />
                                            </Listeners>
                                        </ext:DateField>
                                        <ext:DateField ID="endDate" runat="server" Vtype="daterange" FieldLabel="结束时间" AnchorHorizontal="100%" SelectedDate="<%# DateTime.Now %>" AutoDataBind="true" Editable="false"
                                            LabelAlign="Right" EnableKeyEvents="true" LabelWidth="70" Width="200" Format="yyyy-MM-dd">
                                            <CustomConfig>
                                                <ext:ConfigItem Name="startDateField" Value="startDate" Mode="Value" />
                                            </CustomConfig>
                                            <Listeners>
                                                <KeyUp Fn="onKeyUp" />
                                            </Listeners>
                                        </ext:DateField>
                                    </Items>
                                </ext:FieldContainer>
                                <ext:FieldContainer runat="server" LabelStyle="font-weight:bold;padding:0;"
                                    Layout="HBoxLayout">
                                    <FieldDefaults LabelAlign="Top" />
                                    <Items>
                                        <ext:Button runat="server" Text="新增" Icon="Add">
                                            <DirectEvents>
                                                <Click Url="/IT/First/GetNo/">
                                                    <EventMask ShowMask="true">
                                                    </EventMask>
                                                </Click>
                                            </DirectEvents>
                                        </ext:Button>
                                        <ext:ToolbarSeparator />
                                        <ext:Button Text="删除" runat="server" Icon="Decline">
                                            <Listeners>
                                                <Click Handler="var selection = #{ExcelSave}.getView().getSelectionModel().getSelection()[0];
                                                if (selection) {
                                                    #{ExcelSave}.store.remove(selection);
                                                   
                                                }" />
                                            </Listeners>
                                        </ext:Button>
                                        <ext:Button runat="server" Text="删除所有" Icon="Delete" ToolTip="清空后要保存才算删除,可以新增后一起保存">
                                            <Listeners>
                                                <Click Handler="App.ExcelSave.store.removeAll();" />
                                            </Listeners>
                                        </ext:Button>
                                        <ext:TextField ID="BookingNo" FieldLabel="BookingNo" runat="server" LabelWidth="80" Mode="Value"
                                            LabelAlign="Right" Width="225">
                                        </ext:TextField>

                                        <%-- <ext:Button runat="server" Text="刷新" Width="80" Icon="Reload">
                            <Listeners>
                                <Click Handler=" App.ExcelSave.getStore().reload();"></Click>
                            </Listeners>
                        </ext:Button>
                                        --%>
                                        <ext:Button ID="Button4" runat="server" Text="查询" Width="80" Icon="Magnifier">
                                            <Listeners>
                                                <Click Handler="#{ExcelSave}.getStore().load({ params: {BookingNo:#{BookingNo}.getValue(),sDate:#{startDate}.value,eDate:#{endDate}.value} });" />
                                            </Listeners>
                                        </ext:Button>
                                        <ext:ToolbarSeparator />
                                        <ext:Button runat="server" Text="保存" Icon="Disk">
                                            <DirectEvents>
                                                <Click Url="/Forwader/UpdateForwader/SaveData/"
                                                    Success="Ext.net.Notification.show({
                                        iconCls  : 'icon-information',
                                        pinEvent : 'click',
                                        html     : '已经执行!',
                                        title    : '提示'
                                     }); 
                                       App.ExcelSave.getStore().reload(); 
                                       ">
                                                    <Confirmation Title="保存" Message="确认要保存?" ConfirmRequest="true">
                                                    </Confirmation>
                                                    <EventMask ShowMask="true" />
                                                    <ExtraParams>
                                                        <ext:Parameter Name="data" Value="#{ExcelSave}.store.getChangedData()" Mode="Raw"
                                                            Encode="true" />
                                                    </ExtraParams>
                                                </Click>
                                            </DirectEvents>
                                        </ext:Button>
                                    </Items>
                                </ext:FieldContainer>
                                <ext:ToolbarFill runat="server" />
                                <ext:Component ID="Status" runat="server" />

                            </Items>
                        </ext:Toolbar>
                    </TopBar>
                    <Listeners>
                        <SelectionChange Fn="onSelectionChange" />
                    </Listeners>
                    <Plugins>
                        <ext:CellEditing runat="server" ClicksToEdit="2" />
                        <ext:Clipboard runat="server" />
                        <ext:SelectionReplicator runat="server" />

                    </Plugins>

                </ext:GridPanel>

            </Items>
        </ext:Viewport>
    </form>
</body>
</html>

 

后端:

using ePortalPlus.Controllers;
using ePortalPlus.Models;
using Ext.Net;
using Ext.Net.MVC;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web.Mvc;
namespace ePortalPlus.Areas.Forwader.Controllers
{
    public class UpdateForwaderController : BaseDataController
    {
        // GET: Forwader/UpdateForwader
        public ActionResult Index()
        {
            return View();
        }
        [Authorize]
        public ActionResult GetData(string BOOKINGNO, string CREATOR, string sDate, string eDate)
        {
            var UserName = this.getCurrentUserName();
            DateTime startDate;
            DateTime endDate;
            DateTime.TryParse(sDate, out startDate);
            DateTime.TryParse(eDate, out endDate);
            endDate = endDate.AddDays(1).AddSeconds(-1);

            var UserType = ePortalPlus.User.Where(x => x.Name == UserName).Select(x => x.Type).FirstOrDefault();
            var data = Catos.GOCT_FORWARDER_TRANSFORM.Where(x => (string.IsNullOrEmpty(BOOKINGNO) ? true : x.BOOKINGNO.Contains(BOOKINGNO))
                 && (UserType == "公司内部" ? true : x.CREATOR == UserName)
                 && (x.CREATETIME >= startDate && x.CREATETIME <= endDate)
                ).Select(x => new
                {
                    x.ID,
                    x.BOOKINGNO,
                    x.PLANCONTAINERNOS,
                    x.CONTAINERSIZE,
                    x.ACTUALACTUALCONTAINERNOS,
                    x.FE,
                    x.SHIPCOMPANY,
                    x.SHIPPERCONSIGNEE,
                    x.POD,
                    x.FORWADER,
                    x.CREATOR,
                    x.CREATETIME

                });
            return this.Store(data);
        }
        [Authorize]
        public ActionResult GOCT_FORWARDCODE()
        {
            var UserName = this.getCurrentUserAccount();
            var UserType = ePortalPlus.User.Where(x => x.Account == UserName).Select(x => x.Type).FirstOrDefault();
            var query = from t in Catos.GOCT_FORWARDCODE.Where(x => UserType == "公司内部" ? true : x.CODETYPE == UserName)
                        select new
                        {
                            t.CODE,
                            t.CODENAME
                        };
            query = query.OrderBy(x => x.CODE);
            return this.Store(query);
        }
        [Authorize]
        public ActionResult SaveData(StoreDataHandler handler)
        {
            var UserName = this.getCurrentUserName();
            var LoginName = this.getCurrentUserAccount();


            if (handler.JsonData != "{}")
            {
                ChangeRecords<GOCT_FORWARDER_TRANSFORM> EGOCT_FORWARDER_TRANSFORM = handler.BatchObjectData<GOCT_FORWARDER_TRANSFORM>();
                bool isTrue = false;
                foreach (GOCT_FORWARDER_TRANSFORM created in EGOCT_FORWARDER_TRANSFORM.Created)
                {
                    created.ID = Guid.NewGuid().ToString();
                    created.SHIPCOMPANY = this.getCurrentUserAccount();
                    created.CREATETIME = DateTime.Now;
                    created.CREATOR = UserName;
                    created.ACTUALACTUALCONTAINERNOS = 0;
                    // created.COMPANY_NAME = COMPANY_NAME != null ? COMPANY_NAME.CompanyName : "空";
                    Catos.GOCT_FORWARDER_TRANSFORM.Add(created);
                    isTrue = true;
                    Catos.SaveChanges();
                }
                foreach (GOCT_FORWARDER_TRANSFORM updated in EGOCT_FORWARDER_TRANSFORM.Updated)
                {

                    var item = Catos.GOCT_FORWARDER_TRANSFORM.Where(x => x.ID == updated.ID).FirstOrDefault();
                    if (item != null)
                    {
                        item.BOOKINGNO = updated.BOOKINGNO;
                        item.PLANCONTAINERNOS = updated.PLANCONTAINERNOS;
                        item.FE = updated.FE;
                        item.SHIPCOMPANY = updated.SHIPCOMPANY;
                        item.SHIPPERCONSIGNEE = updated.SHIPPERCONSIGNEE;
                        item.POD = updated.POD;
                        item.FORWADER = updated.FORWADER;
                        item.CREATOR = updated.CREATOR;
                        item.CONTAINERSIZE = updated.CONTAINERSIZE;
                        isTrue = true;
                    }
                }
                foreach (GOCT_FORWARDER_TRANSFORM deleted in EGOCT_FORWARDER_TRANSFORM.Deleted)
                {
                    var query = Catos.GOCT_FORWARDER_TRANSFORM.Where(x => x.ID == deleted.ID).FirstOrDefault();
                    if (query != null)
                    {
                        Catos.GOCT_FORWARDER_TRANSFORM.Remove(query);
                    }
                    isTrue = true;
                }
                if (isTrue)
                    Catos.SaveChanges();
            }

            return this.Direct();
        }
}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值