Jquery中的bind方法和click等方法绑定事件时对同一个元素绑定的操作时会累加的,比如:

$("#btn").click(function(){alert("1");})

$("#btn").click(function(){alert("2");})

这两句话先后执行了以后点击btn时就会弹出两个提示框。那么有的时候在进行绑定第二次的时候希望的是更新原来的操作而不是追加操作怎么做呢?

Jquery中还有个unbind方法先把前面的绑定给卸载掉就行了比如

$("#btn").click(function(){alert("1");})

$("#btn").unbind("click").click(function(){alert("2");})

posted @ 2012-02-09 11:07 于为源 阅读(3) 评论(0) 编辑

通过查阅资料发现:

DataGridView的数据源必须是实现以下接口的任意类型:

(1)IList 接口,包括一维数组。

(2)IListSource 接口,例如,DataTable和DataSet类。

(3)IBindingList 接口,例如,BindingList<T>类。

(4)IBindingListView 接口,例如,BindingSource类。
MSDN解释
而Dictionary的类型定义为:
[SerializableAttribute]
[ComVisibleAttribute(false)]
public class Dictionary<TKey,TValue> : IDictionary<TKey,TValue>, ICollection<KeyValuePair<TKey,TValue>>,
IEnumerable<KeyValuePair<TKey,TValue>>, IDictionary, ICollection, IEnumerable,
ISerializable, IDeserializationCallback
并未实现以上接口
MSDN解释
 
而今天课程的练习中有的同学,希望使用父类的Dictionary集合绑定DataGridView数据源,没有成功。而使用BindingDataSource又因为集合中的对象是不同子类型而失败。经过考虑我们可以使用如下的方法来解决。
      //定义集合分别存放数据
      Dictionary<string, Vehicle> vehicle=new Dictionary<string,Vehicle> ();//没被出租的车集合
     //……省略添加元素代码……

      //将集合中的对象保存到数组,然后将数组作为数据源
      Vehicle[] vehiclesArray = new Vehicle[vehicle.Count];
     vehicle.Values.CopyTo(vehiclesArray,0);
     dgvRent.DataSource = vehiclesArray;

 

posted @ 2011-11-28 21:26 于为源 阅读(55) 评论(0) 编辑
静态类是不能实例化的,即不能new 我们直接使用它的属性与方法,静态类最大的特点就是共享。 静态类中的所有成员必须是静态的。 静态类可以有静态构造函数,静态构造函数不可继承。 静态构造函数可以用于静态类,也可用于非静态类。 静态构造函数无访问修饰符、无参数,只有一个 static 标志。 静态构造函数不可被直接调用,当创建类实例或引用任何静态成员之前,静态构造函数被自动执行,并且只执行一次。 非静态类实例化加载它,才能调用
posted @ 2011-11-20 22:35 于为源 阅读(33) 评论(0) 编辑

使用特性[assembly: CLSCompliant(true)]可以控制程序集符合CLS规范。这个特性只对公开的成员进行检测。

可以使用的方式:

[assembly: CLSCompliant(true)]加在命名空间前面,声明对整个程序集进行控制

[property: CLSCompliant(false)]指定某一属性不受CLS规范

[method: CLSCompliant(false)]指定方法不符合CLS规范时可以通过编译

 

[assembly: CLSCompliant(true)] //声明程序集需要符合CLS
namespace TestSolution
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

public int _age;
[property:CLSCompliant(false)]//声明属性不符合CLS的时候可以编译通过
public int Age
{
get { return _age; }
set { _age = value; }
}
}
}

 

posted @ 2011-11-03 10:18 于为源 阅读(12) 评论(0) 编辑
如果不想让DataGridView自动生成与数据源对应的列,只需要把属性AutoGenerateColumns设为false即可。
需要注意的是在界面设计的属性窗口中是看不到AutoGenerateColumns属性的,需要在代码中设定,比如在窗口的构造函数中设定:dataGridView1.AutoGenerateColumns = false;

posted @ 2011-03-08 15:52 于为源 阅读(101) 评论(0) 编辑
摘要: jQuery为开发插件提拱了两个方法,分别是:jQuery.fn.extend(object);jQuery.extend(object);jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。jQuery.fn.extend(object);给jQuery对象添加方法。fn 是什么东西呢。查看jQuery代码,就不难发现。jQuery.fn = jQuery.prototype = { init: function( selector, context ) {//.... //......};原来 jQuery.fn = jQuery.prototype.阅读全文
posted @ 2011-02-23 22:55 于为源 阅读(1479) 评论(0) 编辑
摘要: http://msdn.microsoft.com/zh-cn/library/ms972966.aspx阅读全文
posted @ 2011-02-19 22:09 于为源 阅读(22) 评论(0) 编辑
摘要: 搞不清楚这两个的区别,特地百度了一下。下面这篇挺好就转来了,谢谢原作者.另外根据我的实验当创建项目时指定Web Site时,添加webform会默认在代码中使用CodeFile。而创建项目时指定Web Application时,添加webform会默认在代码中使用CodeBehind。而创建的项目是Web Site时使用vs发布网站,指定属性是使用单页程序集的话,页头的配置属性会被动态修改,去掉CodeFile属性,并制定程序集的友好名。例如会转换为为如下形式:<%@ page language="C#" masterpagefile="~/MasterPage.master" auto阅读全文
posted @ 2011-02-15 21:52 于为源 阅读(640) 评论(0) 编辑
摘要: 今天看视频,收获了一个新的解决方法。如在做有自引用数据的显示的时候有时候会觉得treeview的呈现比较呆板,想要做比较灵活的显示方式的时候,需要使用repeater等来显示,这时就会有repeater的控件的嵌套问题,这是比较难解决的。今天看视频的时候,视频中是这样解决的。1.首先取根元素列表,使用一个repeater----parentrepeater显示2.做一个webusercontrol——a,暴露一个属性parentid,用来设置父级的id,用户控件中a中使用一个repeater显示父id为指定id的子元素的列表。3.将a放在parentrepeater中,阅读全文
posted @ 2011-02-15 18:09 于为源 阅读(60) 评论(0) 编辑
摘要: 很久没用vs2003了,晕用惯Eval("ss"),DataBinder好多都要不熟悉,也忘了什么时候网上转载记下  DataBinder.Eval总结一、DataBinder.Eval的基本格式  在绑定数据时经常会用到这个句程序:<%# DataBinder.Eval(Container.DataItem,"xxxx")%>或者<%# DataBinder.Eval(Container,"DataItem.xxxx")%>  今天又学到一种,而且微软也说这种方法的效率要比以上两种高。  <%# ((DataRowView)Container.DataItem)阅读全文
posted @ 2011-02-15 15:56 于为源 阅读(88) 评论(0) 编辑