Gridview详解

今天到csdn发现一篇让我忍不住要转的文章,虽然作者写的都是基础,但是对于初学者来说帮助还是很大的,原文件作者是:csdn.net的清清月儿  她的主页  http://blog.csdn.net/21aspnet/  。

    看了文章我感觉特别不错,但是也发现了一些问题,首先是代码没有放到代码标记里,看起来不是很好看,还有一些代码没有注释新手看起来会很不方便,所以我想 给他规范化一下,赵哥昨天才讲过博客的版面美观于否是很重要的,让大家看着方便,也算是为刚加入的微 软社区精英计划 出把力吧,为了保留作者的权力,我没有改动代码的实现 方法,只是把代码规范化了一下下,呵呵,在这里再次感谢作者清清月儿

 

                                              快速预览:
GridView无代码分页排序
GridView选中,编辑,取消,删除
GridView 正反双向排序
GridView和下拉菜单DropDownList结合
GridView和CheckBox结合
鼠标移到 GridView某一行时改变该行的背景色方法一
鼠标移到GridView某一行时改变该行的背景色方法二
GridView实现删除时弹 出确认对话框
GridView实现自动编号
GridView实现自定义时间货币等字符串格式
GridView实现用“...”代 替超长字符串
GridView一般换行与强制换行
GridView显示隐藏某一列
GridView弹出新页面/弹出新窗口
GridView 固定表头(不用javascript只用CSS,2行代码,很好用)
GridView合并表头多重表头无错完美版(以合并3列3行举例)
GridView 突出显示某一单元格(例如金额低于多少,分数不及格等)
GridView加入自动求和求平均值小计
GridView数据导入 Excel/Excel数据读入GridView

 

1.GridView无代码分页排序

 

1.AllowSorting设为True,aspx代码中是AllowSorting="True";
2.默认1页10条,如果要修改每 页条数,修改PageSize即可,在aspx代码中是PageSize="12"。
3.默认的是单向排序的,右击GridView弹出“属 性”,选择AllowSorting为True即可。

 

2.GridView选中,编辑,取消,删除:

后台代码:
你可以使用sqlhelper,本文没用。代码如下:

代码

using  System;
using  System.Data;
using  System.Configuration;
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;
using  System.Data.SqlClient;

public   partial   class  _Default : System.Web.UI.Page 
{

// 清清月儿http: // blog.csdn.net/21aspnet 
    SqlConnection sqlcon;
    SqlCommand sqlcom;
    
string  strCon  =   " Data Source=(local); Database=数据库名;Uid=帐号;Pwd=密码 " ;
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        
if  ( ! IsPostBack)
        {
            bind();
        }
    }
    
protected   void  GridView1_RowEditing( object  sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex 
=  e.NewEditIndex;
        bind();
    }

// 删除
     protected   void  GridView1_RowDeleting( object  sender, GridViewDeleteEventArgs e)
    {
        
string  sqlstr  =   " delete from 表 where id=' "   +  GridView1.DataKeys[e.RowIndex].Value.ToString()  +   " ' " ;
        sqlcon 
=   new  SqlConnection(strCon);
        sqlcom 
=   new  SqlCommand(sqlstr,sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        bind();
    }

// 更新
     protected   void  GridView1_RowUpdating( object  sender, GridViewUpdateEventArgs e)
    {
        sqlcon 
=   new  SqlConnection(strCon);
        
string  sqlstr  =   " update 表 set 字段1=' "
            
+  ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 1 ].Controls[ 0 ])).Text.ToString().Trim()  +   " ',字段2=' "
            
+  ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 2 ].Controls[ 0 ])).Text.ToString().Trim()  +   " ',字段3=' "
            
+  ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 3 ].Controls[ 0 ])).Text.ToString().Trim()  +   " ' where id=' "  
            
+  GridView1.DataKeys[e.RowIndex].Value.ToString()  +   " ' " ;
        sqlcom
= new  SqlCommand(sqlstr,sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        GridView1.EditIndex 
=   - 1 ;
        bind();
    }

// 取消
     protected   void  GridView1_RowCancelingEdit( object  sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex 
=   - 1 ;
        bind();
    }

// 绑定
     public   void  bind()
    {
        
string  sqlstr  =   " select * from 表 " ;
        sqlcon 
=   new  SqlConnection(strCon);
        SqlDataAdapter myda 
=   new  SqlDataAdapter(sqlstr, sqlcon);
        DataSet myds 
=   new  DataSet();
        sqlcon.Open();
        myda.Fill(myds, 
" " );
        GridView1.DataSource 
=  myds;
        GridView1.DataKeyNames 
=   new   string [] {  " id "  }; // 主键
        GridView1.DataBind();
        sqlcon.Close();
    }
}



 

前台主要代码

 

代码

前台主要代码:
                            ... ...
< asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="False"  CellPadding ="4"
                        ForeColor
="#333333"  GridLines ="None"  OnRowDeleting ="GridView1_RowDeleting"  OnRowEditing ="GridView1_RowEditing"
                        OnRowUpdating
="GridView1_RowUpdating"  OnRowCancelingEdit ="GridView1_RowCancelingEdit" >
                        
< FooterStyle  BackColor ="#990000"  Font-Bold ="True"  ForeColor ="White"   />
                        
< Columns >
                            
< asp:BoundField  DataField ="身份证号码"  HeaderText ="用户ID"  ReadOnly ="True"   />
                            
< asp:BoundField  DataField ="姓名"  HeaderText ="用户姓名"   />
                            
< asp:BoundField  DataField ="员工性别"  HeaderText =" 性别"   />
                            
< asp:BoundField  DataField ="家庭住址"  HeaderText ="家庭住址"   />
                            
< asp:CommandField  HeaderText ="选择"  ShowSelectButton ="True"   />
                            
< asp:CommandField  HeaderText ="编辑"  ShowEditButton ="True"   />
                            
< asp:CommandField  HeaderText ="删除"  ShowDeleteButton ="True"   />
                        
</ Columns >
                        
< RowStyle  ForeColor ="#000066"   />
                        
< SelectedRowStyle  BackColor ="#669999"  Font-Bold ="True"  ForeColor ="White"   />
                        
