Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MVC4中的通用网格

MVC4中的通用网格
EN

Stack Overflow用户
提问于 2014-12-09 15:53:44
回答 2查看 682关注 0票数 0

我的应用程序中有五页是使用ASP.Net MVC4.0使用.aspx引擎创建的。我必须在所有五页中使用Kendo Grid。但我希望避免在五页内复制Kendo网格代码。因为在未来可能有10-15页或更多的将被添加。因此,与其重复代码,还需要创建一个通用的Kendo模板。ie,我应该只创建一个部分类,但下面的详细信息将更改为五个不同的页面。

  1. 泛型网格应该能够绑定到不同的模型。所有五页的模型更改( Ex: ProductModel、SalesModel、InvoiceModel等)
  2. 每个模型的列数不同( Ex: ProductModel (5列)、SalesModel (4列)、InvoiceModel (3列))
  3. 在每一页中,有些列是可排序的,有些列是不可排序的。我应该能具体说明。
  4. 单击“编辑”和“删除”按钮时,应根据页面填充不同的对话框,并传递不同的参数( Ex:单击ProductModel的“编辑”按钮时,ProductCode应作为参数传递,“编辑产品”对话框应显示,其他页面也应如此)
  5. 在每个页面中,当用户单击分页和排序按钮时,应该维护并传递这些参数( Ex: search参数也会因每个页面而异)。在中,我应该能够为不同的页面传递不同数量和类型的参数。
  6. 对于不同的页面,编辑和删除函数名将有所不同。(例如:产品页将有编辑函数名为EditProduct,类似于其他页面EditInvoice等)

通过考虑上述需求,是否有可能创建一个通用的Kendo网格。如果是这样的话,您可以帮助使用不同的技术/指南/示例代码片段/项目。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-11 03:24:18

让您的定制网格助手像这样。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    public static Kendo.Mvc.UI.Fluent.GridBuilder<T>
    GridEx<T>(this HtmlHelper helper
               , <other parameters that you like e.g. IList for column and field definition>
             ) where T : class
    {
        return helper.Kendo().Grid<T>()
            .Name(<your parameter>)
            .DataSource(dataSource => dataSource
            .Ajax()
            .Model(
                model =>
                {
                    model.Id("CustomerID");
                    // optional foreach
                }
        )
        // param1 or string controllerName= helper.ViewBag.controllerName
        .Create(create => create.Action("_Create", controllerName)) 
        .Read(read => read.Action("_Read", controllerName))
        .Update(update => update.Action("_Update", controllerName))
        .Destroy(destroy => destroy.Action("_Delete", controllerName))
        )
        .Columns(columns =>
        {
            // you can also access helper.ViewBag to get extra data
            foreach (var col in new[] { "CustomerID", "CustomerName" })
            {
                columns.Bound(col);
            }
            columns.Command(commands =>
            {
                commands.Edit();
                commands.Destroy();
            }).Title("Commands").Width(200);
        })
        .ToolBar(toolBar => toolBar.Create())
        .Editable(editable => editable.Mode(GridEditMode.InLine))
        .Sortable();
    }

在视图中使用此助手作为@( Html.GridEx<CustomerViewModel>().Pageable() )

对于更多的定制,您可以看到这两个链接以及1 & 2

票数 2
EN

Stack Overflow用户

发布于 2014-12-10 12:10:53

从概念上讲,这是可能的。想到的一个想法是编写您自己的Helper类,以便根据上述需求返回一个新的Kendo。不过,在我看来,使用JavaScript实现比使用ASP.NET MVC包装要容易得多。

更新

我不会假装我对MVC包装器的理解足以提供一个代码示例,但是,我确实更了解JavaScript实现。

HTML

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<body>
  <div id="grid1"></div>
  <br/>
  <div id="grid2"></div>
</body>

