• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

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

    來源:懂視網 責編:小采 時間:2020-11-27 22:42:15
    文檔

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

    使用Asp.net Mvc3 Razor視圖方式擴展JQuery UI Widgets方法介紹:JQuery UI Widgets是本人非常喜歡的一套前端JS組件,日常開發中基于原有的jquery ui widget js代碼進行開發,需要寫非常多的重復代碼,同時一些現有組件無法滿足需求的情況下,需要對現有組件進行擴展,本文使用一套基于jquery ui 的擴展js組件-
    推薦度:
    導讀使用Asp.net Mvc3 Razor視圖方式擴展JQuery UI Widgets方法介紹:JQuery UI Widgets是本人非常喜歡的一套前端JS組件,日常開發中基于原有的jquery ui widget js代碼進行開發,需要寫非常多的重復代碼,同時一些現有組件無法滿足需求的情況下,需要對現有組件進行擴展,本文使用一套基于jquery ui 的擴展js組件-

    JQuery UI Widgets是本人非常喜歡的一套前端JS組件,日常開發中基于原有的jquery ui widget js代碼進行開發,需要寫非常多的重復代碼,同時一些現有組件無法滿足需求的情況下,需要對現有組件進行擴展,本文使用一套基于jquery ui 的擴展js組件---jtable (http://www.jtable.org),包含了基本的列表和編輯窗口,比起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="https://www.gxlcms.com/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 http://wdong.cnblogs.com/ 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 title = ViewData[code + ".Title"].ToString();
    string paging = ViewData[code + ".Paging"].ToString();
    string pageSize = ViewData[code + ".PageSize"].ToString();
    string defaultSorting = ViewData[code + ".DefaultSorting"].ToString();
    string listAction = ViewData[code + ".ListAction"].ToString();
    string updateAction = ViewData[code + ".UpdateAction"].ToString();
    string deleteAction = ViewData[code + ".DeleteAction"].ToString();
    }

    (function ($) {
    // extend jtable jquery ui widget
    $.widget("jTableTemplate.@controlName", $.extend(true,{}, $.hik.jtable.prototype, {
    _init: function(){
    return $.hik.jtable.prototype._init.apply(this, arguments);
    }
    }));

    //各種屬性、參數
    var options = {
    title: '@title'
    ,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="https://www.gxlcms.com/JQueryTemplate/jTableTemplate?code=xxx"></script>

    <div id="DataContainer"></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 name="code">環境上下文標識</param>
    /// <returns></returns>
    public ViewResult jTableTemplate(string code)
    {
    ViewBag.Code = code;

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

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

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

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

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

    使用Asp.net Mvc3 Razor視圖方式擴展JQuery UI Widgets方法介紹:JQuery UI Widgets是本人非常喜歡的一套前端JS組件,日常開發中基于原有的jquery ui widget js代碼進行開發,需要寫非常多的重復代碼,同時一些現有組件無法滿足需求的情況下,需要對現有組件進行擴展,本文使用一套基于jquery ui 的擴展js組件-
    推薦度:
    標簽: ui jQuery widgets
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产福利电影一区二区三区,欧美国产成人精品一 | 99精品久久久久中文字幕| 精品一区二区久久久久久久网站| 精品亚洲欧美中文字幕在线看| 精品国产免费一区二区三区香蕉| 人妻少妇精品中文字幕AV| 欧美精品亚洲精品日韩专区| 91亚洲精品麻豆| 国产亚洲精品一品区99热| 久久香综合精品久久伊人| 亚洲精品A在线观看| 国产玖玖玖九九精品视频| 久久99久久99小草精品免视看 | 久久精品国产一区二区电影| 国产日韩精品无码区免费专区国产 | 黑人巨茎精品欧美一区二区| 久久91综合国产91久久精品| 国产精品一区二区久久国产| 久久夜色精品国产噜噜噜亚洲AV| 女人高潮内射99精品| 国产精品亚洲二区在线观看 | 亚洲AV无码成人网站久久精品大| 日韩亚洲精品福利| 欧美日韩国产成人高清视频,欧美日韩在线精品一 | 日韩精品一二三区| 一本大道久久a久久精品综合| 97精品久久天干天天天按摩| 国语精品一区二区三区| 少妇精品无码一区二区三区| 亚洲国产精品成人精品无码区| 无码欧精品亚洲日韩一区夜夜嗨| 免费视频精品一区二区| 欧美成人精品一区二三区在线观看| 精品久久久久久无码国产| 国产精品无码无卡无需播放器| 国产成人久久久精品二区三区| 国产精品久久久99| 国产91精品一区二区麻豆亚洲 | 亚洲AV永久无码精品一区二区 | 欧美精品黑人粗大| 亚洲国产精品无码久久九九|