11
.GridView一般换行与强制换行: 效果图:

首先设置
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());
 }
}
前台代码:
 
 GridView显示隐藏列 清清月儿http://blog.csdn.net/21aspnet    13.GridView弹出新页面/弹出制定大小位置新窗口: 
效果图:
 
 
方案一:简单的方法,新窗口不固定大小
  OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" Font-Size="12px" >
 
 
 
 
 
  DataNavigateUrlFields="姓名" DataNavigateUrlFormatString="Default6.aspx?GoodsID={0}" Target="mainframe" NavigateUrl="~/Default6.aspx" DataTextField="姓名" >
 
 
 
 
 
 
 
 
 
 
DataNavigateUrlFields是链接的字段名,DataNavigateUrlFormatString是路径。 
方案二:精确控制弹出窗口大小位置
 DataTextField="LastName" HeaderText="LastName"> 
使用的是结合javascript的window.open方法,关于window.open的参数网上有很多帖子,本站也有许多参考
弹出窗口大全 http://blog.csdn.net/21aspnet/archive/2004/10/25/150231.aspx 即可! 
 14.GridView固定表头(不用javascript只用CSS!,很好用): 
效果图:
 
 
代码:
 
 GridView固定表头 清清月儿http://blog.csdn.net/21aspnet   
  用法:CSS设如上的样式,HeaderStyle加CssClass="Freezing,套住GridView的Div设置高度宽度 
 
作者:清清月儿 http://blog.csdn.net/21aspnet