佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 靈活掌握asp.net中g(shù)ridview控件的多種使用方法(下)

靈活掌握asp.net中g(shù)ridview控件的多種使用方法(下)

熱門標(biāo)簽:科大訊飛語(yǔ)音識(shí)別系統(tǒng) 網(wǎng)站排名優(yōu)化 服務(wù)器配置 地方門戶網(wǎng)站 阿里云 硅谷的囚徒呼叫中心 集中運(yùn)營(yíng)管理辦法 百度競(jìng)價(jià)排名

繼續(xù)上篇文章的學(xué)習(xí)《靈活掌握asp.net中g(shù)ridview控件的多種使用方法(上)》,在此基礎(chǔ)上鞏固gridview控件的操作使用,更上一層樓。

11.GridView實(shí)現(xiàn)用“...”代替超長(zhǎng)字符串:
效果圖:

 

解決方法:數(shù)據(jù)綁定后過(guò)濾每一行即可

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);
}
}

調(diào)用的方法:

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

后臺(tái)全部代碼:

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=北風(fēng)貿(mào)易;Uid=sa;Pwd=sa";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["SortOrder"] = "身份證號(hào)碼";
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 身份證號(hào)碼='" + 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 身份證號(hào)碼='"
+ 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[] { "身份證號(hào)碼" };
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)
{
//如果是綁定數(shù)據(jù)行
if (e.Row.RowType == DataControlRowType.DataRow)
{
////鼠標(biāo)經(jīng)過(guò)時(shí),行背景色變
//e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F5FA'");
////鼠標(biāo)移出時(shí),行背景色變
//e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");

////當(dāng)有編輯列時(shí),避免出錯(cuò),要加的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('你確認(rèn)要?jiǎng)h除:/"" + e.Row.Cells[1].Text + "/"嗎?')");
//}

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

}
}

12.GridView一般換行與強(qiáng)制換行:

效果圖:

 

首先設(shè)置asp:BoundField DataField="家庭住址" HeaderText="家庭住址" ItemStyle-Width="100" />
gridview里有一列綁定的數(shù)據(jù)很長(zhǎng),顯示的時(shí)候在一行里面顯示,頁(yè)面拉得很寬。
原因是連續(xù)英文段為一個(gè)整體導(dǎo)致的,在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");
//下面這行是自動(dòng)換行
GridView1.Attributes.Add("style", "word-break:break-all;word-wrap:break-word");
if (!IsPostBack)
{
bind();//調(diào)用數(shù)據(jù)綁定即可
}
}

總之:善用CSS的word-break:break-all;word-wrap:break-word屬性即可,這個(gè)屬性是通用的對(duì)于頑固的南換行問(wèn)題都可以解決,不局限于GridView。

13.GridView顯示隱藏某一列:
本方案為月兒獨(dú)創(chuàng),不同于網(wǎng)上其他方式,我覺(jué)得用一個(gè)CheckBox更人性化,這樣可以隱藏不必要的列,讓用戶自己選擇需要出現(xiàn)的列,在處理多列時(shí)這是一個(gè)很好的解決方案!

效果圖:

圖1-開(kāi)始 

圖2-點(diǎn)擊顯示的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[] { "身份證號(hào)碼" };
GridView1.DataBind();
sqlcon.Close();
GridView1.Columns[3].Visible = false;//一開(kāi)始隱藏
CheckBox1.Checked = false;//如果不這樣后面的代碼會(huì)把他True
}

雙擊CheckBox1,在CheckedChanged方法里寫(xiě)上代碼,最后代碼如下:
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
GridView1.Columns[3].Visible=! GridView1.Columns[3].Visible;
Response.Write("GridView1的第4列現(xiàn)在的顯示隱藏狀態(tài)是:"+GridView1.Columns[3].Visible.ToString());
}

注意:CheckBox1的AutoPostBack要True!

后臺(tái)全部代碼如下:

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=北風(fēng)貿(mào)易;Uid=sa;Pwd=sa";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["SortOrder"] = "身份證號(hào)碼";
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 身份證號(hào)碼='" + 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 身份證號(hào)碼='"
+ 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[] { "身份證號(hào)碼" };
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列現(xiàn)在的顯示隱藏狀態(tài)是:"+GridView1.Columns[3].Visible.ToString());
}
}