JavaScript

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(function() {
  'use strict';

  var peopleData = [
    { name: 'Bob', age: 37, gender: 'M' },
    { name: 'Sue', age: 26, gender: 'F' },
    { name: 'Joe', age: 42, gender: 'M' }
  ];
  var peopleCols = [
    { field: 'name', title: 'Name', template: '<em>#=name#</em>' },
    { field: 'age', title: 'Age' },
    { field: 'gender', title: 'Gender' }
  ];
  var peopleOptions = {
    dataSource: peopleData,
    columns: peopleCols,
    selectable: 'row'
  };

  var officeData = [
    { dept: 'Human Resoures', office: '123' },
    { dept: 'Accounting', office: '321' },
    { dept: 'Legal', office: '231' }
  ];
  var officeCols = [
    { field: 'dept', title: 'Dept.', template: '<strong>#=dept#</strong>' },
    { field: 'office', title: 'Office#' }
  ];
  var officeOptions = {
    dataSource: officeData,
    columns: officeCols,
    sortable: true
  };

  var grid1 = createGrid('#grid1', peopleOptions),
      grid2 = createGrid('#grid2', officeOptions);

  // you can then use these vars to bind additional events or access its API
  grid1.removeRow('tr:eq(1)');

  function createGrid(selector, options) {
    return $(selector).kendoGrid(options).data('kendoGrid');
  }
})();

不过,这个概念是一样的。定义接受网格选项的函数,根据这些选项创建网格,并返回对网格的引用。下面是上面代码的工作JSBin实例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27391069

