//—————————————————新增总结————————————————————
1.GridView的多选效果(注意一个字都不要错才能运行)
(1)先在JavaScript中写代码:
<head runat="server">
<script language="javascript">
</script>
(2)在控件的onclick事件中写代码(即使控件没有这个事件,也要硬写上去)
<asp:CheckBox ID="chkCheckAll" runat="server" Text="全选" οnclick="javascript:GetAllCheckBox(this)"/>
2.GridView的光棒效果:——要在它的行绑定事件中写:里面注释的即是。
(1)在GridView的信息列表中绑定的是一些信息,点击这些信息跳到一个信息的详细页面中,当再回来查看信息列表时,这时发现GridView的页数变成了第一页,还得再翻开原来的页数,很麻烦.
(2)用Ajax+时间控件不停地刷新这个GridView以保证信息数据的及时更新,但是向GridView的模版列再添加一组CheckBox,做成多选的功能时,由于GridView是不停的刷新的,所以CheckBox选中的状态无法保持。
针对这两个功能,我的做法是在BLL中定义两个变量来保持状态,并做相应的判断,发现果然好用。
但是也遇到一个小问题:点击CheckBox选中和不选中,但是这一行的信息ID却无法获得,所以我只能在行绑定事件中把CheckBox的Text设置为这一行的ID,以便于在CheckBox的Change事件中获得相应的Id来进行执行删除操作。这个问题是否还有更好的办法值得考虑。
4.GridView中的删除按钮事件:
GridView中的删除按钮是这样做的:
(1)先在GridView中拖入一个模板列
(2)然后在这个模板列中拖入一个按钮,在这个按钮上设置属性:
CommandArgument='<%#DataBinder.eval_r(Container.DataItem,"ID")%>';
意思就是把GridView中绑定的每列的ID的值都绑定到每个模板列的Button按钮上。
(3)在GridView的行绑定事件中给每一个模板列的按钮添加确认对话框事件。是这么写的:
{
}
(4)然后,在GridView的行生成事件激发事件中:些下面代码://前提是要在按钮的CommandName上设置属性,用来判断到底是删除还是更新
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs
{
}
(5)做完这些就OK了。
//—————————————————以前所做总结————————————————————
1.GridView控件的几个可以保存数据的属性:(保存那些有用而又不想显示出来的值)
(1)DatakeyNames
在GridView的属性的DataKeyNames属性中存入值,后台要用的时候,通过代码取出来:
由于DatakeyNames储存的是每列的值,所以在行绑定事件中取出:
protected void GridView1_RowData(object sender,GridViewRowEventArgs e)
{
}
(2)CommandArgument
这个属性是要绑定在某一个控件上的,当这个控件激发一个事件(如点击事件)时,这个值就可以在事件中通过参数取出来。如:
protected void GriedView1_RowCommand(object sender,GridViewCommandEventArgs
{
}
(3)笨方法:使用模版列——拖入一个label存放值。 注意这里必须是模版列,否则他的值得不出来。
2.弹出对话框的方法:除了response.write()之外,还有:
this.Page.ClientScript.RegisterStartupScript(this.GetType(),"","<script>alert('xxxxxxxxxxxx');</script>");
3.另一个值得注意的地方:当某一列,比如货币列采取了格式化:{0:C}时,它的htmlEncode属性要设置为true;
4.GridView和DataList的保存数据的属性不一样:
GridView是DataKeyNames; 而DataList则是DataKeyField;
但取出来都是一样的。