< PagerStyle  BackColor ="White"  ForeColor ="#000066"  HorizontalAlign ="Left"   />
                        
< HeaderStyle  BackColor ="#006699"  Font-Bold ="True"  ForeColor ="White"   />
                    
</ asp:GridView >

 

3.GridView正反双向排序:
效果图:点姓名各2次的排序,点其他也一样可以。
         

后台代码:

 

代码
后台代码:
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;
using  System.Data.SqlClient;
public   partial   class  Default3 : System.Web.UI.Page
{

// 清清月儿的博客http: // blog.csdn.net/21aspnet 
    SqlConnection sqlcon;
    
string  strCon  =   " Data Source=(local);Database=北风贸易;Uid=sa;Pwd= " ;
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        
if  ( ! IsPostBack)
        {
            ViewState[
" SortOrder " =   " 身份证号码 " ;
            ViewState[
" OrderDire " =   " ASC " ;
            bind();
        }
    }
    
protected   void  GridView1_Sorting( object  sender, GridViewSortEventArgs e)
    {
        
string  sPage  =  e.SortExpression;
        
if  (ViewState[ " SortOrder " ].ToString()  ==  sPage)
        {
            
if  (ViewState[ " OrderDire " ].ToString()  ==   " Desc " )
                ViewState[
" OrderDire " =   " ASC " ;
            
else
                ViewState[
" OrderDire " =   " Desc " ;
        }
        
else
        {
            ViewState[
" SortOrder " =  e.SortExpression;
        }
        bind();
    }

    
public   void  bind()
    {
        
        
string  sqlstr  =   " select top 5 * from 飞狐 工作室 " ;
        sqlcon 
=   new  SqlConnection(strCon);
        SqlDataAdapter myda 
=   new  SqlDataAdapter(sqlstr, sqlcon);
        DataSet myds 
=   new  DataSet();
        sqlcon.Open();
        myda.Fill(myds, 
" 飞狐工作室 " );
        DataView view 
=  myds.Tables[ " 飞狐工作室 " ].DefaultView;
        
string  sort  =  ( string )ViewState[ " SortOrder " +   "   "   +  ( string )ViewState[ " OrderDire " ];
        view.Sort 
=  sort;
        GridView1.DataSource 
=  view;
        GridView1.DataBind();
        sqlcon.Close();
    }
}

 

 前台主要代码:

 

代码
< asp:GridView ID = " GridView1 "  runat = " server "  AllowSorting = " True "  AutoGenerateColumns = " False "
                        CellPadding
= " 3 "  Font - Size = " 9pt "  OnSorting = " GridView1_Sorting "  BackColor = " White "  BorderColor = " #CCCCCC "  BorderStyle = " None "  BorderWidth = " 1px " >
                        
< FooterStyle BackColor = " White "  ForeColor = " #000066 "   />
                        
< Columns >
                             
< asp:BoundField DataField = " 身份证号码 "  HeaderText = " 用户ID "  SortExpression = " 身份证号码 "   />
                            
< asp:BoundField DataField = " 姓名 "  HeaderText = " 用户姓名 "  SortExpression = " 姓名 " />
                            
< asp:BoundField DataField = " 员工性别 "  HeaderText = " 性别 "  SortExpression = " 员工性别 " />
                            
< asp:BoundField DataField = " 家庭住址 "  HeaderText = " 家庭住址 "  SortExpression = " 家庭住址 " />
                                
                        
</ Columns >
                        
< RowStyle ForeColor = " #000066 "   />
                        
< SelectedRowStyle BackColor = " #669999 "  Font - Bold = " True "  ForeColor = " White "   />
                        
< PagerStyle BackColor = " White "  ForeColor = " #000066 "  HorizontalAlign = " Left "   />
                        
< HeaderStyle BackColor = " #006699 "  Font - Bold = " True "  ForeColor = " White "   />
                    
</ asp:GridView >



 

 

4.GridView 和下拉菜单DropDownList结合:

后台代码:

代码
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;
using  System.Data.SqlClient;
public   partial   class  Default4 : System.Web.UI.Page
{
    SqlConnection sqlcon;
    
string  strCon  =   " Data Source=(local); Database=北风贸易;Uid=sa;Pwd=sa " ;
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        DropDownList ddl;
        
if  ( ! IsPostBack)
        {
            
string  sqlstr  =   " select top 5 * from 飞狐 工作室 " ;
            sqlcon 
=   new  SqlConnection(strCon);
            SqlDataAdapter myda 
=   new  SqlDataAdapter(sqlstr, sqlcon);
            DataSet myds 
=   new  DataSet();
            sqlcon.Open();
            myda.Fill(myds, 
" 飞狐工作室 " );
            GridView1.DataSource 
=  myds;
            GridView1.DataBind();
            
for  ( int  i  =   0 ; i  <=  GridView1.Rows.Count  -   1 ; i ++ )
            {
                DataRowView mydrv 
=  myds.Tables[ " 飞狐工作室 " ].DefaultView[i];
                
if  (Convert.ToString(mydrv[ " 员工性别 " ]).Trim()  ==   " True " )
                {
                    ddl 
=  (DropDownList)GridView1.Rows[i].FindControl( " DropDownList1 " );
                    ddl.SelectedIndex 
=   0 ;
                }
                
if  (Convert.ToString(mydrv[ " 员工性别 " ]).Trim()  ==   " False " )
                {
                    ddl 
=  (DropDownList)GridView1.Rows[i].FindControl( " DropDownList1 " );
                    ddl.SelectedIndex 
=   1 ;
                }
            }
            sqlcon.Close();
        }
    }
    
public  SqlDataReader ddlbind()
    {
        
string  sqlstr  =   " select distinct 员工性 别 from 飞狐工作室 " ;
        sqlcon 
=   new  SqlConnection(strCon);
        SqlCommand sqlcom 
=   new  SqlCommand(sqlstr, sqlcon);
        sqlcon.Open();
        
return  sqlcom.ExecuteReader();
    }

 

 

前台主要代码

 

代码
< asp:GridView ID = " GridView1 "  runat = " server "  AllowSorting = " True "  AutoGenerateColumns = " False "
                        CellPadding
= " 3 "  Font - Size = " 9pt "   BackColor = " White "  BorderColor = " #CCCCCC "  BorderStyle = " None "  BorderWidth = " 1px " >
                        
< FooterStyle BackColor = " White "  ForeColor = " #000066 "   />
                        
< Columns >
                             
< asp:BoundField DataField = " 身份证号码 "  HeaderText = " 用户ID "  SortExpression = " 身份证号码 "   />
                            
< asp:BoundField DataField = " 姓名 "  HeaderText = " 用户姓名 "  SortExpression = " 姓名 " />
                            
< asp:TemplateField HeaderText = " 员工性别 " >
                                
< ItemTemplate >
                                    
< asp:DropDownList ID = " DropDownList1 "  runat = " server "  DataSource = ' <%# ddlbind()%> '  DataValueField = " 员工性别 "  DataTextField = " 员工性别 " >
                                    
</ asp:DropDownList >
                                
</ ItemTemplate >
                            
</ asp:TemplateField >
                            
< asp:BoundField DataField = " 家庭住址 "  HeaderText = " 家庭住址 "  SortExpression = " 家庭住址 " />
                                
                        
</ Columns >
                        
< RowStyle ForeColor = " #000066 "   />
                        
< SelectedRowStyle BackColor = " #669999 "  Font - Bold = " True "  ForeColor = " White "   />
                        
< PagerStyle BackColor = " White "  ForeColor = " #000066 "  HorizontalAlign = " Left "   />
                        
< HeaderStyle BackColor = " #006699 "  Font - Bold = " True "  ForeColor = " White "   />
                    
</ asp:GridView >

 

 

5.GridView和CheckBox结合:

 

后台代码:

 

代码
using  System;
using  System.Data;
using  System.Configuration;
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;
using  System.Data.SqlClient;

public   partial   class  Default5 : System.Web.UI.Page
{
// 清清月儿http: // blog.csdn.net/21aspnet 
    SqlConnection sqlcon;
    
string  strCon  =   " Data Source=(local);Database=北风贸易;Uid=sa;Pwd=sa " ;
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        
if  ( ! IsPostBack)
        {
            bind();
        }
    }
    
protected   void  CheckBox2_CheckedChanged( object  sender, EventArgs e)
    {
        
for  ( int  i  =   0 ; i  <=  GridView1.Rows.Count  -   1 ; i ++ )
        {
            CheckBox cbox 
=  (CheckBox)GridView1.Rows[i].FindControl( " CheckBox1 " );
            
if  (CheckBox2.Checked  ==   true )
            {
                cbox.Checked 
=   true ;
            }
            
else
            {
                cbox.Checked 
=   false ;
            }
        }
    }
    
protected   void  Button2_Click( object  sender, EventArgs e)
    {
        sqlcon 
=   new  SqlConnection(strCon);
        SqlCommand sqlcom;
        
for  ( int  i  =   0 ; i  <=  GridView1.Rows.Count  -   1 ; i ++ )
        {
            CheckBox cbox 
=  (CheckBox)GridView1.Rows[i].FindControl( " CheckBox1 " );
            
if  (cbox.Checked  ==   true )
            {

                
string  sqlstr  =   " delete from 飞狐工作 室 where 身份证号码=' "   +  GridView1.DataKeys[i].Value  +   " ' " ;
                sqlcom 
=   new  SqlCommand(sqlstr, sqlcon);
                sqlcon.Open();
                sqlcom.ExecuteNonQuery();
                sqlcon.Close();
            }
        }
        bind();
    }
    
protected   void  Button1_Click( object  sender, EventArgs e)
    {
        CheckBox2.Checked 
=   false ;
        
for  ( int  i  =   0 ; i  <=  GridView1.Rows.Count  -   1 ; i ++ )
        {
            CheckBox cbox 
=  (CheckBox)GridView1.Rows[i].FindControl( " CheckBox1 " );
            cbox.Checked 
=   false ;
        }
    }
    
public   void  bind()
    {
        
string  sqlstr  =   " select top 5 * from 飞狐工作室 " ;
        sqlcon 
=   new  SqlConnection(strCon);
        SqlDataAdapter myda 
=   new  SqlDataAdapter(sqlstr, sqlcon);
        DataSet myds 
=   new  DataSet();
        sqlcon.Open();
        myda.Fill(myds, 
" tb_Member " );
        GridView1.DataSource 
=  myds;
        GridView1.DataKeyNames 
=   new   string [] {  " 身份证号码 "  };
        GridView1.DataBind();
        sqlcon.Close();
    }
}


 

 

前台主要代码:

 

代码
< asp:GridView  ID ="GridView1"  runat ="server"  AllowSorting ="True"  AutoGenerateColumns ="False"
                        CellPadding
="3"  Font-Size ="9pt"   BackColor ="White"  BorderColor ="#CCCCCC"  BorderStyle ="None"  BorderWidth ="1px" >
                        
< FooterStyle  BackColor ="White"  ForeColor ="#000066"   />
                        
< Columns >
                             
< asp:TemplateField >
                                
< ItemTemplate >
                                    
< asp:CheckBox  ID ="CheckBox1"  runat ="server"   />
                                
</ ItemTemplate >
                            
</ asp:TemplateField >
                             
< asp:BoundField  DataField ="身份证号码"  HeaderText =" 用户ID"  SortExpression ="身份证号码"   />
                            
< asp:BoundField  DataField ="姓名"  HeaderText ="用户姓名"  SortExpression ="姓名" />
                            
                            
< asp:BoundField  DataField ="家庭住址"  HeaderText =" 家庭住址"  SortExpression ="家庭住址" />
                                
                        
</ Columns >
                        
< RowStyle  ForeColor ="#000066"   />
                        
< SelectedRowStyle  BackColor ="#669999"  Font-Bold ="True"  ForeColor ="White"   />
                        
< PagerStyle  BackColor ="White"  ForeColor ="#000066"  HorizontalAlign ="Left"   />
                        
< HeaderStyle  BackColor ="#006699"  Font-Bold ="True"  ForeColor ="White"   />
                    
</ asp:GridView >
                     
< asp:CheckBox  ID ="CheckBox2"  runat ="server"  AutoPostBack ="True"  Font-Size ="9pt"  OnCheckedChanged ="CheckBox2_CheckedChanged"
                        Text
="全选"   />
                    
< asp:Button  ID ="Button1"  runat ="server"  Font-Size ="9pt"  Text ="取消"  OnClick ="Button1_Click"   />
                    
< asp:Button  ID ="Button2"  runat ="server"  Font-Size ="9pt"  Text ="删除"  OnClick ="Button2_Click"   />

 

 

6.鼠标移到GridView某一行时改变该行的背景色方法一:

做法:
双击GridView的OnRowDataBound 事 件;
在后台的GridView1_RowDataBound()方法添加代码,最后代码如下所示:

代码
protected   void  GridView1_RowDataBound( object  sender, GridViewRowEventArgs e)
    {
        
int  i;
        
// 执行循环,保证每条数据都可以更新
         for  (i  =   0 ; i  <  GridView1.Rows.Count; i ++ )
        {
            
// 首先判断是否是数据行
             if  (e.Row.RowType  ==  DataControlRowType.DataRow)
            {
                
// 当鼠标停留时更改背景色
                e.Row.Attributes.Add( " onmouseover " " c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF' " );
                
// 当鼠标移开时还原背景色
                e.Row.Attributes.Add( " onmouseout " " this.style.backgroundColor=c " );
            }
        }

    }

 


 

前台代码:

代码
< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > 实现鼠标划过改变GridView的行背景色 清清月儿 http://blog.csdn.net/21aspnet  </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
        
< asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="False"  DataKeyNames ="身份证号码"
            DataSourceID
="SqlDataSource1"  AllowSorting ="True"  BackColor ="White"  BorderColor ="#CCCCCC"  BorderStyle ="None"  BorderWidth ="1px"  CellPadding ="3"  Font-Size ="12px"  OnRowDataBound ="GridView1_RowDataBound" >
            
< Columns >
                
< asp:BoundField  DataField ="身份证号码"  HeaderText =" 身份证号码"  ReadOnly ="True"  SortExpression ="身份证号码"   />
                
< asp:BoundField  DataField ="姓名"  HeaderText ="姓名"  SortExpression ="姓 名"   />
                
< asp:BoundField  DataField ="家庭住址"  HeaderText ="家庭住址"  SortExpression ="家庭住址"   />
                
< asp:BoundField  DataField ="邮政编码"  HeaderText ="邮政编码"  SortExpression ="邮政编码"   />
            
</ Columns >
            
< FooterStyle  BackColor ="White"  ForeColor ="#000066"   />
            
< RowStyle  ForeColor ="#000066"   />
            
< SelectedRowStyle  BackColor ="#669999"  Font-Bold ="True"  ForeColor ="White"   />
            
< PagerStyle  BackColor ="White"  ForeColor ="#000066"  HorizontalAlign ="Left"   />
            
< HeaderStyle  BackColor ="#006699"  Font-Bold ="True"  ForeColor ="White"   />
        
</ asp:GridView >
        
< asp:SqlDataSource  ID ="SqlDataSource1"  runat ="server"  ConnectionString ="<%$ ConnectionStrings:北风贸易ConnectionString1 %>"
            SelectCommand
="SELECT top 5 [身份证号码], [姓名], [员工性别], [家 庭住址], [邮政编码] FROM [飞狐工作室]"  DataSourceMode ="DataReader" ></ asp:SqlDataSource >
    
    
</ div >
    
</ form >
</ body >
</ html >

 

 

 

7.鼠标移到GridView某一行时改变该行的背景色方法二:

 

 

做法:和上面的一样就是代码不同

代码
protected   void  GridView1_RowDataBound( object  sender, GridViewRowEventArgs e)
    {
        
// int i;
         /// /执行循 环,保证每条数据都可以更新
         // for (i = 0; i < GridView1.Rows.Count; i++)
        
// {
        
//      // 首先判断是否是数据行
        
//     if (e.Row.RowType == DataControlRowType.DataRow)
        
//     {
        
//          // 当鼠标停留时更改背 景色
        
//         e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");
        
//          // 当鼠标移开时还原背景色
        
//         e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
        
//     }
        
// }
        
// 如果是绑定数据行 
         if  (e.Row.RowType  ==  DataControlRowType.DataRow)
        {
            
// 鼠标经过时,行背景色变 
            e.Row.Attributes.Add( " onmouseover " " this.style.backgroundColor='#E6F5FA' " );
            
// 鼠标移出时,行背景色变 
            e.Row.Attributes.Add( " onmouseout " " this.style.backgroundColor='#FFFFFF' " );
        }

    }

 

 

8.GridView实现删除时弹出确认对话框:

 

实现方法:
双 击GridView的OnRowDataBound 事件;
在后台的 GridView1_RowDataBound()方法添加代码,最后代码如下所示:

 

代码
protected   void  GridView1_RowDataBound( object  sender, GridViewRowEventArgs e)
    {
        
// 如果是绑定数据行 
         if  (e.Row.RowType  ==  DataControlRowType.DataRow)
        {
             
if  (e.Row.RowState  ==  DataControlRowState.Normal  ||  e.Row.RowState  ==  DataControlRowState.Alternate)
            {
                ((LinkButton)e.Row.Cells[
6 ].Controls[ 0 ]).Attributes.Add( " onclick " " javascript:return confirm(' 你确认要删除:/ ""  + e.Row.Cells[1].Text +  " / " 吗?') " );
            }
        } 

    }

 

 

9.GridView 实现自动编号:

实现方法:
双 击GridView的OnRowDataBound 事件;
在后台的 GridView1_RowDataBound()方法添加代码,最后代码如下所示:

 

代码
protected   void  GridView1_RowDataBound( object  sender, GridViewRowEventArgs e)
    {
        
// 如果是绑定数据行  // 清清月儿http: // blog.csdn.net/21aspnet 
         if  (e.Row.RowType  ==  DataControlRowType.DataRow)
        {
            
/// /鼠标经过时,行背景色变 
             // e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F5FA'");
             /// /鼠标移出时,行背景色变 
             // e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");

            
/// /当有编辑列时,避免出错,要加 的RowState判断 
             // if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
            
// {
            
//     ((LinkButton)e.Row.Cells[6].Controls[0]).Attributes.Add("onclick", "javascript:return confirm(' 你确认要删除:/"" + e.Row.Cells[1].Text + "/"吗?')");
            
// }

        }
        
if  (e.Row.RowIndex  !=   - 1 )
        {
            
int  id  =  e.Row.RowIndex  +   1 ;
            e.Row.Cells[
0 ].Text  =  id.ToString();
        }

    }


 

 

注意这时最好把前台的第一列的表头该 为“编号”,因为以前的第一列被“吃掉”了。

 

代码
< asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="False"  CellPadding ="3"  OnRowDeleting ="GridView1_RowDeleting"  OnRowEditing ="GridView1_RowEditing"
                        OnRowUpdating
="GridView1_RowUpdating"  OnRowCancelingEdit ="GridView1_RowCancelingEdit"  BackColor ="White"  BorderColor ="#CCCCCC"  BorderStyle ="None"  BorderWidth ="1px"  Font-Size ="12px"  OnRowDataBound ="GridView1_RowDataBound" >
                        
< FooterStyle  BackColor ="White"  ForeColor ="#000066"   />
                        
< Columns >
                            
< asp:BoundField  DataField ="身份证号码"  HeaderText ="编号"  ReadOnly ="True"   />
                            
< asp:BoundField  DataField ="姓名"  HeaderText ="用户姓名"   />
                            
< asp:BoundField  DataField ="员工性别"  HeaderText ="性别"   />
                            
< asp:BoundField  DataField ="家庭住址"  HeaderText ="家庭住址"   />
                            
< asp:CommandField  HeaderText ="选择"  ShowSelectButton ="True"   />
                            
< asp:CommandField  HeaderText ="编辑"  ShowEditButton ="True"   />
                            
< asp:CommandField  HeaderText ="删除"  ShowDeleteButton ="True"   />
                        
</ Columns >
                        
< RowStyle  ForeColor ="#000066"   />
                        
< SelectedRowStyle  BackColor ="#669999"  Font-Bold ="True"  ForeColor ="White"   />
                        
< PagerStyle  BackColor ="White"  ForeColor ="#000066"  HorizontalAlign ="Left"   />
                        
< HeaderStyle  BackColor ="#006699"  Font-Bold ="True"  ForeColor ="White"   />
                    
</ asp:GridView >

 

 

10.GridView 实现自定义时间货币等字符串格式:

 

图1-未格式化前

图2-格式化后

 

解决方法:
在asp.net 2.0中,如果要在绑定列中显示比如日期格式等,如果用下面的方法是显示不了的

 

< asp  :BoundField DataField ="CreationDate"  
DataFormatString
="{0:M-dd-yyyy}"  
HeaderText
="CreationDate"   />

 

 

主要是由 于htmlencode属性默认设置为true,已防止XSS攻击,安全起见而用的,所以,可以有以下两种方法解决

1、

 

代码
< asp  :GridView ID ="GridView1"  runat ="server" >
< columns >
< asp  :BoundField DataField ="CreationDate"  
DataFormatString
="{0:M-dd-yyyy}"  
HtmlEncode
="false"
HeaderText
="CreationDate"   />
</ columns >
</ asp >

将 htmlencode设置为false即可

另外的解 决方法为,使用模版列

 

 

代码
< asp  :GridView ID ="GridView3"  runat ="server"   >
< columns >
< asp  :TemplateField HeaderText ="CreationDate"   >
< edititemtemplate >
< asp  :Label ID ="Label1"  runat ="server"  
Text
='<%#  Eval("CreationDate", "{0:M-dd-yyyy}") % > '>
</ asp >
</ edititemtemplate >
< itemtemplate >
< asp  :Label ID ="Label1"  runat ="server"  
Text
=’<%#  Bind("CreationDate", "{0:M-dd-yyyy}") % > '>
</ asp >
</ itemtemplate >
</ asp >
</ columns >
</ asp >

 

前台代码:

 

代码
< asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="False"  DataKeyNames ="身份证号码"
            DataSourceID
="SqlDataSource1"  AllowSorting ="True"  BackColor ="White"  BorderColor ="#CCCCCC"  BorderStyle ="None"  BorderWidth ="1px"  CellPadding ="3"  Font-Size ="12px"  OnRowDataBound ="GridView1_RowDataBound" >
            
< Columns >
                
< asp:BoundField  DataField ="身份证号码"  HeaderText ="身份证号码"  ReadOnly ="True"  SortExpression ="身份证号码"   />
                
< asp:BoundField  DataField ="姓名"  HeaderText ="姓名"  SortExpression ="姓名"   />
                
< asp:BoundField  DataField ="邮政编码"  HeaderText ="邮政编码"  SortExpression ="邮政编码"   />
                
< asp:BoundField  DataField ="出生日期"  HeaderText ="出生日期"  SortExpression ="出生日期"   />
                
< asp:BoundField  DataField ="起薪"  HeaderText ="起薪"  SortExpression ="起薪"   />
            
</ Columns >
            
< FooterStyle  BackColor ="White"  ForeColor ="#000066"   />
            
< RowStyle  ForeColor ="#000066"   />
            
< SelectedRowStyle  BackColor ="#669999"  Font-Bold ="True"  ForeColor ="White"   />
            
< PagerStyle  BackColor ="White"  ForeColor ="#000066"  HorizontalAlign ="Left"   />
            
< HeaderStyle  BackColor ="#006699"  Font-Bold ="True"  ForeColor ="White"   />
        
</ asp:GridView >
        
< asp:SqlDataSource  ID ="SqlDataSource1"  runat ="server"  ConnectionString ="<%$ ConnectionStrings:北风贸易ConnectionString1 %>"
            SelectCommand
="SELECT top 5 [出生日期], [起薪], [身份证号码], [姓名], [家庭住址], [邮政编 码] FROM [飞狐工作室]"  DataSourceMode ="DataReader" ></ asp:SqlDataSource >

 

 

 

附录-常用格式化公 式:
{0:C}  货币;
{0:D4}由0填充的4个字符宽的字段中显示整数;
{0:000.0}四舍五入小 数点保留第几位有效数字;
{0:N2}小数点保留2位有效数字;{0:N2}%   小数点保留2位有效数字加百分号;
{0:D}长日 期;{0:d}短日期;{0:yy-MM-dd}   例如07-3-25;;{0:yyyy-MM-dd}  例如2007-3-25


 

11.GridView 实现用“...”代替超长字符串:

 

解决方法:数据绑定 后过滤每一行即可

代码
for  ( int  i  =   0 ; i  <=  GridView1.Rows.Count  -   1 ; i ++ )
        {
            DataRowView mydrv;
            
string  gIntro;
            
if  (GridView1.PageIndex  ==   0 )
            {
                mydrv 
=  myds.Tables[ " 飞狐工作室 " ].DefaultView[i]; // 表名
                gIntro  =  Convert.ToString(mydrv[ " 家庭住址 " ]); // 所要处理的字段
                GridView1.Rows[i].Cells[ 3 ].Text  =  SubStr(gIntro,  2 );
            }
            
else
            {
                mydrv 
=  myds.Tables[ " 飞狐工作室 " ].DefaultView[i  +  ( 5   *  GridView1.PageIndex)];
                gIntro 
=  Convert.ToString(mydrv[ " 家庭住址 " ]);
                GridView1.Rows[i].Cells[
3 ].Text  =  SubStr(gIntro,  2 );
            }
        } 

 

调用的方法:

代码
public   string  SubStr( string  sString,  int  nLeng)
    {
        
if  (sString.Length  <=  nLeng)
        {
            
return  sString;
        }
        
string  sNewStr  =  sString.Substring( 0 , nLeng);
        sNewStr 
=  sNewStr  +   " ... " ;
        
return  sNewStr;
    }

 


 

后台全部代码:

 

代码
using  System;
using  System.Data;
using  System.Configuration;
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;
using  System.Data.SqlClient;

public   partial   class  _Default : System.Web.UI.Page 
{
    SqlConnection sqlcon;
    SqlCommand sqlcom;
    
string  strCon  =   " Data Source=(local); Database=北风贸易;Uid=sa;Pwd=sa " ;
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        
if  ( ! IsPostBack)
        {
            ViewState[
" SortOrder " =   " 身份证号码 " ;
            ViewState[
" OrderDire " =   " ASC " ;
            bind();
        }
    }
    
protected   void  GridView1_RowEditing( object  sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex 
=  e.NewEditIndex;
        bind();
    }
    
protected   void  GridView1_RowDeleting( object  sender, GridViewDeleteEventArgs e)
    {
        
string  sqlstr  =   " delete from 飞狐工作室 where 身份 证号码=' "   +  GridView1.DataKeys[e.RowIndex].Value.ToString()  +   " ' " ;
        sqlcon 
=   new  SqlConnection(strCon);
        sqlcom 
=   new  SqlCommand(sqlstr,sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        bind();
    }
    
protected   void  GridView1_RowUpdating( object  sender, GridViewUpdateEventArgs e)
    {
        sqlcon 
=   new  SqlConnection(strCon);
        
string  sqlstr  =   " update 飞狐工作室 set 姓名=' "
            
+  ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 1 ].Controls[ 0 ])).Text.ToString().Trim()  +   " ',家庭住址=' "
            
+  ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 3 ].Controls[ 0 ])).Text.ToString().Trim()  +   " ' where 身份证号码=' "  
            
+  GridView1.DataKeys[e.RowIndex].Value.ToString()  +   " ' " ;
        sqlcom
= new  SqlCommand(sqlstr,sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        GridView1.EditIndex 
=   - 1 ;
        bind();
    }
    
protected   void  GridView1_RowCancelingEdit( object  sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex 
=   - 1 ;
        bind();
    }
    
public   void  bind()
    {
        
string  sqlstr  =   " select top 5 * from 飞狐工作室 " ;
        sqlcon 
=   new  SqlConnection(strCon);
        SqlDataAdapter myda 
=   new  SqlDataAdapter(sqlstr, sqlcon);
        DataSet myds 
=   new  DataSet();
        sqlcon.Open();
        myda.Fill(myds, 
" 飞狐工作室 " );
        GridView1.DataSource 
=  myds;
        GridView1.DataKeyNames 
=   new   string [] {  " 身份证号码 "  };
        GridView1.DataBind();
        
for  ( int  i  =   0 ; i  <=  GridView1.Rows.Count  -   1 ; i ++ )
        {
            DataRowView mydrv;
            
string  gIntro;
            
if  (GridView1.PageIndex  ==   0 )
            {
                mydrv 
=  myds.Tables[ " 飞狐工作室 " ].DefaultView[i];
                gIntro 
=  Convert.ToString(mydrv[ " 家庭住址 " ]);
                GridView1.Rows[i].Cells[
3 ].Text  =  SubStr(gIntro,  2 );
            }
            
else
            {
                mydrv 
=  myds.Tables[ " 飞狐工作室 " ].DefaultView[i  +  ( 5   *  GridView1.PageIndex)];
                gIntro 
=  Convert.ToString(mydrv[ " 家庭住址 " ]);
                GridView1.Rows[i].Cells[
3 ].Text  =  SubStr(gIntro,  2 );
            }
        }
        
        sqlcon.Close();
    }
    
public   string  SubStr( string  sString,  int  nLeng)
    {
        
if  (sString.Length  <=  nLeng)
        {
            
return  sString;
        }
        
string  sNewStr  =  sString.Substring( 0 , nLeng);
        sNewStr 
=  sNewStr  +   " ... " ;
        
return  sNewStr;
    }
    
protected   void  GridView1_RowDataBound( object  sender, GridViewRowEventArgs e)
    {
        
// 如果是绑定数据行 
         if  (e.Row.RowType  ==  DataControlRowType.DataRow)
        {
            
/// /鼠标经过时,行背景色变 
             // e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F5FA'");
             /// /鼠标移出时,行背景色变 
             // e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");

            
/// /当有编辑列时,避免出错,要加 的RowState判断 
             // if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
            
// {
            
//     ((LinkButton)e.Row.Cells[6].Controls[0]).Attributes.Add("onclick", "javascript:return confirm(' 你确认要删除:/"" + e.Row.Cells[1].Text + "/"吗?')");
            
// }

        }
        
if  (e.Row.RowIndex  !=   - 1 )
        {
            
int  id  =  e.Row.RowIndex  +   1 ;
            e.Row.Cells[
0 ].Text  =  id.ToString();
        }

    }
}

 

 

11.GridView 一般换行与强制换行:

首先设 置<asp:BoundField DataField="家庭住址" HeaderText="家庭住址"  ItemStyle-Width="100" />
gridview里有一列绑定的数据很长,显示的时候在一行里面显示,页面拉得很宽。
原 因是连续英文段为一个整体导致的,在RowDataBound中添加上了一句e.Row.Cells[2].Style.Add("word- break", "break-all")就可以。

如果要给 所有的列增加此属性:

 

代码
protected   void  Page_Load( object  sender, EventArgs e)
    {
        
// 正常换行
        GridView1.Attributes.Add( " style " " word-break:keep-all;word-wrap:normal " );
        
// 下面这行是自动换行
        GridView1.Attributes.Add( " style " " word-break:break-all;word-wrap:break-word " );
        
if  ( ! IsPostBack)
        {
             bind();
// 调用数据绑定即可
        }
    }

总之 : 善用CSS的word-break:break-all;word-wrap:break-word 属 性即可,这个属性是通用的对于顽固的南换行问题都可以解决,不局限 于GridView。

12.GridView 显示隐藏某一列:

本方案为月儿 独创 ,不同于网上其他方式,我觉得用一个CheckBox更人性化 , 这样可以隐藏不必要的列,让用户自己选择需要出现的列,在处理多列时这是一个很好的解决方案!

效 果图:
图1-开始

图2-点击显示的 CheckBox后

解决方案

 

代码
public   void  bind()
    {
        
string  sqlstr  =   " select top 5 * from 飞狐工作室 " ;
        sqlcon 
=   new  SqlConnection(strCon);
        SqlDataAdapter myda 
=   new  SqlDataAdapter(sqlstr, sqlcon);
        DataSet myds 
=   new  DataSet();
        sqlcon.Open();
        myda.Fill(myds, 
" 飞狐工作室 " );
        GridView1.DataSource 
=  myds;
        GridView1.DataKeyNames 
=   new   string [] {  " 身份证号码 "  };
        GridView1.DataBind();
        sqlcon.Close();
        GridView1.Columns[
3 ].Visible  =   false ; // 一开始隐藏
        CheckBox1.Checked  =   false ; // 如果不这样后面的代码会把他True
    }

 

双击CheckBox1,在 CheckedChanged方法里写上代码,最后代码如下:

 

代码
protected   void  CheckBox1_CheckedChanged( object  sender, EventArgs e)
    {
         GridView1.Columns[
3 ].Visible =!  GridView1.Columns[ 3 ].Visible;
         Response.Write(
" GridView1的第4列现在的显示隐藏状态是: " + GridView1.Columns[ 3 ].Visible.ToString());
    }

 

 

注 意:CheckBox1的AutoPostBack要True

后 台全部代码如下:

 

代码
using  System;
using  System.Data;
using  System.Configuration;
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;
using  System.Data.SqlClient;

public   partial   class  _Default : System.Web.UI.Page 
{
    SqlConnection sqlcon;
    SqlCommand sqlcom; 
    
string  strCon  =   " Data Source=(local); Database=北风贸易;Uid=sa;Pwd=sa " ;
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        
if  ( ! IsPostBack)
        {
            ViewState[
" SortOrder " =   " 身份证号码 " ;
            ViewState[
" OrderDire " =   " ASC " ;
            bind();
                   }
    }
    
protected   void  GridView1_RowEditing( object  sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex 
=  e.NewEditIndex;
        bind();
    }
    
protected   void  GridView1_RowDeleting( object  sender, GridViewDeleteEventArgs e)
    {
        
string  sqlstr  =   " delete from 飞狐工作室 where 身份 证号码=' "   +  GridView1.DataKeys[e.RowIndex].Value.ToString()  +   " ' " ;
        sqlcon 
=   new  SqlConnection(strCon);
        sqlcom 
=   new  SqlCommand(sqlstr,sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        bind();
    }
    
protected   void  GridView1_RowUpdating( object  sender, GridViewUpdateEventArgs e)
    {
        sqlcon 
=   new  SqlConnection(strCon);
        
string  sqlstr  =   " update 飞狐工作室 set 姓名=' "
            
+  ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 1 ].Controls[ 0 ])).Text.ToString().Trim()  +   " ',家庭住址=' "
            
+  ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 3 ].Controls[ 0 ])).Text.ToString().Trim()  +   " ' where 身份证号码=' "  
            
