都这么久在找到空间放视频,实在不好意思哈!呵呵
视频下载地址是 http://spacenet.supericp.com/thc/gridview.rar 感谢老虎学画画提供空间
昨天晚上还没有做完 7 和 8 两个小演示,觉得放首页恐怕不好,现在都补齐了!因为上一篇基础的东西太多,而这篇我觉得放首页还是可以,如果dudu审下有问题,麻烦帮我放新手就是(老是缺乏自信)
完整代码下载地址 http://www.cnblogs.com/files/thcjp/gridview.rar
在本例,我们要完成的工作主要有如下,当然,我得重申,这些都只是针对gridview控件,这其中也会使用到sqldatasource控件,事实上在我们日常的使用中,gridview控件也总是需要起数据源控件的支持!
下面开始我们的gridview控件使用之高级技巧
1:添加移除列 | 2:改列头名 | 3:将某列设置特殊格式 | |
4:增加鼠标动作 | 5:为特定的数改变行样式 | 6:客户端隐藏示特定的列 | |
7:使用图片列做易图片集 | 8:一次更新所记录 | 9:改变编辑模式下文本框的长度 | |
10:在gridview之外的地方显当前控件显示的页码 | 11:使用控件做查询条件 |
由于一篇贴不完,所以新开一篇。上篇地址是http://thcjp.cnblogs.com/archive/2006/06/03/416679.html
接下来的代码是 小例 7 和 8 的,因为这个使用的是dateset做数据源,所以单独做的
<%@ page language=“c#“ autoeventwireup=“true“ codefile=“default2.aspx.cs“ inherits=“default2“ %>
<!doctype html public “-//w3c//dtd xhtml 1.0 transitional//en” “http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” >
<head runat=”server”>
<title>无标题页</title>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>
习惯,我们还是先拖一个控件到网页上来,下面,我直接复制先写好的建立dataset的代码,因为现在写的话太浪费时间了:<br />
<asp:gridview id=”gridview1″ runat=”server” autogeneratecolumns=”false”>
<columns>
<asp:boundfield datafield=”id” headertext=”id” />
<asp:boundfield datafield=”name” headertext=”名字” />
<asp:boundfield datafield=”dtt” headertext=”时间” />
<asp:boundfield datafield=”url” headertext=”图片路径” />
<asp:imagefield dataimageurlfield=”url” headertext=”图片”>
</asp:imagefield>
</columns>
</asp:gridview>
<br />
<br />
现在我们可以看下了,呵呵,看到了,那么到这里,我们的制作简易相册算完了,<br />
下面做批量修改记录了,我们重新建立一个gridview,这样看起来容易点<br />
<br />
<asp:gridview id=”gridview2″ runat=”server” autogeneratecolumns=”false” backcolor=”white”
bordercolor=”#cc9966″ borderstyle=”none” borderwidth=”1px” cellpadding=”4″>
<footerstyle backcolor=”#ffffcc” forecolor=”#330099″ />
<columns>
<asp:boundfield datafield=”id” headertext=”id” />
<asp:templatefield headertext=”名字”>
<edititemtemplate>
<asp:textbox id=”textbox1″ runat=”server” text=<%# bind(“name”) %>></asp:textbox>
</edititemtemplate>
<itemtemplate>
<asp:textbox id=”gname” runat=”server” text=<%# bind(“name”) %> width=”67px”></asp:textbox>
</itemtemplate>
</asp:templatefield>
<asp:templatefield headertext=”时间”>
<edititemtemplate>
<asp:textbox id=”textbox2″ runat=”server” text=<%# bind(“dtt”) %>></asp:textbox>
</edititemtemplate>
<itemtemplate>
<asp:label id=”label2″ runat=”server” text=<%# bind(“dtt”) %>></asp:label>
</itemtemplate>
</asp:templatefield>
<asp:templatefield headertext=”图片”>
<edititemtemplate>
<asp:textbox id=”textbox3″ runat=”server” text=<%# eval(“url”) %>></asp:textbox>
</edititemtemplate>
<itemtemplate>
<asp:image id=”image1″ runat=”server” imageurl=<%# eval(“url”) %> />
</itemtemplate>
</asp:templatefield>
</columns>
<rowstyle backcolor=”white” forecolor=”#330099″ />
<selectedrowstyle backcolor=”#ffcc66″ font-bold=”true” forecolor=”#663399″ />
<pagerstyle backcolor=”#ffffcc” forecolor=”#330099″ horizontalalign=”center” />
<headerstyle backcolor=”#990000″ font-bold=”true” forecolor=”#ffffcc” />
</asp:gridview>
<br />
<asp:button id=”button1″ runat=”server” onclick=”button1_click” text=”更新” width=”290px” /><br />
<br />
至此,全部完了,有什么不清楚的可以跟我交流,你们应该能看出来,我也不是高手,呵呵,大家一起交流,共同进步了!! 我qq 110535808</div>
</form>
</body>
</html>
using system;
using system.data;
using system.configuration;
using system.collections;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
public partial class default2 : system.web.ui.page
{
protected void page_load(object sender, eventargs e)
{//当页面载入的时候建立表
if (!ispostback)
{
dataset ds = new dataset(“gv“);//new一个标视为 gv的库
datatable dt = new datatable(“logoo“);//为上面的库建立一个标视为logoo的数据表
dt.columns.add(new datacolumn(“id“, typeof(int)));//建立新的数据列, 类型为int,列名为id的数据列
dt.columns.add(new datacolumn(“name“, typeof(string)));
dt.columns.add(new datacolumn(“url“, typeof(string)));
dt.columns.add(new datacolumn(“dtt“, typeof(datetime)));
datarow dr = dt.newrow();//建立一个新的数据行
dr[“id“] = 1;//设置单元格数据
dr[“name“] = “logo“;
dr[“url“] = “~/img/2.gif“;
dr[“dtt“] = datetime.now;
dt.rows.add(dr);//将该行添加到表里
dr = dt.newrow();
dr[“id“] = 2;
dr[“name“] = “标志“;
dr[“url“] = “~/img/3.gif“;
dr[“dtt“] = datetime.now;
dt.rows.add(dr);
dr = dt.newrow();
dr[“id“] = 3;
dr[“name“] = “洪川“;
dr[“url“] = “~/img/2.gif“;
dr[“dtt“] = datetime.now;
dt.rows.add(dr);
dr = dt.newrow();
dr[“id“] = 3;
dr[“name“] = “洪川“;
dr[“url“] = “~/img/2.gif“;
dr[“dtt“] = datetime.now;
dt.rows.add(dr);
ds.tables.add(dt);//把表添加到库里,怎么样,简单吧,呵呵
session[“ds“] = ds;//为了方便数据一直保存在内存中,我们把他放到session中去
fill();//在这里调用方法绑定数据,下面我们看下实际的效果
}
}
private void fill()
{//我们做一个方法,来绑定数据到视图中去
dataset ds = (dataset)session[“ds“];//这里应该强制类型转换的,呵呵,不过现在确实还不能看,因为前面我们还没有绑定数据哦
gridview1.datasource = ds;
gridview1.databind();
gridview2.datasource = ds;
gridview2.databind();
}
protected void button1_click(object sender, eventargs e)
{//下面我们开始对他里面的数据实行批量更改
for(int i=0;i<gridview2.rows.count;i++)
{
gridviewrow gvr=gridview2.rows[i];//声明一个行对象
string lbl = ((textbox)gvr.cells[1].findcontrol(“gname“)).text.replace(““,“@_~!“);//得到文本框里的数据,郁闷,肚子饿了,脑子不好用了,呵呵
if(lbl==“标志“)
{//郁闷,==我看下
dataset ds = (dataset)session[“ds“];
ds.tables[“logoo“].rows[i][“name“] = “洪川医药“;//这里错,这应该是循环的当前行,唉
session[“ds“] = ds;//还是还给session
fill();//重新绑定
}
}
}
}