anything

Jquery - checkbox 状态检测和变换

状态监测

1. .attr('checked');  //1.6版本以上返回 checked 或 undefined 1.5版本返回 true, false

2. . prop('checked') //1.6以上版本返回 ture 或 false

3. .is(':checked') //所有版本 返回true 或 false

状态改变

1. attr('checked','checked');

2. attr('checked',true);

3. prop('checked',true); //1.6版本以上

4. prop({checked:true}); //1.6版本以上

5. prop('checked',function(){return true}); //1.6版本以上

6. prop('checked','checked'); //1.6版本以上

 

JQuery - 匿名定义

匿名类型 var dat = { ID : 0 };

匿名数组 var arr= new Array(); arr.push(dat);

 

C# - 匿名定义

匿名类型 var dat = new { ID : 0 };

匿名数组 var arr = new[] { new { ID : 0 } };

 

C# - JSon 转 匿名对象

string str = [{"ID":2235},{"ID":2239}];  // Json数据

var anonymous = new { ID : 0 }; // 创建匿名类

var data = JSonConvert.JsonConvert.DeserializeAnonymousType(rows, anonymous); // 转换

 

 

EntityFramework - CodeFirst Model 字段属性

// 指定数据类型

[DataType(DataType.Date)]

// 指定数据显示格式

// DataFormatString 显示格式  ApplyFormatInEditMode 是否在编辑时也使用该格式

[DisplayFormat(DataFormatString="{0:yyyy-MM-dd}", ApplyFormatInEditMode=true)]
[DisplayFormat{NullDisplayText = "No grade")]

// 指定列属性 (在数据库里的属性)

[Column(TypeName = "money")]

// 指定列名 (视图中显示的列名)

[Display(Name = "Administrator")]

// 串联属性

// 只有Get访问器, 不在数据中生成列

public string FirstName { get; set; }
public string LastName { get; set; }

public string FullName
{
    get { return LastName + ", " + FirstName ; }
}

 

EntityFramework -CodeFirst 联级删除禁止

// 在上下文类中加入
protected
override void OnModelCreating(DbModelBuilder modelBuilder) {   modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();   modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>(); }

 

JQuery - form 转 Json

1. $("form").serialize()

2. $("form").serializeArray()

将页面表单序列化成一个Json结构对象

3. $("form").param()

把Json格式的数据序列化成字符串形式

4. 重写serialize方法,然后$("form").serializeObject()