+  GridView1.DataKeys[e.RowIndex].Value.ToString()  +   " ' " ;
        sqlcom
= new  SqlCommand(sqlstr,sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        GridView1.EditIndex 
=   - 1 ;
        bind();
    }
    
protected   void  GridView1_RowCancelingEdit( object  sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex 
=   - 1 ;
        bind();
    }
    
public   void  bind()
    {
        
string  sqlstr  =   " select top 5 * from 飞狐工作室 " ;
        sqlcon 
=   new  SqlConnection(strCon);
        SqlDataAdapter myda 
=   new  SqlDataAdapter(sqlstr, sqlcon);
        DataSet myds 
=   new  DataSet();
        sqlcon.Open();
        myda.Fill(myds, 
" 飞狐工作室 " );
        GridView1.DataSource 
=  myds;
        GridView1.DataKeyNames 
=   new   string [] {  " 身份证号码 "  };
        GridView1.DataBind();
        sqlcon.Close();
        GridView1.Columns[
3 ].Visible  =   false ;
        CheckBox1.Checked 
=   false ;
    }
    
protected   void  CheckBox1_CheckedChanged( object  sender, EventArgs e)
    {
         GridView1.Columns[
3 ].Visible =!  GridView1.Columns[ 3 ].Visible;
         Response.Write(
" GridView1的第4列现在的显示隐藏状态是: " + GridView1.Columns[ 3 ].Visible.ToString());
    }
}

 