前臺(tái)代碼:

!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顯示隱藏列 /title>
/head>
body style="font-size=12px">
form id="form1" runat="server">
div>
asp:GridView ID="GridView1" runat="server" 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="身份證號(hào)碼" HeaderText="編號(hào)" 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" Font-Size="12px"
OnCheckedChanged="CheckBox1_CheckedChanged" Text="顯示隱藏家庭住址" />/div>
/form>
/body>
/html>

14.GridView彈出新頁(yè)面/彈出制定大小位置新窗口:

效果圖:

方案一:簡(jiǎn)單的方法,新窗口不固定大小

asp:GridView ID="GridView1" runat="server" 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="身份證號(hào)碼" HeaderText="編號(hào)" 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>

15.GridView固定表頭(不用javascript只用CSS!,很好用):

效果圖:

代碼:

!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固定表頭/title>
style>
.Freezing
{

position:relative ;
table-layout:fixed;
top:expression_r(this.offsetParent.scrollTop);
z-index: 10;
}

.Freezing th{text-overflow:ellipsis;overflow:hidden;white-space: nowrap;padding:2px;}
/style>
/head>
body style="font-size=12px">
form id="form1" runat="server">
div style="overflow-y: scroll; height: 200px;width:300px" id="dvBody">
asp:GridView ID="GridView1" runat="server" 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" OnRowCreated="GridView1_RowCreated" >
FooterStyle BackColor="White" ForeColor="#000066" />
Columns>
asp:BoundField DataField="身份證號(hào)碼" HeaderText="編號(hào)" ReadOnly="True" />
asp:BoundField DataField="郵政編碼" HeaderText="郵政編碼" SortExpression="郵政編碼" />
asp:BoundField DataField="家庭住址" HeaderText="家庭住址" />
asp:BoundField DataField="姓名" HeaderText="姓名" />

/Columns>
RowStyle ForeColor="#000066" />
SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" CssClass="ms-formlabel DataGridFixedHeader"/>
HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" CssClass="Freezing"/>
/asp:GridView>
/div>

/form>
/body>
/html>

用法:CSS設(shè)如上的樣式,HeaderStyle加CssClass="Freezing,套住GridView的Div設(shè)置高度寬度 div style="overflow-y: scroll; height: 200px;width:200px" >

16.GridView合并表頭多重表頭無(wú)錯(cuò)完美版(以合并3列3行舉例)

效果圖:

后臺(tái)代碼:

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;
using System.Drawing;
public partial class _Default : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "Data Source=(local);Database=北風(fēng)貿(mào)易;Uid=sa;Pwd=sa";
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_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 身份證號(hào)碼='"
+ 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 10 * 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[] { "身份證號(hào)碼" };
GridView1.DataBind();
sqlcon.Close();
}

//這里就是解決方案
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
case DataControlRowType.Header:
//第一行表頭
TableCellCollection tcHeader = e.Row.Cells;
tcHeader.Clear();
tcHeader.Add(new TableHeaderCell());
tcHeader[0].Attributes.Add("rowspan", "3"); //跨Row
tcHeader[0].Attributes.Add("bgcolor", "white");
tcHeader[0].Text = "";
tcHeader.Add(new TableHeaderCell());
//tcHeader[1].Attributes.Add("bgcolor", "Red");
tcHeader[1].Attributes.Add("colspan", "6"); //跨Column
tcHeader[1].Text = "全部信息/th>/tr>tr>";

//第二行表頭
tcHeader.Add(new TableHeaderCell());
tcHeader[2].Attributes.Add("bgcolor", "DarkSeaGreen");
tcHeader[2].Text = "身份證號(hào)碼";
tcHeader.Add(new TableHeaderCell());
tcHeader[3].Attributes.Add("bgcolor", "LightSteelBlue");
tcHeader[3].Attributes.Add("colspan", "2");
tcHeader[3].Text = "基本信息";
tcHeader.Add(new TableHeaderCell());
tcHeader[4].Attributes.Add("bgcolor", "DarkSeaGreen");
tcHeader[4].Text = "福利";
tcHeader.Add(new TableHeaderCell());
tcHeader[5].Attributes.Add("bgcolor", "LightSteelBlue");
tcHeader[5].Attributes.Add("colspan", "2");
tcHeader[5].Text = "聯(lián)系方式/th>/tr>tr>";

