April 18
在VS2005中出来了一个GridView 的控件,是DataGrid的升级版.当然如果你比较喜欢用DataGrid,你也可以自己去添加.前段时间自己玩了一下这个GridView有一点心得跟技巧在这里跟大家分享一下,在这里我就不多讲GridView的一些基本的功能.
一.怎么给满足条件的记录行加背景
我用一个Demo讲如何给成绩未满60分的记录加红色背景.
首先我先说说GridView数据行创建时它的具体流程:
Pager-Header-DataRow-DataRow...-Footer-Pager
Pager是页面行,
Header是表头行,
DataRow是数据行,
Footer是表尾行,
我们判断数据的时候必须在每条记录被邦定后进行判断,也就是在RowDataBound的事件中进行判断.
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (Convert.ToInt32(e.Row.Cells[1].Text)<= 60)
{
e.Row.BackColor = System.Drawing.Color.Red;
}
}
}
首先获取邦定行的类型.判断是否为数据行.
然后判断这条记录的第几列是否满足条件.如果满足,就将这条记录的背景颜色换成红然.
二.删除记录时加确认.
先建个TemplateField.然后拉进一个LinkButton.把Text属性改成"删除" 把CommandName属性改成delete,最后一步也是最重要的一步.就是在OnClientClick属性写成:return confirm("Are you sure?") 这个属性在VS2003中是没有的.必须自己手动在HTML代码中写.^_^!
三.GridView的自定义分页
要想自定义分页就必须在页面创建时写分页代码.
也就是在RowCreated事件中,判断创建的行是什么类型的行,可以用e.Row.RowType来获得行的类型.前面已经讲过GridView创建行的流程.所以只要判断创建的行类型是Pager就是分页行.然后再进行操作.语句是:
if(e.Row.RowType.ToString()=="Pager")
{
//清空原先页面的内的控件
e.Row.Cells[0].Controls.Clear();
//再动态的创建自己想要的控件如:
Button btn_PrePage = new Button();
//你可以为你的控制添加事件
btn_PrePage.Click += new EventHandler(btn_PrePage_Click);
//然后添加控件到页面行
e.Row.Cells[0].Controls.Add(btn_PrePage);
}
当你创建事件时"+="完按两次Tab键.系统会自动创建如下事件代码:
void btn_PrePage_Click(object sender, EventArgs e)
{
//事件处理的代码
}
如果同时有头部页面行跟尾部页面行你加个标记来判断就行了.如果你的控件有反回值操作的时候(如文本框)那要用委托,委托这东西下次我会专门写篇文章讲.这里委托我就不多讲了.
如果大家对上面的还有什么不明白的可以发Email给我.
March 13
当用VS2005 连接 SQL2005时 怎么连也连不上.
提示:在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
主要的原因是出在连接字符串中.大家平常一般都是:
ConnStr="server=.;uid=asdf;pwd=123;database=asdf"
因为在SQL2005中你默认所登入的实例是:SQLEXPRESS
所以要主意在SQL登入界面上 服务器的名称
假设你的计算机名是:VIN 那你连接串应该是:ConnStr=@"Data Source=VIN\SQLEXPRESS;User ID=sa;Password=123;Database=ASDF";
VS2005的默认情况下是没有Global.asax的.
首先要打上VS2005的SP1补丁包.然后在解决方案资源管理器-右键-新建新项-全局应用程序类.