telerik(kendoUI)常用控件使用

最近接触了kendoUI的使用,在项目中边学习边使用,为了以后可以再用到便小记一下(这里用的都是针对asp.net MVC,其实用我觉得用js的方法更灵活,不过MVC更简洁)

1.最常用的估计就是grid的使用了。从项目中找个比较有代表性的。

@(Html.Kendo().Grid<CustomsProjectEx.Models.FL_File>
            ().Name("DocumentGrid")
        .Columns(columns =>
        {
            columns.Bound(c => c.字段名).Title("文件名称").HeaderHtmlAttributes(new { style = "text-align:center" }).HtmlAttributes(new { style = "text-align:center" });
            columns.Bound(c => c.字段名).Title("文档类型").HeaderHtmlAttributes(new { style = "text-align:center" }).HtmlAttributes(new { style = "text-align:center" });
            columns.Bound(c => c.字段名).Title("文件版本").Format("{0:0.00}").HeaderHtmlAttributes(new { style = "text-align:center" }).HtmlAttributes(new { style = "text-align:center" });
            columns.Bound(c => c.字段名).Title("发布时间").Format("{0:yyyy-MM-dd}").HeaderHtmlAttributes(new { style = "text-align:center" }).HtmlAttributes(new { style = "text-align:center" });
            columns.Bound("").ClientTemplate("#=load(ID)#").Title("文档下载").HeaderHtmlAttributes(new { style = "text-align:center" }).HtmlAttributes(new { style = "text-align:center" });
            columns.Bound("").ClientTemplate("#=BrowseHistory(ID)#").Title("查看历史版本").HeaderHtmlAttributes(new { style = "text-align:center" }).HtmlAttributes(new { style = "text-align:center" });

            columns.Bound("").ClientTemplate("#=AddVersion(ID)#").Title("新增").HeaderHtmlAttributes(new { style = "text-align:center" }).HtmlAttributes(new { style = "text-align:center" });
                columns.Command(command => command.Custom("Show").Click("edit").Text("修改").HtmlAttributes(new { style = "height:30px; width:50px; valign:middle;" })).Width(80);
             columns.Command(command => command.Destroy().Text("删除")).Width(90);

        })

        .ToolBar(c =>
        {
            if (ViewBag.IsSoftwareAdmin == "true")//加角色必须是软件管理员或者是系统管理员才能处理
            { c.Custom().Name("新增").HtmlAttributes(new { @onClick = "add(); return false;" }); }
        })
        .Editable(e => { e.DisplayDeleteConfirmation("确定要删除?"); })
        .Sortable(sort => sort.Enabled(false))
        .Pageable(pageable => pageable
        .Refresh(true)
        .PageSizes(true)
        .ButtonCount(5))
        .DataSource(dataSource => dataSource
        .Ajax()
        .Read(read => read.Action("<span style="font-family: Arial, Helvetica, sans-serif;">方法名(也就是action名)</span><span style="font-family: Arial, Helvetica, sans-serif;">", "这里放controller的名字").Data("这里放一个js放法的名字用来为grid查询传参数用的"))</span>
        .Destroy(update => update.Action("方法名(也就是action名)", "这里放controller的名字")).Model(model => model.Id(m => m.ID))
        )
)

下面说说一些用法,为开发找这里的用法节省时间

(1).Editable中的 .Editable(e => { e.DisplayDeleteConfirmation("确定要删除?"); }),如果应用了自带的删除方法,删除的时候提示的是英文,在这里修改后改为中文提示

(2).ClientTemplate("#=load(ID)#")自定义模板。有时候想定义自己的表示样式,例如想给这个列变为超链接。

使用方法,可以直接在模板里拼,但是我习惯只写个方法名,然后在js中定义方法:

 //文档下载列项格式化
    function load(id) {
        return "<a href='javascript:void(0)' onclick='loadDocument(\"" + id + "\")' >下载</a>";
    }

(3) columns.Command(command => command.Custom("Show").Click("edit").Text("修改").HtmlAttributes(new { style = "height:30px; width:50px; valign:middle;" })).Width(80);

对于我们习惯使用js方法借助ajax来实现自己的一些处理,那么我们就可以自定义按钮并设定方法。例如这里使用了edit方法,

(4)Format("{0:yyyy-MM-dd}")  定义类字段时间显示格式,没什么好说的,就像我们使用easyui那样,只是把easyui中farmat中的一部分显示功能都放到模板中去了。这里的Format我没怎么用,只是简单的格式化。

(5)如果使用了自带的增删改方法,那么可以再datasource中定义这些方法,例如删除功能:.Destroy(update => update.Action("delete", "Document")).Model(model => model.Id(m => m.ID))