$.fn.serializeObject = function () {
    var o = {};
    var a = this.serializeArray();
    $.each(a, function () {
        if (o[this.name]) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

 

EasyUI - 前端后台对应关系

从 DataGrid 到 Form

DataGrid - "field:ID"  -> Form - name = "ID"

从 Form 到后台

Form - name = "ID"  -> 后台 Request.Form["ID"], Request["ID"]

 

EntityFramework - CodeFirst 联级删除

对特定类使用联级删除

在Context类的构造函数中

modelBuilder.Entity<Student>()
                .HasRequired(p => p.Teacher)
                .WithMany(d => d.Students)
                .HasForeignKey(t => t.Teacher_ID)
                .WillCascadeOnDelete(true);
class Student
{
    public int ID {get;set;}
    public string Name {get;set;}
    public int Teacher_ID {get;set;}
    [ForeignKey("Teacher_ID")]
    public Teacher Teacher {get;set;}
}


class Teacher
{
    public int ID {get;set;}
    public string Name {get;set;}
    public ICollection<Student> Students {get;set;}
}

 

EntityFramework - CodeFirst Json 序列化复合类引起引用循环的解决方案

在引起循环的类中添加

[JsonIgnore] 特性

 

JQuery - 只执行一次的代码

jquery.one(function(){

});

在MVC的 iframe 中, 先执行base中的 $(function(){})

再执行 具体页面中的 $(function(){})

 

C# - delegate,Fun,Action

bool fun1()
{
  return true;
}

 

delegate bool fun();
fun = fun1;
fun<bool> fun = fun1;
Action<bool> fun = fun1;

 

C# - IEnumerable, IQueryable, ICollection, IList

 

EntityFramework - 删除更新对象的时候引发同一键对象错误

using (myContext context = new myContext())
{
  context.Set<T>().Attach(t);
  context.Entry(t).State = EntityState.Modified;
  context.SaveChanges();
}

 

C# - 二元操作符 ??

??是一个二元运算符,如果左操作数非空,则返回左操作数,否则返回右操作数,所以,在一些特定的场合可以用它来代替?:运算符,简化代码书写。

var data = anything;

var result = data ?? anything2;

 

C# - SQL ConnectionString

SQL Server 验证

Data Source=(local);Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=mzwu@com;MultipleActiveResultSets=True

Windows 验证

Data Source=(local);Initial Catalog=test;Integrated Security=True;MultipleActiveResultSets=True

 

SQL - 循环语句

declare @i int
set @i=1
while @i<30
begin
insert into MyTable values(@i)
set @i=@i+1
end

 

SQL - int 转 varchar

cast(@i as varchar(1))

 

JQuery - alert, confirm, prompt

1.alert 弹出警告框,仅包含文本和确认按钮

2.confirm 弹出确认框, 里面包含文本和确认取消按钮, 方法返回布尔值代表选择确认还是取消

3.prompt 弹出输入框, 包含一个文本输入框和确认,取消按钮,点击取消返回null

function show_alert(){
    alert('第一行\n第二行');
}

function show_confirm(){
    var result = confirm('是否删除!');
    if(result){
        alert('删除成功!');
    }else{
        alert('不删除!');
    }
}

function show_prompt(){
    var value = prompt('输入你的名字:', '默认名字');
    if(value == null){
        alert('你取消了输入!');
    }else if(value == ''){
        alert('姓名输入为空,请重新输入!');
        show_prompt();
    }else{
        alert('你好,'+value);
    }
}

 

JQuery - 取name元素

$("input[name='thename']").val();

 

MVC - 文件下载

前端

<input type="button" value="下载" style="width:25px; height:15px;" onclick="下载('#:ID#')" />

<script>
    function 下载(data) { // location 可以是指向一个返回File()的地址,也可以是服务器文件的相对路径
        location.href = "/附件/下载?附件ID=" + data;
    }
</script>

后台

public ActionResult 下载(Int32 附件ID)
{
  var 附件 = db.附件.Find(附件ID);
  var filePath = 附件.路径;
  var fileName = 附件.原文件名;
  string absoluFilePath = filePath;
  return File(new FileStream(absoluFilePath, FileMode.Open), "application/octet-stream", Server.UrlEncode(fileName));
}

 

Json 和 Jsonp

web 页面的交互需要传递数据, 一般通过ajax来实现.

这就需要一种固定的数据格式来传输数据,并且有时需要解决跨域时安全协议的问题

这里传输数据的格式,一般就采用json,另外还有text,xml,html等

这里的安全协议,跨域协议可以用jsonp来

所以:json是一种数据交换的格式,jsonp是一种认为开发的用于跨域的交互协议

 

JSON

特点:

1. 基于纯文本,跨平台传送简单

2. 无论前段后台,大多数语言都支持

3. 轻量级数据格式,适合互联网传送

4. 可读性强

5. 容易编写和解析, 可以参考某些框架解析方法

规则

1. 符号:  

大括号{}   用来表示属性集

方括号[]    用来表示对象集

冒号:        用来区分键值对和值, 键名最好需要双引号

逗号,         用来区分多个属性

双引号""

2. 数据类型:

字符串,数字,布尔,日期,null

JSONP

 

 

MVC - BaseController 设计原则

Base Child Result
protected & private protected & private 无法定向到任何一个Controller
protected & private public 正常 (子类隐藏了父类的Controller)
protected & private public + new  正常
protected & private public + override 编译错误:无法进行重写
protected & private + virtual protected & private  
protected & private + virtual public 正常(子类隐藏了父类的Controller)
protected & private + virtual public + new  正常
protected & private + virtual public + override 编译错误:无法更改父类修饰符
protected & private + virtual   无法定向到任何一个Controller
public protected & private 以子类的身份直接执行Base.Controller
public public 引发歧义错误,无法确定是子类还是父类的Controller
public public + new  引发歧义错误,无法确定是子类还是父类的Controller
public public + override 编译错误:无法进行重写
public   以子类的身份直接执行Base.Controller
public + vitrual protected & private 以子类的身份直接执行Base.Controller
public + vitrual public  引发歧义错误,无法确定是子类还是父类的Controller
public + virtual public + new 引发歧义错误,无法确定是子类还是父类的Controller
public + virtual public + override 正常
public + virtual   以子类的身份直接执行Base.Controller

 

1. 子类的方法(控制器)只能使用 public 修饰符

2. 父类最好使用 virtual

3. 如果不打算写子类Controller的话 父类只能用 public 修饰符

4. 父类逻辑跟所有子类一模一样的,父类可以使用 public + virtual 的写法, 子类不写控制器 (通常用于视图)

5. 父类与子类的逻辑不同的话, 使用protected + virtual 的写法, 子类使用 public 或者 public + new 覆盖

6. 为了避免子类调用父类存在且它自身不存在的方法, 建议父类全部都写 protected + virtual 方法, 子类实现所有它自身需要实现的方法

7.父类还可以在Controller名前面加个'_' 符号, 表示与子类的Controller 区分

 

EntityFramework - Form 传递数组

<form>
    <table>
        @for (var i = 0; i < Model.Entities.Count; i ++ )
        {
            <input type="text" name="Entities[@i].Name" />
        }
    </table>
</form>

 

JQuery - String to Json

var str = '{"name":"John"}';
var obj = jQuery.parseJSON(str);
alert( obj.name );


//  "John" 

 

Enum Convert

1、Enum-->String

(1)利用Object.ToString()方法:如Colors.Green.ToString()的值是"Green"字符串;
(2)利用Enum的静态方法GetName与GetNames:
   public static string GetName(Type enumType,Object value)
   public static string[] GetNames(Type enumType)
   例如:Enum.GetName(typeof(Colors),3))与Enum.GetName(typeof(Colors), Colors.Blue))的值都是"Blue"
         Enum.GetNames(typeof(Colors))将返回枚举字符串数组。

2、String-->Enum

(1)利用Enum的静态方法Parse:
   public static Object Parse(Type enumType,string value)
   例如:(Colors)Enum.Parse(typeof(Colors), "Red")

3、Enum-->Int

(1)因为枚举的基类型是除 Char 外的整型,所以可以进行强制转换。
   例如:(int)Colors.Red, (byte)Colors.Green

4、Int-->Enum

(1)可以强制转换将整型转换成枚举类型。
   例如:Colors color = (Colors)2 ,那么color即为Colors.Blue
(2)利用Enum的静态方法ToObject。
   public static Object ToObject(Type enumType,int value)
   例如:Colors color = (Colors)Enum.ToObject(typeof(Colors), 2),那么color即为Colors.Blue

5、判断某个整型是否定义在枚举中的方法:Enum.IsDefined

public static bool IsDefined(Type enumType,Object value)
例如:Enum.IsDefined(typeof(Colors), n))