前台代码如下:

 

代码
<! 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 > GridView显示隐藏列 清清月儿http://blog.csdn.net/21aspnet  </ title >
</ head >
< body  style ="font-size=12px" >
    
< form  id ="form1"  runat ="server" >
    
< div >
                   
< asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="False"  CellPadding ="3"  OnRowDeleting ="GridView1_RowDeleting"  OnRowEditing ="GridView1_RowEditing"
                        OnRowUpdating
="GridView1_RowUpdating"  OnRowCancelingEdit ="GridView1_RowCancelingEdit"  BackColor ="White"  BorderColor ="#CCCCCC"  BorderStyle ="None"  BorderWidth ="1px"  Font-Size ="12px"    >
                        
< FooterStyle  BackColor ="White"  ForeColor ="#000066"   />
                        
< Columns >
                            
< asp:BoundField  DataField ="身份证号码"  HeaderText ="编号"  ReadOnly ="True"   />
                            
< asp:BoundField  DataField ="姓名"  HeaderText ="用户姓名"   />
                            
< asp:BoundField  DataField ="邮政编码"  HeaderText ="邮政编码"  SortExpression ="邮政编码"   />
                            
< asp:BoundField  DataField ="家庭住址"  HeaderText ="家庭住址"    />
                            
< asp:CommandField  HeaderText ="选择"  ShowSelectButton ="True"   />
                            