上面有解释,这里的update.Action对应去找那个controller与action ,也可以使用update.Url()直接写action的整个路径。后面的Model中传参数。

另外如果向后台传参数后可以用kendoui自己的对象[DataSourceRequest]DataSourceRequest request来接收参数。

接下来简单说说其他控件的用法

(2)button

@(Html.Kendo().Button().Name("btnSearch").Content("查询<i class='fa fa-search'></i>").Events(ev => ev.Click("queryGrid")).HtmlAttributes(new { @class = "btn btn-sm blue", @style = "font-size:13px;" }))

大体一看就知道什么意思了,在这里如果你没有在HtmlAttributes中定义id,那么id就会默认是name的名字。

  @Html.Kendo().Button().Name("SelectPerson").Content("选择...").Events(c => c.Click("addExpert")).HtmlAttributes(new { type = "button" }).Enable(ViewBag.type != "show")

而且这个button还发现个特点,如果没有定义button的类型,那么默认会是sumit类型的,所以每次点击按钮都会提交一遍,如果你在form表单用了多个这样的按钮,那么你就会遇到问题,因此这里我定义了类型为button,表示没有提交概念。

(3)TextBox

  @Html.Kendo().TextBoxFor(model => model.EPName).HtmlAttributes(new { placeholder = "请填写姓名", required = "required", validationmessage = "必填字段", style = "width:120px;" })

这个没什么好说的了,就是个textbox。看到验证之后顺便把验证的代码也附上。

 var container = $("#formExpertInfo");//表单id 注意要引入验证js
        kendo.init(container);
        container.kendoValidator({
            rules: {

            }
        });

(4)ComboBox

 @(Html.Kendo().ComboBox().Name("ProjectSet").Filter("contains").Placeholder("请选择").DataTextField("Text").DataValueField("Value").BindTo(ViewBag.XXXX))

可以绑定后台传过来的数值,例如这里用的viewBag传的值。同时也可以异步读取。

(5)DropDownList

  @(Html.Kendo().DropDownListFor(model => model.FileType).Name("FileType").AutoBind(true).Filter("contains").DataTextField("Text").DataValueField("Value").BindTo(ViewBag.XXXX))

这个控件跟combobox基本一样。

(6)日期控件DatePicker

   @(Html.Kendo().DatePicker().Name("XXXXXX").Format("yyyy-MM-dd").Value(Model.XXXXXX))

(7)数值控件NumericTextBox

 @(Html.Kendo().NumericTextBox<double>().Value(Model.Version).Name("Version").Step(0.01).Min(0).Format("n2").HtmlAttributes(new { required = "required", validationmessage = "必填字段" }))

Format是控制两位小数。step指增长间隔