CSS 内容超过div宽度限制 自动换行
<div style='width: 100px;display:block;word-break: break-all;word-wrap: break-word;'>
内容超出div宽度后自动换行的css代码
</div>

 

 

.NET - Window 服务安装

InstallUtil.exe path

sc create ServerName binPath= "path"

(sc 工具比较强大, 推荐使用)

.NET - Window 服务删除

 sc delete ServicesName

.NET - Window 服务打开

net start callcenter

.NET - Window 服务关闭

net stop CallCenter

 

 

JavaScript - 获取地址栏查询字符串

function GetQueryString(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if (r != null) return unescape(r[2]); return null;
}

 

.NET MVC 下的协变和抗变

public class A{
   public int a{get;set;} 
}

public class B : A{
   public int b {get;set;}
}
// 正常运作
// a1 实际上也是 B 类型
B b1 = new B();
A a1 = b1;
B b2 = (B)a1
// 正常运作
// 参数 a1 实际上是 B 类型
B b1 = new B();
B b2 = Convert(b1);

public B Convert(A a1)
{
   return (B)a1; 
}
<form action="Convert">
    <input type="text" name="a" />
    <input type="text" name="b" />
    <input type="submit" value="submit" />
</form>
// 失败
// 原因可能是因为在模型绑定的时候, 直接就按照 A 的绑定方式绑定
// 所以 a1 并不是 B类型 而是A类型
[HttpPost]
public EmptyResult(A a1)
{
   B b1 = (B)a1; 
}

 

 

SQL - 利用存储过程清空所有表里的数据

CREATE PROCEDURE sp_DeleteAllData
AS
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
EXEC sp_MSForEachTable 'DELETE FROM ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?'
GO 

 

HTML - IconFont 的使用

1. 获得 这个 iconfont 的 .eot, .svg, .ttf, .woff 文件 (不必须所有文件都需要)

2. 创建一个 css 文件  (如: iconfont.css)

3. 创建对于 字体文件的关联

/*字体图标引用*/
@font-face {
  font-family: "iconfont";
  src: url('../fonts/iconfont.eot?t=1458959919');
  /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
  /* chrome, firefox */
  /* IE6-IE8 */
  /* IE9*/
  src: url('../fonts/iconfont.eot?t=1458959919#iefix') format('embedded-opentype'), 
         url('../fonts/iconfont.woff?t=1458959919') format('woff'), 
         url('../fonts/iconfont.ttf?t=1458959919') format('truetype'), 
         url('../fonts/iconfont.svg?t=1458959919#iconfont') format('svg');/* iOS 4.1- */
}

.iconfont {
  font-family: "iconfont" !important;
  font-size: 20px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -webkit-text-stroke-width: 0.2px;
  -moz-osx-font-smoothing: grayscale;
}
.icon-more:before {
  content: "\e603";
}
.icon-yonghu:before {
  content: "\e600";
}
.icon-zhuye:before {
  content: "\e601";
}
.icon-qian:before {
  content: "\e602";
}

4. 在 HTML 页上引用这个 css

<link rel="stylesheet" href="css/iconfont.css" />

5. 给想要的标签上 添加 class 属性

<span class="iconfont icon-yonghu"></span>

 

 

 

 

 

posted @ 2015-07-14 15:24  `Laimic  阅读(435)  评论(0)    收藏  举报