< asp:CommandField  HeaderText ="编辑"  ShowEditButton ="True"   />
                            
< asp:CommandField  HeaderText ="删除"  ShowDeleteButton ="True"   />
                        
</ Columns >
                        
< RowStyle  ForeColor ="#000066"   />
                        
< SelectedRowStyle  BackColor ="#669999"  Font-Bold ="True"  ForeColor ="White"   />
                        
< PagerStyle  BackColor ="White"  ForeColor ="#000066"  HorizontalAlign ="Left"   />
                        
< HeaderStyle  BackColor ="#006699"  Font-Bold ="True"  ForeColor ="White"   />
                    
</ asp:GridView >
        
< asp:CheckBox  ID ="CheckBox1"  runat ="server"  AutoPostBack ="True"  Font-Size ="12px"
            OnCheckedChanged
="CheckBox1_CheckedChanged"  Text ="显示隐藏家庭住址"   /></ div >
    
</ form >
</ body >
</ html >

 

13.GridView 弹出新页面/弹出制定大小位置新窗口:

方案一:简单的方法,新窗口不固定大 小

 

代码
< asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="False"  CellPadding ="3"  OnRowDeleting ="GridView1_RowDeleting"  OnRowEditing ="GridView1_RowEditing"
                        OnRowUpdating
