一、针对My97日历控件的绑定

普通绑定和特殊格式绑定(红色部分)

<!-- ko foreach: items -->
<td class="ruyeeTableTDLable"> <span>批准专业日期</span></td>
<td class="ruyeeTableDataCell">
    <div class="input-group">
        <input data-validation-engine="validate[maxSize[10]],validate[required],custom[date],"
               data-bind="attr: { id: 'A7615' +$index(),value:A7615} " type="text" class="form-control">
        <div class="input-group-addon ">
            <span class="glyphicon glyphicon-calendar"
                  data-bind="attr: { onclick: 'WdatePicker({ el:A7615' + $index() + '})' }">

            </span>
        </div>
    </div>
</td>
<td class="ruyeeTableTDLable"> <span>转业年份</span></td>
<td class="ruyeeTableDataCell">
    <div class="input-group">
        <input data-validation-engine="validate[maxSize[10]],validate[required],validate[date],"
               data-bind="attr: { id: 'A7616' +$index(),value:A7616} " type="text" class="form-control">
        <div class="input-group-addon ">
            <span class="glyphicon glyphicon-calendar"
                  data-bind="attr: { id: 'WP_A7616_' +$index()} "></span>
        </div>
    </div>
</td>
<!-- /ko -->
/// <reference path="../knockout-3.2.0.js" />
var koList;
var deletedIds = Array();
var ViewModel = function (data, func) {
    var self = this;
    self.items = ko.mapping.fromJS(data.items);
    self.struct = ko.mapping.fromJS(data.structV);
    builLeftNva(self);
    self.success = ko.observable();
    self.success.subscribe(function (nv) {
        var success = $.trim(nv);
        ) {
            $('#success').modal('show');
        }
    });
    self.canSubmit = ko.observable(false);
    self.submit = function () {
        if ($("#form_id").validationEngine("validate")) {
            ; i < koList().length; i++) {
                //时间格式转换
                koList()[i].A7615($('#A7615' + i).val());
                koList()[i].A7616($('#A7616' + i).val());
            }
            $.ajax({
                url: postOneModelActionUrl,
                contentType: "application/json",
                type: "POST",
                data: ko.mapping.toJSON({ items: self.items, deletedIdList: deletedIds }),
                success: function (response) {
                    self.success(response.Description);
                },
                async: false
            });
        }
    };

    self.closeSuccess = function () {
        self.success('');
        $('#success').modal('toggle');
    };

    self.deleteOne = function (item) {
        self.items.remove(item);
        if (item.ID() != null) {
            deletedIds.push(item.ID());
        }
    }
    self.addNew = function () {
        //新增时的特殊处理
        var js = ko.mapping.toJS(self.struct);
        js.A7615 = getDateString();
        js.A7616 = getDateString();
        var newItem = ko.mapping.fromJS(js);
        self.items.push(newItem);
        func();
    }
    self.canSubmit(true);
    $('#form_id').validationEngine();
    koList = self.items;
    //延时处理,解决KO性能问题
    setTimeout(func, );
}
var refreshList = function () {
    ; i < koList().length; i++) {
        //时间格式转换,如果是新增的(新增的ID为null)则无需转换
        if (koList()[i].ID != null) {
            $('#WP_A7616_' + i).click(function () {
                WdatePicker({
                    dateFmt: 'yyyy-MM',
                    el: $('#A7616' + this.getAttribute('id').split('_')[2]).attr('id')
                });
            })
            koList()[i].A7615(changeDateFormat(koList()[i].A7615()));
            koList()[i].A7616(changeDateFormat(koList()[i].A7616(), null, null, null, false));
        }
    }
};
$(document).ready(function () {
    $('#create').addClass('active');
    $.ajax({
        url: getStructActionUrl,
        contentType: "application/json",
        type: "POST",
        data: JSON.stringify({ A01ID: QueryString.GetValue('a01id') }),
        success: function (data) {
            ko.attach("A76Model", new ViewModel(data, refreshList));
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            switch (XMLHttpRequest.status) {
                :
                    changeLocationToLogin();
                    break;
            }

        }
    });
})

