国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

使用Asp.net Mvc3 Razor視圖方式擴展JQuery UI Widgets方法介紹

2024-07-10 13:23:34
字體:
來源:轉載
供稿:網友
JQuery UI Widgets是本人非常喜歡的一套前端JS組件,日常開發中基于原有的jquery ui widget js代碼進行開發,需要寫非常多的重復代碼,同時一些現有組件無法滿足需求的情況下,需要對現有組件進行擴展,本文使用一套基于jquery ui 的擴展js組件---jtable (),包含了基本的列表和編輯窗口,比起jqGrid,jquery easyui grid或者extjs grid,jtable的代碼非常簡潔、對于grid功能要求不是很復雜的情況下,強烈推薦大家使用!

除了jtable組件推薦給大家,本文主要向大家分享一些代碼編寫思路,如何減少前端js重復代碼,以及基于現有jquery ui widgets組件進行擴展代碼的寫法
本文涉及2個視圖文件,1個Controller文件

jTableTemplateView.cshtml// 基于jtable組件的代碼模板
someBusinessView.cshtml // 某業務功能視圖模板
TemplateController.cs // 模板后臺Controller控制
大體思路如下:

someBusinessView.cshtml,通過
<script type="text/javascript" src="/Template/jsTemplateView?code=xxx" ></script>
腳本src屬性指向jTableTemplateView頁面,同時傳遞參數code參數到TemplateController,
TemplateController調用jTableTemplateView視圖渲染時,通過參數Code獲取業務對象相關信息或變量傳遞給jsTemplateView頁面,然后輸出業務腳本信息到someBusinessView,代碼如下:
1.jTableTemplate.View

復制代碼 代碼如下:

 
@{
Layout = null; // 只輸出當前視圖
Response.ContentType = "application/javascript"; // 設定返回MIME類型
}
/*
* jTableTemplate v0.1 created by wdong 2012-11-07
* Copyright (c) 2012 wdong mail:wdong0472@gmail.com
* 使用jTableTemplate可以方便生成頁面上所需的Grid列表及Editor編輯窗口,非常簡潔的實現基本表單的CRUD操作
* USAGE: 參數說明
* $(selector).ControlName({title:"please your grid title"});
* $(selector).ControlName("load");
*/

@using Tiyo.Platform.Business.Entities


@{
string code = ViewBag.Code;

ObjectEntity entity = ViewData[code + ".ObjectCode"] as ObjectEntity;
IList<ObjectDetailsEntity> entityDetails = entity.Details;


string controlName = ViewData[code + ".ControlName"].ToString();
string
,paging: @paging //Enables paging
,pageSize:@pageSize //Actually this is not needed since default value is 10.
,sorting: true //Enables sorting
,defaultSorting: '@defaultSorting' //Optional. Default sorting on first load.
,actions: {
listAction: '@listAction'
,deleteAction: '@deleteAction'
,updateAction: '@updateAction'
}
,fields: {
ID: {
title:"主鍵"
,list:false
}
@foreach(var field in entityDetails)
{
if(!field.Ispk)
{
<text>
,@field.Fieldname:{
title:"@field.Displayname"
,list: @field.Visible.ToString().ToLower()
}
</text>
}
}
}
};

$.fn.extend(true,$.jTableTemplate.@{@controlName}.prototype,{options:options});
})(jQuery);


此處擴展JQuery UI Widgets的基本結構代碼如下:

復制代碼 代碼如下:


$.widget("ui.customwidget", $.extend({}, $.ui.extendwidget.prototype, {
_init: function(){
return $.ui.extendwidget.prototype._init.apply(this, arguments);
}

// Override other methods here.
}));


customerwidget為你自定義的插件名稱,extendwidget為現有插或被擴展插件
2.someBusinessView.cshtml

復制代碼 代碼如下:


@{
ViewBag.Title = "AreaList";
}

<script type="text/javascript" src="/JQueryTemplate/jTableTemplate?code=xxx"></script>

<div></div>

<script type="text/javascript">
$.SomeApp = {
doInit: function() {
try {
$('#DataContainer').xxx({title:"test列表"}).xxx("load");
} catch (err) {
alert(err);
}
}
}

$(function(){
$.SomeApp .doInit();
});

</script>


3.TemplateController.cs

復制代碼 代碼如下:

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tiyo.Platform.Controller;
using System.Web.Mvc;

namespace Tiyo.Plugins.ExtJsTemplate.Controllers
{
public class JQueryTemplateController:BaseController
{
/// <summary>
/// 獲取JTable列表+編輯窗口
/// </summary>
/// <param>環境上下文標識</param>
/// <returns></returns>
public ViewResult jTableTemplate(string code)
{
ViewBag.Code = code;

// 添加視圖所需環境上下文信息(即控件所需變量值等信息)
BaseDataHelper.AddContextData(code,ViewData);
return View();
}
}
}


注意,此處代碼為獲取jTableTemplate模板視圖所需變量信息,大家可根據自己習慣和需要自行替換

// 添加視圖所需環境上下文信息(即控件所需變量值等信息)
BaseDataHelper.AddContextData(code,ViewData);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 当雄县| 曲沃县| 邮箱| 尚志市| 利津县| 成都市| 闸北区| 汉寿县| 安阳县| 大冶市| 雅安市| 名山县| 广东省| 苏尼特左旗| 库车县| 英吉沙县| 佛坪县| 徐闻县| 苍山县| 山西省| 怀安县| 繁峙县| 昆山市| 饶平县| 彭阳县| 方山县| 大冶市| 邵阳市| 云南省| 紫云| 阜平县| 吕梁市| 岑巩县| 屏山县| 会昌县| 双城市| 建瓯市| 岳普湖县| 榆林市| 青河县| 水城县|