="GridView1_RowUpdating"  OnRowCancelingEdit ="GridView1_RowCancelingEdit"  BackColor ="White"  BorderColor ="#CCCCCC"  BorderStyle ="None"  BorderWidth ="1px"  Font-Size ="12px"    >
                        
< FooterStyle  BackColor ="White"  ForeColor ="#000066"   />
                        
< Columns >
                            
< asp:BoundField  DataField ="身份证号码"  HeaderText ="编号"  ReadOnly ="True"   />
                            
< asp:BoundField  DataField ="邮政编码"  HeaderText ="邮政编码"  SortExpression ="邮政编码"   />
                            
< asp:BoundField  DataField ="家庭住址"  HeaderText ="家庭住址"    />
                            
< asp:HyperLinkField  HeaderText ="姓名"  Text ="姓名"  DataNavigateUrlFields ="姓 名"  DataNavigateUrlFormatString ="Default6.aspx?GoodsID={0}"  Target ="mainframe"  NavigateUrl ="~/Default6.aspx"  DataTextField ="姓名"   >
                    
</ asp:HyperLinkField >
                            
< asp:CommandField  HeaderText ="选择"  ShowSelectButton ="True"   />
                            
< asp:CommandField  HeaderText ="编辑"  ShowEditButton ="True"   />
                            
