关联数据和formatter问题-easyui+微型持久化工具

控制器

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Http;

using System.Web.Mvc;

using NXT.Core;

using NXT.Models;



using System.Web.Script.Serialization;



namespace NXT.Areas.Anm.Controllers

{

    public class RemoveController : Controller

    {

        public ActionResult Index()

        {

            var code = new sys_codeService();

            var model = new

            {

                

                dataSource = new

                {



                    //penname = code.GetValueTextListByType("MeasureUnit")

                //    penID = new bas_penService().GetDynamicList(ParamQuery.Instance()

                //.Select("bas_pen_id as value,pen_name as text")),

                    penID = new bas_penService().GetDynamicList(ParamQuery.Instance()

               .Select("bas_pen_id as value,pen_name as text")),

                    //unit = pens.GetModelList(""),

                    //unit = code.GetValueTextListByType("MeasureUnit")

                },

                urls = new{

                    query = "/api/Anm/Remove",

                    newkey = "/api/Anm/Remove/getnewkey",

                    edit = "/api/Anm/Remove/edit" 

                },

                resx = new{

                    noneSelect = "请先选择一条数据!",

                    editSuccess = "保存成功!",

                    auditSuccess = "单据已审核!"

                },

                form = new{

                    RFID_id = "" ,

                    remove_reason = "" ,

                    remove_time = "" ,

                    penid = "" ,

                    pen_name = "" ,

                    removenote = "" ,

                    bas_pen_id = ""

                },

                defaultRow = new {

                   

                },

                setting = new{

                    idField = "remove_id",

                    postListFields = new string[] { "remove_id" ,"RFID_id" ,"remove_reason" ,"remove_time" ,"penid" ,"pen_name" ,"removenote" }

                }

            };



            return View(model);

        }

    }



    public class RemoveApiController : ApiController

    {

        public dynamic Get(RequestWrapper query)

        {

            query.LoadSettingXmlString(@"

<settings defaultOrderBy='remove_id'>

    <select>*</select>

    <from>bus_remove</from>

    <where defaultForAll='true' defaultCp='equal' defaultIgnoreEmpty='true' >

        <field name='RFID_id'        cp='equal'></field>   

        <field name='remove_reason'        cp='equal'></field>   

        <field name='remove_time'        cp='equal'></field>   

        <field name='penid'        cp='equal'></field>   

        <field name='pen_name'        cp='equal'></field>   

        <field name='removenote'        cp='equal'></field>   

        <field name='remove_id'        cp='equal'></field>  

    </where>

</settings>");

            var service = new bus_removeService();

            var pQuery = query.ToParamQuery();

            var result = service.GetDynamicListWithPaging(pQuery);

            return result;

        }



        public string GetNewKey()

        {

            return new bus_removeService().GetNewKey("remove_id", "maxplus").PadLeft(6, '0'); ;

        }



        [System.Web.Http.HttpPost]

        public void Edit(dynamic data)

        {

            var listWrapper = RequestWrapper.Instance().LoadSettingXmlString(@"

<settings>

    <table>

        bus_remove

    </table>

    <where>

        <field name='remove_id' cp='equal'></field>

    </where>

</settings>");

            var service = new bus_removeService();

            var result = service.Edit(null, listWrapper, data);

        }

    }

}

视图层

@{

    ViewBag.Title = "Remove";

    Layout = "~/Views/Shared/_Layout.cshtml";

    var Cols = new NXT.Models.sys_roleMenuColumnMapService().GetCurrentUserMenuColumns();

}



 

@section scripts{

@*<script src="~/Areas/Mms/ViewModels/mms.com.js"></script>*@

<script src="/Content/js/viewModel/com.viewModel.searchEdit.js"></script>

<script type="text/javascript">

    using(['datebox']);

    using(['combobox']);

    var data = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model));

    var viewModel = function(){         

        com.viewModel.searchEdit.apply(this,arguments);       

        com.formaterpenID = utils.fnValueToText(data.dataSource.penID);      

    }

    ko.bindingViewModel(new viewModel(data));//new一个viewModel,并把data传进去

   



  

  

</script>

}







@Html.RenderToolbar()



<div class="container_12" style="position:relative;">

    <div class="grid_1 lbl">RFID</div>

    <div class="grid_2 val"><input type="text" data-bind="value:form.RFID_id" class="z-txt " /></div>

    <div class="grid_1 lbl">变动原因</div>

    <div class="grid_2 val"><input type="text" data-bind="value:form.remove_reason" class="z-txt " /></div>

    <div class="grid_1 lbl">变动时间</div>

    <div class="grid_2 val"><input type="text" data-bind="dateboxValue:form.remove_time" class="z-txt easyui-datebox" /></div>

    

    <div class="clear"></div>

    

    <div class="grid_1 lbl">圈ID</div>

    <div class="grid_2 val"><input type="text" data-bind="value:form.penid" class="z-txt " /></div>

    <div class="grid_1 lbl">圈名称</div>

    <div class="grid_2 val"><input type="text" data-bind="datasource:dataSource.penID,comboboxValue:form.penID" class="z-txt easyui-combobox" /></div>

    <div class="grid_1 lbl">备注</div>

    <div class="grid_2 val"><input type="text" data-bind="value:form.removenote" class="z-txt " /></div>



    <div class="clear"></div>



    <div class="prefix_9" style="position:absolute;top:5px;height:0;">  

        <a id="a_search" href="#" class="buttonHuge button-blue" data-bind="click:searchClick" style="margin:0 15px;">查询</a> 

        <a id="a_reset"  href="#" class="buttonHuge button-blue" data-bind="click:clearClick">清空</a>

    </div>

</div>



<table data-bind="datagrid:grid" style="display:none">

    <thead>  

        <tr>  

            <th field="remove_id"    hidden="true"    sortable="true"    align="left"    width="80" editor="text" >remove_id</th>

            <th field="RFID_id"        sortable="true"    align="left"    width="80" editor="text" >RFID</th>

            <th field="remove_reason"        sortable="true"    align="left"    width="80" editor="{type:'combobox',options:{}}" >变动原因</th>

            <th field="remove_time"        sortable="true"    align="left"    width="80" editor="datebox" formatter="com.formatDate">变动时间</th>

            <th field="pen_name" sortable="true" align="left" width="80">圈ID</th>

            <th field="penid" sortable="true" align="left" width="80" editor="{type:'combobox',options:{data:data.dataSource.penID}}" formatter="com.formaterpenID">圈名称</th>

            <th field="removenote"        sortable="true"    align="left"    width="180" editor="text" >备注</th>

        </tr>                            

    </thead>      

</table> 

 

你可能感兴趣的:(easyui)