qizhi's profileSuccess covers a multitu...PhotosBlogListsMore Tools Help
There are no photo albums.

qizhi ren

Occupation
Location
Interests

Success covers a multitude of blunders.

April 18

GridView

在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

无法连接SQL SERVER 2005

当用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";

VS 2005 找出 Global.asax 全局应用程序类

VS2005的默认情况下是没有Global.asax的.

首先要打上VS2005的SP1补丁包.然后在解决方案资源管理器-右键-新建新项-全局应用程序类.