//第三行表頭
tcHeader.Add(new TableHeaderCell());
tcHeader[6].Attributes.Add("bgcolor", "Khaki");
tcHeader[6].Text = "身份證號(hào)碼";
tcHeader.Add(new TableHeaderCell());
tcHeader[7].Attributes.Add("bgcolor", "Khaki");
tcHeader[7].Text = "姓名";
tcHeader.Add(new TableHeaderCell());
tcHeader[8].Attributes.Add("bgcolor", "Khaki");
tcHeader[8].Text = "出生日期";
tcHeader.Add(new TableHeaderCell());
tcHeader[9].Attributes.Add("bgcolor", "Khaki");
tcHeader[9].Text = "薪水";
tcHeader.Add(new TableHeaderCell());
tcHeader[10].Attributes.Add("bgcolor", "Khaki");
tcHeader[10].Text = "家庭住址";
tcHeader.Add(new TableHeaderCell());
tcHeader[11].Attributes.Add("bgcolor", "Khaki");
tcHeader[11].Text = "郵政編碼";
break;
}
}
}

前臺(tái):

!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合并多重表頭表頭/title>
/head>
body >
form id="form1" runat="server">
div >
asp:GridView ID="GridView1" runat="server" CellPadding="3" OnRowEditing="GridView1_RowEditing"
OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" Font-Size="12px" OnRowCreated="GridView1_RowCreated" >
FooterStyle BackColor="White" ForeColor="#000066" />
Columns>
asp:CommandField HeaderText="編輯" ShowEditButton="True" />
asp:BoundField DataField="身份證號(hào)碼" HeaderText="編號(hào)" ReadOnly="True" />
asp:BoundField DataField="姓名" HeaderText="姓名" />
asp:BoundField DataField="出生日期" HeaderText="郵政編碼" />
asp:BoundField DataField="起薪" HeaderText="起薪" />
asp:BoundField DataField="家庭住址" HeaderText="家庭住址" />
asp:BoundField DataField="郵政編碼" HeaderText="郵政編碼" />

/Columns>
RowStyle ForeColor="#000066" />
SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" CssClass="ms-formlabel DataGridFixedHeader"/>
HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
/asp:GridView>
/div>

/form>
/body>
/html>

17.GridView突出顯示某一單元格(例如金額低于多少,分?jǐn)?shù)不及格等)

效果圖:

解決方案:主要是綁定后過(guò)濾

GridView1.DataBind();
for (int i = 0; i = GridView1.Rows.Count - 1; i++)
{
DataRowView mydrv = myds.Tables["飛狐工作室"].DefaultView[i];
string score = Convert.ToString(mydrv["起薪"]);
if (Convert.ToDouble(score)  34297.00)//大家這里根據(jù)具體情況設(shè)置可能ToInt32等等
{
GridView1.Rows[i].Cells[4].BackColor = System.Drawing.Color.Red;
}
}
sqlcon.Close();

全部后臺(tái)代碼:

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;
using System.Drawing;

public partial class Default7 : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "Data Source=(local);Database=北風(fēng)貿(mào)易;Uid=sa;Pwd=sa";
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_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 身份證號(hào)碼='"
+ 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 10 * 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[] { "身份證號(hào)碼" };
GridView1.DataBind();
for (int i = 0; i = GridView1.Rows.Count - 1; i++)
{
DataRowView mydrv = myds.Tables["飛狐工作室"].DefaultView[i];
string score = Convert.ToString(mydrv["起薪"]);
if (Convert.ToDouble(score)  34297.00)//大家這里根據(jù)具體情況設(shè)置可能ToInt32等等

{
GridView1.Rows[i].Cells[4].BackColor = System.Drawing.Color.Red;
}
}
sqlcon.Close();
}
}

前臺(tái)代碼:

