月度归档: 2018 年 6 月

  • easyui input 回车事件

    easyui的input控件在输入完成后,可以处理回车事件以便进行下一步的操作,代码如下:

    $('#keyword').textbox({
        inputEvents: $.extend({}, $.fn.textbox.defaults.inputEvents, {
            keyup: function (event) {
                if (event.keyCode == 13) {
                    _search();
                }
            }
        })
    });
  • JS禁用CTRL+P打印快捷键,并替换成自己的功能

    一般的浏览器的CTRL+P快捷键是打印这个页面的功能,有时我们并不想让用户进行打印,那么可以用下面的代码来替换该快捷键的功能,直接返回false是禁用。

    <script>
    jQuery(document).bind("keyup keydown", function (e) {
        if (e.ctrlKey && e.keyCode == 80) {
             // do something
            return false;
        }
    });
    </script>
  • C# NPOI读取excel

    在.NET中,我们操作excel一般都是使用NPOI这个组件,它成熟稳定又好用。下面的代码记录了项目中的一段使用NPOI读取excel的功能的实现:

    using NPOI.HSSF.UserModel;
    using NPOI.SS.UserModel;
    using NPOI.XSSF.UserModel;
    
    IWorkbook hssfwb;
    using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
    {
        if (fileName.IndexOf(".xlsx") > 0) // 2007版本
            hssfwb = new XSSFWorkbook(fs);
        else // if (fileName.IndexOf(".xls") > 0) // 2003版本
            hssfwb = new HSSFWorkbook(fs); 
    }
    
    ISheet sheet = hssfwb.GetSheetAt(0); // 或 ISheet sheet = hssfwb.GetSheet("Arkusz1");
    for (int row = 1; row <= sheet.LastRowNum; row++)
    {
        if (sheet.GetRow(row) != null) //null is when the row only contains empty cells
        {
            var s = string.Format("Row {0} = {1}", row, sheet.GetRow(row).GetCell(0).StringCellValue);
        }
    }

  • 对DTO的理解 

    DTO是一个类,相当于ViewModel,通过restful api接口传输

    DTO贯穿在request的过程中,viewmodel也差不多

    使用的时候,通过automapper实体映射工具和数据库实体进行转换

    DTO是后端不同模块之间传输数据用,不涉及前端和视图