knockout+bootstrap--一些复杂的应用合集的更多相关文章

  1. 从零开始学数据分析,什么程度可以找到工作?( 内附20G、5000分钟数据分析工具教程大合集 )

    从零开始学数据分析,什么程度可以找到工作?( 内附20G.5000分钟数据分析工具教程大合集 )   我现在在Coursera上面学data science 中的R programming,过去很少接 ...

  2. 不容错过的UI设计素材大合集

    免费PSD素材 TETHR by InVision 这是出自InVision的8款PSD文件,其中包含了100个模板和超过500个UI控件.来自InVision和UI8的设计师一同协作完成了这套UI ...

  3. 你想找的Python资料这里全都有!没有你找不到!史上最全资料合集

    你想找的Python资料这里全都有!没有你找不到!史上最全资料合集 2017年11月15日 13:48:53 技术小百科 阅读数:1931   GitHub 上有一个 Awesome - XXX 系列 ...

  4. 最新最全的 Android 开源项目合集

    原文链接:https://github.com/opendigg/awesome-github-android-ui 在 Github 上做了一个很新的 Android 开发相关开源项目汇总,涉及到 ...

  5. 超全的 Vue 开源项目合集,签收一下

    超全的 Vue 开源项目合集,签收一下 xiaoge2016 前端开发 1周前 作者:xiaoge2016 链接: https://my.oschina.net/u/3018050/blog/2049 ...

  6. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  7. 【Android】开发中个人遇到和使用过的值得分享的资源合集

    Android-Classical-OpenSource Android开发中 个人遇到和使用过的值得分享的资源合集 Trinea的OpenProject 强烈推荐的Android 开源项目分类汇总, ...

  8. [Erlang 0122] Erlang Resources 2014年1月~6月资讯合集

    虽然忙,有些事还是要抽时间做; Erlang Resources 小站 2014年1月~6月资讯合集,方便检索.      小站地址: http://site.douban.com/204209/   ...

  9. [Erlang 0114] Erlang Resources 小站 2013年7月~12月资讯合集

    Erlang Resources 小站 2013年7月~12月资讯合集,方便检索.     附 2013上半年盘点: Erlang Resources 小站 2013年1月~6月资讯合集    小站地 ...

随机推荐

  1. 绝不在构造和析构函数中调用 virtual 函数

    看下面的这段代码,问 print调用的是基类还是派生类的版本? 答案是 基类... 可能大家会很惊讶,print不是virtual function 吗?为什么不是调用派生类的版本呢? 首先,当定义一 ...

  2. Shell if 判断之detail

    参考: http://blog.chinaunix.net/uid-20788517-id-3135826.html

  3. Bzoj索引

    1001 : http://ideone.com/4omPYJ1002 : http://ideone.com/BZr9KF1003 : http://ideone.com/48NJNh1004 : ...

  4. C#检测本地网络状态

    using System; using System.Runtime.InteropServices; public static class NetTool { [Flags] private en ...

  5. Ruby on Rails搭建环境出现的问题及解决方案

    问题一:在win7系统64位环境下执行cmd命令:rails new testapp 之后,回报如下图错误:Gem:installer::ExtensionBuildError: ERROR:Fail ...

  6. 通过HttpWebRequest请求与HttpWebResponse响应方式发布接口与访问接口

    一.API接口的编码 1.首页的页面代码: protected void Page_Load(object sender, EventArgs e) { /* * 请求路径:http://xxxx/i ...

  7. 6.Counting Point Mutations

    Problem Figure 2. The Hamming distance between these two strings is 7. Mismatched symbols are colore ...

  8. JS与Struts标签page

    <html> <html:link name="map"  page="/xxx/xxx/xxx_delete_do.do"         ...

  9. websphere性能调优之dump命令

    websphere性能调优之dump命令 基于WebSphere 构建的企业应用,时常会出现性能问题,在严重的情况下还会提示出内存溢出,这是一件很让人恼怒的事情.在WebSphere Applicat ...

  10. 2017-1-2 nfs服务器配置

    配置apt工具集 1.打开配置文件 sudo vim /etc/apt/sources.list 2.将上面文件中内容删除,选择阿里云的软件源加入 # deb cdrom:[Ubuntu 16.04 ...