!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 id="Head1" runat="server">
title>GridView突出顯示某一單元格 清清月兒http://blog.csdn.net/21aspnet /title>
/head>
body >
form id="form1" runat="server">
div >
asp:GridView ID="GridView1" runat="server" CellPadding="3" 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:CommandField HeaderText="編輯" ShowEditButton="True" />
asp:BoundField DataField="身份證號(hào)碼" HeaderText="編號(hào)" ReadOnly="True" />
asp:BoundField DataField="姓名" HeaderText="姓名" />
asp:BoundField DataField="出生日期" HeaderText="郵政編碼" />
asp:BoundField DataField="起薪" HeaderText="起薪" DataFormatString="{0:C}" HtmlEncode="false"/>
asp:BoundField DataField="家庭住址" HeaderText="家庭住址" />
asp:BoundField DataField="郵政編碼" HeaderText="郵政編碼" />

/Columns>
RowStyle ForeColor="#000066" />
SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" CssClass="ms-formlabel DataGridFixedHeader"/>
HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
/asp:GridView>
/div>

/form>
/body>
/html>

18.GridView加入自動(dòng)求和求平均值小計(jì)

效果圖:

解決方案:

private double sum = 0;//取指定列的數(shù)據(jù)和,你要根據(jù)具體情況對(duì)待可能你要處理的是int
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowIndex >= 0)
{
sum += Convert.ToDouble(e.Row.Cells[6].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[5].Text = "總薪水為:";
e.Row.Cells[6].Text = sum.ToString();
e.Row.Cells[3].Text = "平均薪水為:";
e.Row.Cells[4].Text = ((int)(sum / GridView1.Rows.Count)).ToString();

}
}

后臺(tái)全部代碼:

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;
using System.Drawing;

public partial class Default7 : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "Data Source=(local);Database=北風(fēng)貿(mào)易;Uid=sa;Pwd=sa";
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_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 身份證號(hào)碼='"
+ 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[] { "身份證號(hào)碼" };
GridView1.DataBind();
sqlcon.Close();
}
private double sum = 0;//取指定列的數(shù)據(jù)和
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowIndex >= 0)
{
sum += Convert.ToDouble(e.Row.Cells[6].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[5].Text = "總薪水為:";
e.Row.Cells[6].Text = sum.ToString();
e.Row.Cells[3].Text = "平均薪水為:";
e.Row.Cells[4].Text = ((int)(sum / GridView1.Rows.Count)).ToString();

}
}
}

前臺(tái):唯一的花頭就是設(shè)置ShowFooter="True" ,否則默認(rèn)表頭為隱藏的!

asp:GridView ID="GridView1" runat="server" CellPadding="3" OnRowEditing="GridView1_RowEditing"
OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" Font-Size="12px" OnRowDataBound="GridView1_RowDataBound" ShowFooter="True" >
FooterStyle BackColor="White" ForeColor="#000066" />
Columns>
asp:CommandField HeaderText="編輯" ShowEditButton="True" />
asp:BoundField DataField="身份證號(hào)碼" HeaderText="編號(hào)" ReadOnly="True" />
asp:BoundField DataField="姓名" HeaderText="姓名" />
asp:BoundField DataField="出生日期" HeaderText="郵政編碼" />
asp:BoundField DataField="家庭住址" HeaderText="家庭住址" />
asp:BoundField DataField="郵政編碼" HeaderText="郵政編碼" />
asp:BoundField DataField="起薪" HeaderText="起薪" />

/Columns>
RowStyle ForeColor="#000066" />
SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" CssClass="ms-formlabel DataGridFixedHeader"/>
HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
/asp:GridView>

19.GridView數(shù)據(jù)導(dǎo)入Excel/Excel數(shù)據(jù)讀入GridView

效果圖:

解決方案:
頁(yè)面增加一個(gè)按鈕,單擊事件添加如下方法:

protected void Button1_Click(object sender, EventArgs e)
{
Export("application/ms-excel", "學(xué)生成績(jī)報(bào)表.xls");
}