复制
相关文章
Kong发布新项目Kuma 通用的服务网格
Kong 发布了新的开源项目 Kuma,一个通用的现代服务网格控制平面。Kuma 基于 Envoy 构建,Envoy 是一个为云原生应用设计的强大的代理软件。Envoy 是业内最领先的边车代理;而随着监控、安全和可靠性对大规模微服务应用变得更加重要,服务网格也在成为云原生生态系统的重要组成部分。
Debian中国
2020/01/21
1K0
14.普通用户、网格长、网格员,操作数据(1)后端部分
1.在后端NewCenter 1.apps/user_operations/views.py中新建增删查:楼、单元、住户、用户的类: from django.shortcuts import render,HttpResponse from rest_framework.views import APIView,Response from users.models import PianQu,UserProfile,UserToZhuHu,LouMing,DanYuan,ZhuHu from users.s
玩蛇的胖纸
2020/07/03
4560
WebSocket在ASP.NET MVC4中的简单实现
WebSocket 规范的目标是在浏览器中实现和服务器端双向通信。双向通信可以拓展浏览器上的应用类型,例如实时的数据推送、游戏、聊天等。有了WebSocket,我们就可以通过持久的浏览器和服务器的连接实现实时的数据通信,再也不用傻傻地使用连绵不绝的请求和常轮询的机制了,费时费力,当然WebSocket也不是完美的,当然,WebSocket还需要浏览器的支持,目前IE的版本必须在10以上才支持WebSocket,Chrome Safari的最新版本当然也都支持。本节简单介绍一个在服务器端和浏览器端实现WebS
小白哥哥
2018/03/07
2.6K0
WebSocket在ASP.NET MVC4中的简单实现
MVC3和MVC4中CRUD操作
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116252.html原文链接:https://javaforall.cn
全栈程序员站长
2022/01/24
5080
17.普通用户、网格长、网格员,操作数据(4)newapp/components/wgz.vue
1.在newapp/components/wgz.vue中: <template> <view> <view class="cu-bar bg-white solid-bottom"> <view class="action"> <text class="cuIcon-title text-orange"></text> {{data3.pq.name}} </view>
玩蛇的胖纸
2020/07/03
3650
15.普通用户、网格长、网格员,操作数据(2)newapp/pages/center/center.vue
1.newapp/pages/center/center.vue 1.在newapp/components新建三个组件:putong.vue,wgy.vue,wgz.vue 2.在newapp/pages/center/center.vue中: <template> <view class="content"> <!-- 普通用户 --> <view class="putong" v-if="flag1"> <putong :data1='da
玩蛇的胖纸
2020/07/03
3990
气象业务中的网格化数据
今天聊聊我们气象业务中比较关键的数据,那就是网格化气象数据,这个网格化数据既包含主客观的网格预报,也包含融合后的网格化实况。应用在具体的气象服务中,也经常踩到一些坑。
用户1247399
2020/08/28
2.7K0
从服务网格看,如何做好通用的网络性能优化?
本文作者网易数帆云网络数据面负责人汪翰林,在工作中从事服务网格的网络数据面性能优化,发现其中的网络性能优化的原理具有相通性。本文对通用的网络性能优化方法做出了总结,包括服务网格及网络性能优化分析、网络性能优化技术介绍、网络性能优化思路三个方面,并列举了实际案例进行进一步诠释,供大家在实际做性能优化时参考。
深度学习与Python
2023/10/08
5600
从服务网格看,如何做好通用的网络性能优化?
16.普通用户、网格长、网格员,操作数据(3)newapp/components/putong.vue
1.在newapp/components/putong.vue中: <template> <view class="putong"> <view class="padding-xl radius shadow-warp bg-cyan margin-top"> <view class="v-header"> <view class="pic"> <image :src="data1.dat
玩蛇的胖纸
2020/07/03
3250
18.普通用户、网格长、网格员,操作数据(5)newapp/components/wgy.vue
1.在newapp/components/wgy.vue中: <template> <view> <scroll-view scroll-x class="bg-cyan na
玩蛇的胖纸
2020/07/03
5770
Numpy中的通用函数
NumPy数组的计算:通用函数缓慢的循环通用函数介绍探索Numpy的通用函数高级通用函数的特性聚合:最小值、 最大值和其他值数组值求和最大值和最小值其他聚合函数
用户3577892
2020/06/12
1.9K0
服务网格云计算中的应用 都有哪些服务网格产品?
许多熟悉互联网应用的人对于服务网格并不陌生,随着云计算技术的兴起,服务网格云计算也存在着许许多多的关系。服务网格正是基于云计算以及云产品基础当中的一种动态设置。大家都知道大型的软件应用当中的流量把控是非常困难的,而服务网格就是起到一个协调流量的作用,现在来看一看服务网格云计算中的应用。
用户8715145
2022/03/18
1.4K0
Spring MVC4 @RequestMapping
查看RequestMapping源码会发现@Target({ElementType.METHOD, ElementType.TYPE})说明RequestMapping可以用于方法以及类声明上,在类上注明RequestMapping后,访问类中方法时需加上类的RequestMapping地址。例如
三产
2021/01/13
2390
Flutter 中 GridView网格列表组件的使用
当数据量很大的时候用矩阵方式排列比较清晰,此时我们可以用网格列表组件 GridView 实现布局。
越陌度阡
2020/12/22
3.5K0
Flutter 中 GridView网格列表组件的使用
Flutter中GridView网格列表组件的使用
当数据量很大的时候用矩阵方式排列比较清晰,此时我们可以用网格列表组件 GridView 实现布局。
越陌度阡
2022/05/06
3.5K0
Flutter中GridView网格列表组件的使用
CSS 中的网格(grid)布局,是什么?
网格布局就是把页面拆分成很多小格子,用于对齐和摆放元素。有三个重要的属性:行(row)、列(column)、沟槽(gutter,表示行列的间隙)。
Learn-anything.cn
2021/12/10
3.1K0
分布式内存中网格中的聚合
今天,我们看到越来越多的应用程序不再构建在关系数据库上,而是建立在分布式环境上。发生这种情况是因为它们需要可扩展性和高可用性,而且还需要能够提供高吞吐量和低延迟,这是旧版关系数据库无法实现的。如今,分布式环境和内存数据网格比几年前更先进,但是实现起来也比关系数据库更加复杂。
nnynn
2018/01/12
1.6K0
分布式内存网格中的聚合查询
本文介绍了分布式内存网格中的聚合查询,探讨了分布式数据网格中聚合查询的复杂性,并提出了相应的解决方案。
hldh214
2018/01/05
2.2K0
点击加载更多

相似问题

MVC4中的多线网格

11

网格中数值的通用样式

10

在mvc4中创建通用mvc视图

40

WebForm在MVC4中的网格视图?

11

MVC4中的Kendo网格单元着色

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文