(8)上传控件Upload

 @(Html.Kendo().Upload().Name("files").Async(a => a.Save("Upload", "Document").Remove("Remove", "Document").AutoUpload(false)).Multiple(false).Events(e => e.Success("onSuccess").Upload(@<text>
                            function(e) {
                            e.data = { id:'@ViewBag.projectId',documentId:'@Model.ID' };
                            }

这个是上传控件,save跟remove里面对应的是controller与action,同理这里也可以换成url,只是要用saveurl了。

AutoUpload属性是控制是否自动上传。Multiple代表是否支持多个文件上传。

其中可以带好多事件,这里使用了onSuccess事件,为上传后返回该文件的保存路径保存到表中。 如果想向文件保存方法中传参数,可以使用Upload方法。

(9)树控件TreeView

@(
 Html.Kendo().TreeView().Name("treeview").HtmlAttributes(new { @class = "demo-section" }).DataTextField("Name").LoadOnDemand(true)
 .DataSource(dataSource => dataSource.Read(read => read.Url("/xx/xx/xxx"))).Events(c => c.Select("SetSelectedValue"))
)

在这里的树要比easyui中更简单,前台这些代码就可以了。

后台只用写个接收id的方法。

 public JsonResult GetExpertList(string id)
        {//定义树结构的model,一般都包括id,type,parentid,haschildren等几个字段
            if (id == null)
            {
              // 当id为空的时候就是顶级菜单
            }
            else
            {
               就是返回以该id为parentid的子项。
            }
            return Json(lstResult, JsonRequestBehavior.AllowGet);
        }

这里是异步加载,如果是全部加载,那么就在else中递归取子项。

其实,在项目中还会遇到这样那样的问题,这只是用的比较多的几个控件,希望对大家有帮助。

时间: 2024-08-02 15:12:48

telerik(kendoUI)常用控件使用的相关文章

常用控件产品官方文档/手册/API列表

.netCHARTING报表图表控件 文档帮助手册 Ab3d.PowerToys  文档帮助手册Ab3d.Reader3ds  文档帮助手册ABViewer  文档帮助手册(工程图纸文档管理系统)Active DJ Studio  文档帮助手册Active Sound Editor  文档帮助手册Active Sound Recorder  文档帮助手册ActivePatch  文档帮助手册(程序自动升级控件)Animated Chart  文档帮助手册BB FlashBack  文档帮助手册B

iOS学习-其他常用控件

1 // 2 // ViewController.m 3 // 其他常用控件 4 // 5 // Created by 大欢 on 16/1/25. 6 // Copyright © 2016年 bjsxt. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 11 @interface ViewController () 12 13 @property (weak, nonatomic) IBOutlet UILab

iOS常用控件尺寸大集合

元素控件 尺寸(pts) Window(含状态栏) 320 x 480 Status Bar的高度 20 Navigation Bar的高度 44 含Prompt的Navigation Bar的高度 74 Navigation Bar的图标 20×20(透明的png) Tool Bar的高度 44 Tool Bar的图标 20×20(透明的png) Tab Bar的高度 49 Tab Bar的图标 30×30(透明的png) 竖直时键盘的高度 216.252(iOS 5+的中文键盘) 水平时键盘

B/S一些小知识及常用控件

一: B/S网页的运行 页面在设计的时候,本身就是一个类.在运行的时间,是一个对象. 其中aspx和aspx.cs是在同一个类下. aspx是主要是负责界面,而aspx.cs主要是负责数据逻辑. 呈现:把页面上所有的控件对象,转化成HTML标签.  内存中的对象--->HTML ** 规范 **: 以后写代码的时候,在Page_Load方法中,99%的代码需要写在 if (!IsPostBack) { } IsPostBack——页面初始加载-false;表单提交加载-true 页面初始加载的情

Android常用控件:进度条

各种进度条属于 ProgressBar的子类 Sytle: 水平风格:Horizontal小风格:Small大风格:Large反向风格:Inverse小反向风格:Small.Inverse大反向风格:Large.Inverse 设置style:   style="?android:attr/progressBarStyle..." 主要属性:最大值:max当前进度:progress次要进度值:SecondaryProgress --效果类似于看电影那些缓冲 判断进度条是转圈还是水平的方

android快速上手(三)常用控件使用

完成了android的第一个程序HelloWorld,下面就开始控件的学习,下面是一些常见的控件. (一)TextView 简单的文本描述 (二)EditText 编辑框,输入文字信息 (三)Button 按钮,点击后会触发点击事件,可以对事件进行处理 (四)ImageView 图片控件,可以加载图片显示 (五)ListView 列表,需要跟适配器Adapter结合,适配器提供数据 (六)Toast 闪现提示语,常用于普通的提示文本,只显示一小段时间自动消失 (七)ScrollView 一般用于

android内部培训视频_第三节(3)_常用控件(ViewPager、日期时间相关、ListView)

第三节(2):常用控件之ViewPager.日期时间相关.ListView  一.ViewPager 实例:结合PagerAdapter滑动切换图片  二.日期时间相关:AnalogClock\DigitalClock\DatePicker\TimerPicker\DatePickerDialog\TimePickerDialog 三.ListView 实例1:城市选择器 实例2:自定义列表项 百度网盘视频下载地址:http://pan.baidu.com/s/1c0ip6la android内

GUI创建各常用控件(二)

继续接着上一篇! 在我看来有一点需要申明:由于是GUI的相关知识,所以我只是在复习中粗略的总结而已,因此参考价值可能有限,更多的是当作自己学习的一个记录以及便于自己查阅. 好啦!干货继续: 1.类似于GUI.Box(new Rect(Screen.width/2,Screen.height/2,Screen.width/2,Screen.height/2),   new GUIContent("This is a title","hahaha"));的命令:   其

Android support library支持包常用控件介绍(一)

谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library 支持库,让开发者更容易的实现材料设计的效果.顺便推荐官方的一个图标库:Material Icons 控件名称 NavigationView FloatingActionButton TextInputLayout Snackbar TabLayout AppBarLayout Coordinator

C# 常用控件及单击事件

1.窗体 1.常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体. (2)WindowState属性: 用来获取或设置窗体的窗口状态. 取值有三种: Normal (窗体正常显示). Minimized(窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示). (3)StartPosition属性:用来获取或设置运行时窗体的起始位置.(System.Windows.Forms.SystemInformation.WindowsArea.