private void Export(string FileType, string FileName)
{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
//如果沒(méi)有下面方法會(huì)報(bào)錯(cuò)類型“GridView”的控件“GridView1”必須放在具有 runat=server 的窗體標(biāo)記內(nèi)
public override void VerifyRenderingInServerForm(Control control)
{
}

還有由于是文件操作所以要引入名稱空間IO和Text

后臺(tái)代碼:

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;
using System.Drawing;
using System.IO;
using System.Text;
public partial class Default7 : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "Data Source=(local);Database=北風(fēng)貿(mào)易;Uid=sa;Pwd=sa";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
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[] { "身份證號(hào)碼" };
GridView1.DataBind();
sqlcon.Close();
}

protected void Button1_Click(object sender, EventArgs e)
{
Export("application/ms-excel", "學(xué)生成績(jī)報(bào)表.xls");
}

private void Export(string FileType, string FileName)
{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
}

}

前臺(tái):

asp:GridView ID="GridView1" runat="server" CellPadding="3"
BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" Font-Size="12px" >
FooterStyle BackColor="White" ForeColor="#000066" />
Columns>
asp:BoundField DataField="身份證號(hào)碼" HeaderText="編號(hào)" ReadOnly="True" />
asp:BoundField DataField="姓名" HeaderText="姓名" />
asp:BoundField DataField="出生日期" HeaderText="郵政編碼" />
asp:BoundField DataField="家庭住址" HeaderText="家庭住址" />
asp:BoundField DataField="郵政編碼" HeaderText="郵政編碼" />
asp:BoundField DataField="起薪" HeaderText="起薪" />

/Columns>
RowStyle ForeColor="#000066" />
SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" CssClass="ms-formlabel DataGridFixedHeader"/>
HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
/asp:GridView>
asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="導(dǎo)出" />

讀取Excel數(shù)據(jù)的代碼:這個(gè)很簡(jiǎn)單的

private DataSet CreateDataSource()
{
string strCon;
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("excel.xls") + "; Extended Properties=Excel 8.0;";
OleDbConnection olecon = new OleDbConnection(strCon);
OleDbDataAdapter myda = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strCon);
DataSet myds = new DataSet();
myda.Fill(myds);
return myds;
}
protected void Button1_Click(object sender, EventArgs e)
{
GridView1.DataSource = CreateDataSource();
GridView1.DataBind();
}

為大家附3個(gè)精彩的專題:

ASP.NET控件使用手冊(cè)

ASP.NET數(shù)據(jù)綁定控件使用匯總

ASP.NET控件使用匯總

以上就是關(guān)于asp.net中g(shù)ridview控件的多種使用方法,很全面,目的就是想讓親們玩轉(zhuǎn)gridview控件,希望大家喜歡小編整理的這兩篇文章。

您可能感興趣的文章:
  • ASP.NET數(shù)據(jù)綁定之GridView控件
  • 靈活掌握asp.net中g(shù)ridview控件的多種使用方法(上)
  • asp.net gridview 72般絕技
  • asp.net GridView控件中模板列CheckBox全選、反選、取消
  • asp.net下gridview 批量刪除的實(shí)現(xiàn)方法
  • Asp.net GridView使用大全(分頁(yè)實(shí)現(xiàn))
  • asp.net gridview代碼綁定
  • asp.net GridView 刪除時(shí)彈出確認(rèn)對(duì)話框(包括內(nèi)容提示)
  • Asp.net簡(jiǎn)單代碼設(shè)置GridView自適應(yīng)列寬不變形實(shí)現(xiàn)思路與代碼
  • 靈活掌握Asp.net MVC中GridView的使用方法

標(biāo)簽:梧州 隨州 烏蘭察布 西雙版納 廣西 甘孜 開(kāi)封 威海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《靈活掌握asp.net中g(shù)ridview控件的多種使用方法(下)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    河北区| 滁州市| 芜湖县| 桂林市| 舟曲县| 台北市| 得荣县| 白朗县| 施秉县| 靖江市| 文山县| 上饶县| 衡水市| 本溪| 沈丘县| 武威市| 高要市| 保定市| 揭阳市| 莎车县| 恭城| 五常市| 呼图壁县| 洛阳市| 绥化市| 新巴尔虎右旗| 镇安县| 闸北区| 长丰县| 沽源县| 余姚市| 康保县| 稻城县| 巫山县| 高要市| 通辽市| 平武县| 和平区| 偏关县| 内黄县| 凭祥市|