}
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(\ ////鼠标移出时,行背景色变
//e.Row.Attributes.Add(\
////当有编辑列时,避免出错,要加的RowState判断
//if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate) //{
// ((LinkButton)e.Row.Cells[6].Controls[0]).Attributes.Add(\\你确认要删除:\\\吗?')\ //}
}
if (e.Row.RowIndex != -1) {
int id = e.Row.RowIndex + 1;
e.Row.Cells[0].Text = id.ToString(); }
} }
11.GridView一般换行与强制换行:
效果图:
首先设置
gridview里有一列绑定的数据很长,显示的时候在一行里面显示,页面拉得很宽。
原因是连续英文段为一个整体导致的,在RowDataBound中添加上了一句e.Row.Cells[2].Style.Add(\就可以。
如果要给所有的列增加此属性:
protected void Page_Load(object sender, EventArgs e) {
//正常换行
GridView1.Attributes.Add(\ //下面这行是自动换行
GridView1.Attributes.Add(\ if (!IsPostBack) {
bind();//调用数据绑定即可 } }
总之:善用CSS的word-break:break-all;word-wrap:break-word属性即可,这个属性是通用的对于顽固的南换行问题都可以解决,不局限于GridView。
12.GridView显示隐藏某一列:
本方案为月儿独创,不同于网上其他方式,我觉得用一个CheckBox更人性化,这样可以隐藏不必要的列,让用户自己选择需要出现的列,在处理多列时这是一个很好的解决方案!
效果图: 图1-开始
图2-点击显示的CheckBox后
解决方案:
public void bind() {
string sqlstr = \飞狐工作室\ 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(\的第4列现在的显示隐藏状态是:\ }
注意: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 = \北风贸易;Uid=sa;Pwd=sa\ protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
ViewState[\身份证号码\ ViewState[\ bind(); } }
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) {
GridView1.EditIndex = e.NewEditIndex; bind(); }
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) {
string sqlstr = \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 = \飞狐工作室 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 = \飞狐工作室\ 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(\的第4列现在的显示隐藏状态是:\ } }
前台代码: