javascript - 从剑道网格内的剑道颜色选择器更新服务器

标签 javascript jquery asp.net-mvc kendo-ui kendo-grid

问题

所以我目前正在尝试在 Kendo 网格内实现一个颜色选择器,希望将所选颜色发送到我的 Sql 表。不幸的是,似乎没有到达更新 Controller 。我对 Kendo UI 比较陌生,因此可能会显示一些令人难以置信的愚蠢错误。

问题

我想我的主要问题是:当在网格上单击更新时,如何调用更新方法。本质上,颜色选择器和编辑命令以漂亮的方式显示。我只想知道如何确定单击“更新”时正在调用该方法,因为它没有到达我的 Controller 。请随意询问您是否需要查看更多代码或屏幕截图。

代码

Config.cshtml(网格)

@model IEnumerable<STZN.Models.AGCData.ErrorCode>

@{
    ViewBag.Title = "Config";
}


@section HeadContent{
<script src="~/Scripts/common.js"></script>
    <script>

        $(document).ready(function () {
           $("#grid").kendoGrid({
               editable: "inline",
               selectable: "row",
               dataSource: {
                   schema: {
                       model: {
                           id: "error_code",
                           fields: {
                               color: { type: 'string' }
                           }
                       }
                   },

                   transport: {

                       read: {
                           type: "POST",
                           dataType: "json",
                           url: "@Url.Action("ErrorCodes")"
                       },
                       update: {
                           type: "POST" ,
                           dataType: "json",
                           url: "@Url.Action("UpdateErrorCodes")",

                       }
                   }
               },

               columns: [
                   { command : [ "edit" ] },
                   {
                       field: "error_code", title: "Error Code",

                   },
                   {
                       field: "error_description", title: "Error Description"
                   },
                   {
                       field: "color",
                       width: 150,
                       title: "Color",
                       template: function (dataItem) {
                           return "<div style = 'background-color: " + dataItem.color + ";'&nbsp;</div>"
                       },
                       editor: function (container, options) {
                           var input = $("<input/>");
                           input.attr("color",options.field);
                           input.appendTo(container);
                           input.kendoColorPicker({
                               value: options.model.color,
                               buttons: false
                           })
                       },

                   }

               ]
           });
       });


    </script>
}

更新 Controller

public JsonResult UpdateErrorCodes(ErrorCode model)
        {


            using (var db = new AgcDBEntities())
            {
                db.Entry(model).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();

                db.Configuration.ProxyCreationEnabled = false;
                var data = db.ErrorCodes.Where(d => d.error_code == model.error_code).Select(x => new
                {
                    error_code = x.error_code,
                    description = x.error_description,
                    color = x.color,
                });

                return new JsonResult()
                {
                    JsonRequestBehavior = System.Web.Mvc.JsonRequestBehavior.AllowGet,
                };
            }
        }

最佳答案

实际上,我通过在“颜色”字段中向编辑器功能添加额外的输入属性来解决我的问题。它看起来像这样:

input.attr("data-bind","value:" + options.field);

仍然存在一些问题(与修复/服务器更新无关),但就更新到服务器而言,它按预期工作。

关于javascript - 从剑道网格内的剑道颜色选择器更新服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44724493/

相关文章:

javascript - 让 cufon 在 IE7 和 IE8 中工作 - 我已经根据文档完成了所有工作?

asp.net-mvc - 如何在没有模型的情况下为@Html.TextBox() 添加验证器

c# - 包罗万象的 Controller ,MVC

javascript - 访问 iFrame 中的数据属性?

javascript - Jquery/Javascript | HTML 表 Sum 上一个 TD 中同级 TD 的总记录

javascript - 如何实现加载指令AngularJS

css - 使用 ViewBag for Navigation 在 <li> 中动态插入类,具有子级依赖性(MVC)

javascript - 如何拆分具有多个符号的字符串

c# - 如何获取Listbox控件的选中项?

javascript - 在 JQuery 中使图像遵循圆形路径的最佳方法?