< asp:CommandField  HeaderText ="删除"  ShowDeleteButton ="True"   />
                        
</ Columns >
                        
< RowStyle  ForeColor ="#000066"   />
                        
< SelectedRowStyle  BackColor ="#669999"  Font-Bold ="True"  ForeColor ="White"   />
                        
< PagerStyle  BackColor ="White"  ForeColor ="#000066"  HorizontalAlign ="Left"   />
                        
< HeaderStyle  BackColor ="#006699"  Font-Bold ="True"  ForeColor ="White"   />
                    
</ asp:GridView >

 

 

DataNavigateUrlFields 是链接的字段名,DataNavigateUrlFormatString是路径。

方案二:精确控制弹出窗口大小位置

 

代码
< asp:HyperLinkColumn  DataNavigateUrlField ="EmployeeID"  DataNavigateUrlFormatString ="javascript:varwin=window.open('detail.aspx?ID={0}',null,'width=300,height=200');window.Close();"
       DataTextField
="LastName"  HeaderText ="LastName" ></ asp:HyperLinkColumn >

 

使用的是结合javascript的 window.open方法,关于window.open的参数网上有很多帖子,本站也有许多参考
弹出窗口大全 http://blog.csdn.net/21aspnet/archive/2004/10/25/150231.aspx    即可!

 

清清月儿 的文章太长了这篇我先写到这里,明天写一下面的几个,然后再说说自己的解决方案,因 为这里没有用Sqlhepler类,我的方法里都 改成了Sqlhelper类来实现

先提几个吧:

 

1,http://www.cnblogs.com/sufei/archive/2009/06/10/1500254.html  这 里是怎么实现确认对话框的

2. 实现Gridview隐藏列的 时候我是直接用Gridview的属性来完成的,代码如下

http://www.cnblogs.com/sufei/archive/2009/03/13/1486007.html

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值