VS中Gridview所有应用
- 格式:doc
- 大小:701.50 KB
- 文档页数:8
1.GridView代码分页排序:效果图:1.AllowSorting设为True,aspx代码中是AllowSorting="True";2.默认1页10条,如果要修改每页条数,修改PageSize即可,在aspx代码中是PageSize="12"。
3.默认的是单向排序的,右击GridView弹出“属性”,选择AllowSorting为True即可。
1:分页保存选中状态保存CheckBox的值GridView在分页过程中并不维护CheckBox的选择状态,幸运的是,我们可以使用Session来维护CheckBox的状态,这个功能使用RememberOldValues完成private void RememberOldValues(){ArrayList categoryIDList = new ArrayList();int index = -1;foreach (GridViewRow row in okZMGV.Rows){index =Convert .ToInt32( okZMGV.DataKeys[row.RowIndex].Value);bool result = ((CheckBox)row.FindControl("IsCheckBox")).Checked;// Check in the Sessionif (Session["state"] != null)categoryIDList = (ArrayList)Session["state"];if (result){if (!categoryIDList.Contains(index))categoryIDList.Add(index);}elsecategoryIDList.Remove(index);}if (categoryIDList != null && categoryIDList.Count > 0)Session["state"] = categoryIDList;}还原CheckBox的状态下一步,需要定义一个方法来还原Checkbox的状态值private void RePopulateValues(){ArrayList categoryIDList = (ArrayList)Session["state"];if (categoryIDList != null && categoryIDList.Count > 0){foreach (GridViewRow row in okZMGV .Rows){int index = (int)okZMGV.DataKeys[row.RowIndex].Value;if (categoryIDList.Contains(index)){CheckBox myCheckBox = (CheckBox)row.FindControl("IsCheckBox"); myCheckBox.Checked = true;}}}}最后,在分页事件里调用上面两个方法protected void page_Click(object sender, ImageClickEventArgs e){RememberOldValues();string count = ((ImageButton)sender).CommandArgument.ToString().ToLower ();switch(count){case"prev":if (okZMGV.PageIndex > 0){okZMGV.PageIndex -= 1;}break;case"next":if (okZMGV.PageIndex < okZMGV.PageCount - 1){okZMGV.PageIndex += 1;}break;case "0":okZMGV.PageIndex=0;break;case "last":okZMGV.PageIndex= okZMGV.pagecount-1;break;}BrndOKBind();RePopulateValues();}2.GridView选中,编辑,取消,删除:效果图:后台代码:你可以使用sqlhelper,本文没用。
关于VS2005中GridView的自定义分页,单选、多选、排序、自增列的简单应用。
多选时,只有全部选中时“多选”才选中。
图片效果:简单示例,代码如下,fenpage.aspx的代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="fenpage.aspx. cs" Inherits="gridview_fenpage" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w /TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"><title></title><script language="javascript" type="text/javascript">// 判断多选是否与选中项(没有选中的返回false)function slcNo_click(){if (document.form1.checkboxname.length){for (var i=0;i<document.form1.checkboxname.length;i++){if(document.form1.checkboxname[i].checked){return true;}}}else{if(document.form1.checkboxname.checked){return true;}}alert("请选择后再操作!");return false;}// 鼠标经过改变行的颜色if (!objbeforeItem){var objbeforeItem=null;var objbeforeItembackgroundColor=null;}function ItemOver(obj){if(objbeforeItem){objbeforeItem.style.backgroundColor = objbeforeItembackgroundColor;}objbeforeItembackgroundColor = obj.style.backgroundColor;objbeforeItem = obj;obj.style.backgroundColor = "#B9D1F3";}//// 多选的全选与取消function checkJs(boolvalue){if(document.all.checkboxname.length>1){for(var i=0;i<document.all.checkboxname.length;i++){document.all.checkboxname[i].checked = boolvalue;}}elsedocument.all.checkboxname.checked = boolvalue;}//// 只有全部选中时“全选”选中function SingleCheckJs(){var flag1=false;var flag2=false;if (document.form1.checkboxname.length){for (var i=0;i<document.form1.checkboxname.length;i++){if(document.form1.checkboxname[i].checked)flag1 = true;elseflag2 = true;}}else{if(document.form1.checkboxname.checked)flag1 = true;elseflag2 = true;}if(flag1==true&&flag2==false)document.getElementById("chk").checked = true;elsedocument.getElementById("chk").checked = false;}//</script></head><body><form id="form1" runat="server"><div><table cellpadding="0" cellspacing="0" border="0" width="80%" style ="font-size: 11px"><tr><td align="center"><asp:GridView ID="GridView1" runat="server" Width="100% " CellPadding="4" ForeColor="#333333"AutoGenerateColumns="False" AllowPaging="True" PageSize ="12" BorderColor="Silver"BorderStyle="Solid" BorderWidth="1px" OnRowDataBound= "GridView1_RowDataBound"ShowFooter="True" EmptyDataText="没有数据记录!!" AllowSorting="True" OnSorting="GridView1_Sorting"><Columns><asp:BoundField HeaderText="编号" DataField="id" Visibl e="False"/><asp:TemplateField HeaderText="<input type='checkb ox' id='chk' name='chk' onclick='checkJs(this.checked);' />全选" FooterText="全选"><ItemTemplate><input type="checkbox" id="checkboxname" name ="checkboxname" value='<%# DataBinder.Eval(Container.DataItem, "id")%>' o nclick='SingleCheckJs();' /></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="单选" FooterText="单选"><ItemTemplate><input type="radio" id="RadioName" name="Radio Name" value='<%# Eval("id")%>' /></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="自增列" FooterText="自增列"><ItemTemplate><%# (Container.DataItemIndex+1).ToString()%></ItemTemplate></asp:TemplateField><asp:BoundField HeaderText="姓名" FooterText="姓名" D ataField="name" SortExpression="name"/><asp:BoundField HeaderText="身份证号" FooterText="身份证号" DataField="card" SortExpression="card"/><asp:BoundField HeaderText="价格" FooterText="价格" D ataField="price" DataFormatString="{0:¥#,##0.00}"HtmlEncode="False" SortExpression="price"/><asp:BoundField HeaderText="数字" FooterText="数字" D ataField="price" DataFormatString="{0:0.00}"HtmlEncode="False" SortExpression="price"/><asp:BoundField HeaderText="建立时间" FooterText="建立时间" DataField="createdate" DataFormatString="{0:yyyy年MM月dd日 hh时mm 分ss秒}"HtmlEncode="False" SortExpression="createdate"/></Columns><RowStyle BackColor="#F7F6F3" ForeColor="#333333"/><EditRowStyle BackColor="#999999"/><SelectedRowStyle BackColor="#E2DED6" Font-Bold="True " ForeColor="#333333"/><PagerStyle BackColor="#284775" ForeColor="White" Horiz ontalAlign="Center"/><AlternatingRowStyle BackColor="White" ForeColor="#2847 75"/><PagerSettings Visible="False"/><FooterStyle Font-Bold="True"/><HeaderStyle Font-Bold="False" Font-Italic="False"/></asp:GridView></td></tr><tr><td align="center" style="height: 25px"><asp:LinkButton ID="btnFirst" CommandArgument="first" OnC lick="PagerButtonClick"runat="server">首页</asp:LinkButton><asp:LinkButton ID="btnPrev" CommandArgument="prev" On Click="PagerButtonClick" runat="server">上一页</asp:LinkButton><asp:LinkButton ID="btnNext" CommandArgument="next" On Click="PagerButtonClick" runat="server">下一页</asp:LinkButton><asp:LinkButton ID="btnLast" CommandArgument="last" OnCl ick="PagerButtonClick" runat="server">尾页</asp:LinkButton><asp:Label ID="LblCurrentIndex" runat="server"></asp:Labe l><asp:Label ID="LblPageCount" runat="server"></asp:Label><asp:Label ID="LblRecordCount" runat="server"></asp:Labe l></td></tr><tr><td><asp:Button ID="Button2" runat="server" Text="checkbox得到选择的行" OnClick="Button2_Click"></asp:Button><asp:Button ID="Button1" runat="server" Text="radio得到选择的行" OnClick="Button1_Click"></asp:Button></td></tr></table></div></form></body></html>fenpage.aspx.cs的代码: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 gridview_fenpage : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Button2.Attributes["onclick"] = "return slcNo_click();";GridViewBind("");}private void GridViewBind(string Sqlsort){string connStr = ConfigurationManager.ConnectionStrings["ConnString1"]. ConnectionString;string SqlStr = "SELECT * FROM test01 where id<1000" + Sqlsort;DataSet ds = new DataSet();try{SqlConnection conn = new SqlConnection(connStr);if (conn.State.ToString() == "Closed") conn.Open();SqlDataAdapter da = new SqlDataAdapter(SqlStr, conn);da.Fill(ds, "test01");if (conn.State.ToString() == "Open") conn.Close();GridView1.DataSource = ds.Tables[0].DefaultView;GridView1.DataBind();LblCurrentIndex.Text = "第 " + (GridView1.PageIndex + 1).ToString () + " 页";LblPageCount.Text = "共 " + GridView1 .PageCount.ToString()+ " 页";LblRecordCount.Text = "总共 "+ds.Tables[0].Rows.Count.ToString()+ " 条";if (ds.Tables[0].Rows.Count == 0){btnFirst.Visible = false;btnPrev.Visible = false;btnNext.Visible = false;btnLast.Visible = false;LblCurrentIndex.Visible = false;LblPageCount.Visible = false;LblRecordCount.Visible = false;}else if (GridView1.PageCount == 1){btnFirst.Visible = false;btnPrev.Visible = false;btnNext.Visible = false;btnLast.Visible = false;}// 计算生成分页页码,分别为:"首页" "上一页" "下一页" "尾页"mandName = "1";mandName = (GridView1.PageIndex == 0 ? "1" : GridView 1.PageIndex.ToString());mandName = (GridView1.PageCount == 1 ? GridView1.Pa geCount.ToString() : (GridView1.PageIndex + 2).ToString());mandName = GridView1.PageCount.ToString();//}catch(Exception ex){Response.Write("数据库错误,错误原因:"+ex.Message);Response.End();}}protected void PagerButtonClick(object sender, EventArgs e){GridView1.PageIndex = Convert.ToInt32(((LinkButton)sender).CommandN ame)-1;GridViewBind("");}protected void GridView1_RowDataBound(object sender, GridViewRowEventA rgs e){e.Row.Attributes["onmouseover"] = "ItemOver(this)";}protected void Button2_Click(object sender, EventArgs e){string str="";string []ckb=null;str=Request.Form.Get("checkboxname");ckb=str.Split(new char[]{','});Response.Write("直接在页面中得到的值为:"+str+"<br>");Response.Write("处理后存放在数组中,如下:<br>");for(int i=0;i<ckb.Length;i++){Response.Write("ckb["+i+"]的值为:"+ckb[i]+"<br>");}}protected void Button1_Click(object sender, EventArgs e){Response.Write(Request.Form.Get("RadioName"));}protected void GridView1_Sorting(object sender, GridViewSortEventArgs e){string sql = "";if (ViewState["SortDirection"] == null || ViewState["SortDirection"].ToStri ng().CompareTo("") == 0){ViewState["SortDirection"] = " desc";}elseViewState["SortDirection"] = "";sql = " order by " + e.SortExpression + ViewState["SortDirection"];GridViewBind(sql);}}数据库中表的生成代码:CREATE TABLE[dbo].[test01] ([id][decimal](18, 0) IDENTITY (1, 1) NOT NULL ,[name][varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,[card][varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,[createdate][datetime]NULL) ON[PRIMARY]GOALTER TABLE[dbo].[test01]ADDCONSTRAINT[DF_test01_createdate]DEFAULT (getdate()) FOR[createdate],CONSTRAINT[PK_test01]PRIMARY KEY CLUSTERED([id]) ON[PRIMARY]GO。
VS控件说明GridView 控件GridView 控件以表的形式显⽰数据,并提供对列进⾏排序、分页、翻阅数据以及编辑或删除单个记录的功能。
特征:⼀⾏⼀条记录,就像新闻列表⼀样;带分页功能。
DataGrid 控件(建议⽤ GridView 控件代替)没有出现 GridView 之前,就⽤ DataGrid。
除了添加利⽤数据源控件功能的新功能,GridView 控件还实现了某些改进,例如,定义多个主键字段的功能、使⽤绑定字段和模板的改进⽤户界⾯⾃定义以及⽤于处理或取消事件的新模型。
DataList 控件DataList 控件以表的形式呈现数据,通过该控件,您可以使⽤不同的布局来显⽰数据记录,例如,将数据记录排成列或⾏的形式。
您可以对DataList 控件进⾏配置,使⽤户能够编辑或删除表中的记录。
(DataList 控件不使⽤数据源控件的数据修改功能;您必须⾃⼰提供此代码。
)DataList 控件与 Repeater 控件的不同之处在于:DataList 控件将项显式放在 HTML 表中,⽽ Repeater 控件则不然。
特征:⼀⾏可以有多条记录,就像图⽚列表⼀样;分页功能需要⼿写。
Repeater 控件Repeater 控件使⽤数据源返回的⼀组记录呈现只读列表。
与 FormView 控件类似,Repeater 控件不指定内置布局。
您可以使⽤模板创建Repeater 控件的布局。
特征:⾃由定制;分页功能需要⼿写。
ListView 控件这个控件既可实现像 GridView ⼀样的效果,也可实现像 DataList ⼀样的效果(怪不得名字叫 ListView),这东西应⽤起来也要复杂些。
要点是:LayoutTemplate 下⾯必须有⼀个服务器端控件,即 runat="server",其 ID 必须为 itemPlaceholder(除⾮更改 ListView 的ItemPlaceholderID),注意⼤⼩写,ItemTemplate 模板中的内容输出时就是插⼊到 itemPlaceholder 的。
v s F l e x G r i d常用功能介绍内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)vsFlexGrid是ComponentOne公司的一个ActiveX控件,它与MS的MSHFlexGrid 控件在功能上是兼容的,即MSHFlexGrid所具备的属性和方法,它也都具备,只有少数几个属性名称略有不同,使用MSHFlexGrid编写的程序,只需要作较小的调整就可以转换过来;但相比MSHFlexGrid,vsFlexGrid多了很多功能,它的属性和事件非常丰富,可以实现非常灵活的控制和快捷的编码,下面主要对一些常用和实用的功能进行介绍:一、数据批量操作l 利用Cell属性批量存取数据比如要清除一块区域的文本,或者设置一块区域的字体,不用循环处理,只需要一条语句就可以完成,如:(flexcpText,1,1,5,5) = “” ‘设置(1,1)-(5,5)这块单元格区域的文本都为空(flexcpFontBold,1,1,5,5)=True ‘设置(1,1)-(5,5)这块单元格区域的字体都为粗体类似还可以设置的有单元格对齐、图片、颜色等。
而语句:strText = (flexcpText,1,1,5,5)返回一个用vbTab间隔列,vbCr间隔行的字符串,当然也可以反过来赋值,这样该区域内的每个单元格都可以赋不同的值。
l 使用-1对所有行列进行处理RowHeight(-1)=300 ‘将所有行的高度设置为300Twip,可以类似使用的属性有:RowHidden,ColWidth,ColHidden,ColAlignment等二、大量数据存放vsFlexGrid可以存放数据的地方有:CellText,CellData,ColData,RowData除了CellText是String类型外,其他都是Variant类型,也就是说你可以将任意类型的数据存放在表格中,比如日期(Date),类型变量(Type),集合(Collection),数组,记录集(RecordSet),以及各种对象(Object),这对于关联数据比较多的程序非常有用。
Gridview用法(个人总结)202X803Gridview用法(个人总结)202*0803Gridview的一些操作:1、添加删除列:直接使用Gridview的删除事件:1)选择Gridview的右上角任务栏,打开之后选择编辑列,然后选择CommandFiled,打开CommandFiled选择删除,然后选择添加,设置HeadText为删除。
2)打开Gridview控件的属性对话框,在事件中双击RowDeleting,然后添加删除事件代码:protectedvoidGridView1_RowDeleting(objectsender,GridViewDelete EventArgse){StringBuildersb=newStringBuilder();sb.AppendFormat(@"DELETEFRO MSUPPLIERSWHEREID="+Convert.ToInt32(GridView1.DataKeys[e.RowIndex] .Value));SQLHelperhelper=newSQLHelper();helper.ExecuteSql(sb.ToStr ing());Bindon();}不使用Gridview的删除事件:使用添加LinkButton的方法实现删除选定行1)选择Gridview的右上角任务栏,打开之后选择编辑列,然后选择TemplateField,设置HeadText为删除,然后在脚本中添加下面代码:2)打开Gridview控件的属性对话框,在事件中双击RowDataBound,添加如下代码://获取删除行的IDif(e.Row.RowType==DataControlRowType.DataRow){stringid=GridVie w1.DataKeys[e.Row.RowIndex].Value.ToString();//得到idLinkButtonibtnDel=(LinkButton)e.Row.FindControl("delet");//实例化LinButton按钮控件mandArgument=id;//指定删除按钮的关联参数ibtnDel.Attributes.Add("onclick","returnconfirm("确定要删除吗?");");}3)打开Gridview控件的属性对话框,在事件中双击RowCommand,添加如下代码:if(mandName=="del"){stringid=mandArgument.ToString();//获得IDStringBuildersb=newStringBuilder();sb.AppendFormat(@"DELETEFROMSUPPLIERSWHEREID="+id);SQLHelperhe lper=newSQLHelper();helper.ExecuteSql(sb.ToString());Bindon();}即可。
Gridview用法大总结
由于篇幅限制,代码就不贴啦,要下载源码的请下载blogs.co m/huangjianhuakarl/Gridview.rar;希望朋友们能给出一些好的建议,本人将尽力不断完善本文!
1:在Gridview中无须编写后台代码,直接实现增除删改
2:在Gridview中添加新记录
3:在Gridview中实现编辑和更新操作
4:在Gridview中实现一次性更新所有记录
5:在Gridview中固定表头的实现
6:在Gridview中合并单元格的实现
7:在Gridview中将数据操作结果显示在Footer中8:在Gridview中添加表头
9:在Gridview中将数据导出
10:在Gridview中实现数据导入
11:在Gridview中实现嵌套功能
12:在Gridview中实现多层嵌套
13:在Gridview中实现排序
14:在Gridview中实现分页
15:Gridivew结合CheckBox控件的使用
16:Gridview结合DropDownList控件的使用
17:Gridview结合RadioButtom的使用
18:Gridview内嵌DropDownList控件
19:Gridview结合JS,在客户端结合CheckBox的使用
20:在Gridview中设置数据行的背景颜色
21:在Gridview中设置数据行的事件
22:在Gridview中设置数据行的其他属性
23:在Gridview中索引主键的使用。
GridView控件属性及应用GridView是 1.x的DataGrid控件的后继者。
它提供了相同的基本功能集,同时增加了大量扩展和改进。
如前所述,DataGrid( 2.0仍然完全支持)是一个功能非常强大的通用控件。
然而,它有一个重大缺陷:它要求我们编写大量定制代码,甚至处理比较简单而常见的操作,诸如分页、排序、编辑或删除数据等也不例外。
GridView控件旨在解决此限制,并以尽可能少的数据实现双向数据绑定。
该控件与新的数据源控件系列紧密结合,而且只要底层的数据源对象支持,它还可以直接处理数据源更新。
这种实质上无代码的双向数据绑定是新的GridView控件最著名的特征,但是该控件还增强了很多其他功能。
该控件之所以比DataGrid控件有所改进,是因为它能够定义多个主键字段、新的列类型以及样式和模板选项。
GridView还有一个扩展的事件模型,允许我们处理或撤销事件。
GridView控件为数据源的内容提供了一个表格式的类网格视图。
每一列表示一个数据源字段,而每一行表示一个记录。
1. GridView控件的属性GridView支持大量属性,这些属性属于如下几大类:行为、可视化设置、样式、状态和模板。
行为属性描述AllowPaging 指示该控件是否支持分页。
AllowSorting 指示该控件是否支持排序。
AutoGenerateColumns 指示是否自动地为数据源中的每个字段创建列。
默认为true。
AutoGenerateDeleteButton 指示该控件是否包含一个按钮列以允许用户删除映射到被单击行的记录。
AutoGenerateEditButton 指示该控件是否包含一个按钮列以允许用户编辑映射到被单击行的记录。
AutoGenerateSelectButton 指示该控件是否包含一个按钮列以允许用户选择映射到被单击行的记录。
DataMember 指示一个多成员数据源中的特定表绑定到该网格。
GridView的各种用法(1)快速预览: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数据读入GridView1.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{//清清月儿/21aspnetSqlConnection 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().T rim() + "',字段2='"+((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().T rim() + "',字段3='"+((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().T rim() + "' 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次的排序,点其他也一样可以。
1,如果想把某一列设置成下拉匡中选择,只能写成 grid.colcombolist(1) = "a|b|c" 吗?能不能把下拉框中的数据和 recordset 或数组绑定。
答案:grid.colcombolist(1)=grid.buildcombolist(rs!abc)2,怎样限定第三列可编辑,其他列不可编辑?答案:Private Sub fg_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel A s Boolean)'*******先将设editable=2'限定不可编辑列,如有5列If Col = 0 Then Cancel = TrueIf Col = 1 Then Cancel = TrueIf Col = 2 Then Cancel = TrueIf Col = 4 Then Cancel = TrueIf Col = 5 Then Cancel = TrueEnd Sub3、怎么获得当前单元个的位置,比如某单元个获得焦点,弹出msgbox("你选的是第4行第5列")Answer:Private Sub VSFlexGrid1_Click()Dim a, b As Longa = VSFlexGrid1.Rowb = VSFlexGrid1.ColMsgBox "你选的是" & a & "行" & b & "列"End Sub4,对vsflexgrid进行编辑的时候,让vsflexgrid的某列只能输入数字? Answer:Private Sub CheckData(KeyAscii As Integer)If KeyAscii >= 48 And KeyAscii <= 57 Then Exit Sub '如果是数字退出If KeyAscii <> 8 Then KeyAscii = 0End SubPrivate Sub vsflexgrid_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)If col=1 Then '第一列只能输入数字CheckData KeyAsciiEnd IfEnd Sub5,限制某列只能输入数字Answer:Private Sub fg_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAs cii As Integer)Dim Numbers As String '允许输入的字符If fg.Col = 6 Then '第6列Numbers = "1234567890" + Chr(46) + Chr(8)If InStr(Numbers, Chr(KeyAscii)) = 0 ThenKeyAscii = 0End IfEnd IfEnd Sub6,如何指定一列的输入格式VSFlexGrid 控件属性方法一览表VSFlexGrid 控件属性方法一览表(带()为方法) 属性/方法名称功能示例语法AddItem() 增加一行 O.A String[, RowIndex] Aggregate 返回集合合计(总数,平均,等等) O.A = (A,Row1,Col1,Row2, Col2)Align 对象在窗体上的显示位置 O.A = 0|1|2|3|4 AllowBigSelection 设定列头是否整行或整列选择 O.A = True|False AllowSelection 是否可多单元选择 O.A = True|False AllowUserFreezing 运行时用鼠标冻结行或列 O.A = 0|1|2|3 AllowUserResizing 调整(行/列)大小方式 O.A = 0|1|2|3|4 Appearance 边框平面/凹陷/凸起 O.A = 0|1|2Archive() 存储或清除一个二进制文件内容 O.A ArcFileName,FileName,0 |1|2|3ArchiveInfo 返回一个二进制文件信息 O.A ArcFileName,0|1|2|3|4,L ineIndexAutoReSize 是否自动调整大小 O.A = True|False AutoSearch 设置自动搜索 O.A = 0|1|2 AutoSearchDelay 设置AutoSearch多少秒刷新 O.A = 2AutoSize() 自动调整列到指定宽度 O.A Col1,Col2,True|False,100 0AutoSizeMode 自动调整适合行列内容 O.A = 0|1 AutoSizeMouse 是否双击列首自动调整适合行列 O.A = True|False BackColor 所有非固定行列的背景色 O.A = Color BackColorAlternate 所有非固定行列的交替行颜色 O.A = Color BackColorBkg 表格背景坐底色 O.A = ColorBackColorFixed 固定的行/列背景色 O.A = Color BackColorFrozen 冻结部分的行列背景色 O.A = Color BackColorSel 单元被选中的背景色 O.A = ColorBindToArray() 绑定数组 O.A ArrayStr,RowDim,ColDim,PageDim,Cu rrentPageBookmark 返回ADO Recordset行书签(只读) O.A(Row)BorderStyle 边框粗细样式 O.A = 0|1BottomRow 返回可见范围的最大行号(只读) O.ABuildComboList() 将数据库中的内容写入下拉框 O.A(rs, FieldList, KeyFiel d, BackColor)CausesValidation ???目标事件确认 O.A = False|TrueCell 选择部分的相应准则值 O.A(准则, Row1, Col1, Row2, Col 2) = 准则值CellAlignment 设定单元里数据的排列方式 O.A = 0 至 9 CellBackColor 指定单元范围的背景颜色 O.A = ColorCellBorder() 选择单元范围的边界颜色 O.A Color,左,上,右,下,垂直,水平CellButtonPicture 选择单元范围的按钮图片 O.A = LoadPicture("D:\Icon. ico")CellChecked 选择单元范围的复选框 O.A = 0|1|2 CellFloodColor 选择单元范围的流程颜色 O.A = Color CellFloodPercent 选择单元范围的流程百分比 O.A = 1 至 100 CellFontBold 指定单元范围设为黑体字 O.A = False|True CellFontItalic 指定单元范围设为斜体字 O.A = False|True CellFontName 对象所使用的字体名称 O.A = FontName CellFontSize 对象文字像数大小(默认9pt) O.A = 9 CellFontStrikethru 选择范围是否有删除线 O.A = False|True CellFontUnderline 选择范围是否有下画线 O.A = False|True CellFontWidth 设定单元或指定范围字体的宽度 O.A = 2CellForeColor 设定单元或指定范围字体的颜色 O.A = ColorCellHeight 返回/显示到当前单元高度(只读) O.ACellLeft 返回当前单元的左端位置(只读) O.ACellPicture 显示在单元或指定范围中的图片 O.A = LoadPicture("D:\Icon. ico")CellPictureAlingment 单元或指定范围图片的显示位置 O.A = 0 至 10 CellTextStyle 设定单元文本的显示形式 O.A = 0|1|2|3|4CellTop 返回当前单元的顶端位置(只读) O.ACellWidth 返回当前单元的宽度(只读) O.AClear() 清除表格内容 O.A([0|1|2],[0|1|2|3]) ClientHeight 返回客户可见范围高度 O.AClientWidth 返回客户可见范围宽度 O.AClip 设置选择范围的内容 O.A = TextClipSeparators ???Col 设置激活单元的列号 O.A = 2ColAlignment 列对齐排列方式 O.A(Col) = 0 至 9 ColComboList 向下拉框写入管道字符 O.A(Col) = "|ListStr1|ListStr 2|..."ColData 设置用户定义的长整形数据 O.A(Col) = UserLong ColDataType 列数据类型 O.A(Col)=0至14到20(&H14),3 0(&H1E),31(&H1F)ColEditMask 列编辑套用格式字符串 O.A(Col) = 指定的格式如:### ###ColFormat 格式化显示列 O.A(Col) = "Currency"|"#.## #%"...ColHidden 是否隐藏指定列 O.A(Col) = True|False ColImageList 设置图像列表句柄到列ColIndent 缩进指定列 O.A Col= 100ColIndex 返回列索引(只读) O.A ColColIsVisible 返回列是否可见(只读) O.A ColColKey 设置列钥匙 O.A(Col) = KeyStrColPos 返回列距左边宽度(只读) O.A ColColPosition 移动列的位置 O.A(Col) = ReColCols 返回/设置总列数 O.A = 2ColSel 返回/设置最后选择的列 O.A = 3ColSort 设置列种类 O.A(Col) = 0 至 10ColWidth 返回/设置指定列宽 O.A(Col) = 100 ColWidthMax 最大列宽 O.A(Col) = 5000 ColWidthMin 最小列宽 O.A(Col) = 100ComboCount 取得Combo下拉按钮总数(只读) O.AComboData Combo下拉按钮数据(只读) O.AComboIndex Combo下拉按钮索引 O.A = 1ComboItem Combo下拉按钮项目(只读) O.AComboList 向下拉框写入管道字符内容 O.A = "a|b|c" ComboSearch Combo下拉按钮搜寻方式 O.A = 0|1|2|3 Container 返回/设置对象的容器 O.A.Caption = "Forms" DataBindings 返回数据装入数(只读) O.ADataMember 返回/设置数据描述成员 O.A = DataStrDataMode 设置数据链接状态 O.A = 0|1|2|3|4 DataRefresh() 刷新数据源 O.ADataSource 设置数据源 Set O.A = DataDimDrag() 拖放 O.A [0|1|2]DragIcon 拖放图标 O.A = LoadPicture("D:\Icon.ico") DragMode 拖放方式 O.A = 0|1DragRow() 拖放行(本示例在MouseDown过程) O.A O.RowSel Editable 设置表格是否可编辑修改 O.A = 0|1|2EditCell() 当移动到当前单元时自动选择 O.AEditMask 当编辑时只能使用指定值 O.A = StrValue EditMaxLength 所有单元限制字节大小 O.A = 2EditSelLength 编辑时选择长度 O.A = 5EditSelStart 移动到单元时的光标位置 O.A = 0(或者Len(vsg.text)) EditSelText 编辑选择处放文本 O.A = "Str"EditText 编辑文本 O.A = "Str"EditWindow 返回编辑窗口(只读) O.AEllipsis 超宽字符加省略号 O.A = 0|1|2Enabled 对象是否激活可用 O.A = False|True ExplorerBar 单击列头的选择、拖动或排序样式 O.A = 0 至 15 ExtendLastCol 是否扩充最后的列到适合宽度 O.A = False|True FillStyle 是否改变当前范围的内容或格式 O.A = 0|1FindRow 查找符和条件返回的行(只读) O.A FindStr,[Row],[Col],[敏感],[精度])FinishEditing() 完成编辑的 O.A = False|True FixedAlignment 固定列的对齐方式 O.A(Col) = 0 至 9 FixedCols 固定几列 O.A = 1FixedRows 固定几行 O.A = 1FlexDataSource 流动数据源 O.A = rsDateFloodColor 设置流程颜色 O.A = ColorFocusRect 单元的选择虚框样式类型 O.A = 0|1|2|3|4|5Font 设定字体 O.A = FontNameFontBold 设定字体粗体 O.A = False|TrueFontItalic 设定字体斜体 O.A = False|TrueFontName 设定字体名称 O.A = FontNameFontSize 设定字体大小 O.A = 10FontStrikethru 设定字体删除线 O.A = False|True FontUnderline 设定字体下划线 O.A = False|TrueFontWidth 设定字体的宽度(非间距) O.A = 2ForeColor 设定字体前景颜色 O.A = ColorForeColorFixed 设定固定单元的文本颜色 O.A = Color ForeColorFrozen 设定字体冻结部分的前景颜色 O.A = Color ForeColorSel 设定选择单元的文本颜色 O.A = ColorFormatString 设计管道符格式化行/列字符串 O.A = Format(1,"#0.00") FrozenCols 需要冻结的列数 O.A = 2FrozenRows 需要冻结的行数 O.A = 2GetMergedRange() ???获得合并山脉GetNode() ???获得节点GetNodeRow() ???获得节点行GetSelection() ???获得选择 O.A Row1, Col1, Row2, Col2 GridColor 单元行列的网格线颜色 O.A = ColorGridColorFixed 设定固定网格线的颜色 O.A = ColorGridLines 可编辑区的网格线类型 O.A = 0 至 14 GridLinesFixed 固定行列网格效果类型 O.A = 0 至 14 GridLineWidth 编辑区的网格线线粗细 O.A = 1Height 设置对象高度 O.A = 1000HelpContextID 对象缺省上下文帮助ID O.A = HelpIDHighLight 是否突出加亮显示选中单元 O.A = 0[无]|1[默认]|2[仅焦点时有]hWnd 获取对象句柄 O.AIndex 对象索引号(运行时只读) O.AIsCollapsed ???IsSelected 是否已选择 O.AIsSubtotal 是否已小记 O.ALeft 对象距左边位置 O.A = 100LeftCol 指定显示在最左边的列 O.A = 1LoadArray() 载入数组LoadGrid() 载入网格 O.A FileName, 0 至 6[,True(含固定行列)|False]LoadGridURL() 载入网格URLMergeCells 相同内容的单元格合并类型 O.A = 0|1|2|3|4|5|6 MergeCol 是否上下列合并 O.A(Col) = True MergeCompare 返回/设置合并比较类型 O.A = 0|1|2MergeRow 是否左右行合并 O.A(Row) = TrueMouseCol 返回鼠标指向的当前列号 O.AMouseIcon 设定鼠标指向的当前图形 O.A = LoadPicture("C:\.ico")MousePointer 设置对象的鼠标指针样式 O.A = 0 到 15|99 MouseRow 返回鼠标指向的当前行号 O.AMove() 移动对象 O.A Left,[Top],[Width],[Height] MultiTotals ???Multi总数Name 对象名称(运行时只读) O.ANodeClosedPicture 节点封闭的图标 O.A = LoadPicture("C:\.ico") NodeOpenPicture 节点打开的图标 O.A = LoadPicture("C:\.ico") Object 返回/设置该对象变量 Set DimObjName = O.A OLEDrag() OLE拖拽数据 O.AOLEDragMode OLE拖拽方式 O.A = 0|1OLEDropMode OLE拖拽落下方式 O.A = 0|1|2Outline() ???外面的线OutlineBar 返回/设置显示目录树的线条 O.A = 0 至 6OutlineCol ???外面的线列OwnerDraw 返回或设置执行 DrawCell 事件 O.A = 0 至 6Parent 返回该对象所在的对象(只读) O.A.Caption = "Forms" Picture 返回控件的图片(只读) O.A.属性|方法 = 相应值PicturesOver 返回控件图片结束 O.A = False|True PictureType 用Picture属性生成的图片类型 O.A = 0|1PrintGrid() 打印网格数据 O.A ["主题",True|False,1|2,左右空,上下空]Redraw 设定是否刷新控件 O.A = 0|1|2Refresh() 刷新表格 O.ARemoveItem() 删除指定行 O.A VSG1.RowSelRightCol 返回右边最大的可见列范围 O.ARightToLeft 是否将固定行放到右边 O.A = TrueRow 设置激活单元的行号 O.A = 2RowData 设置用户定义的长整形数据 O.A(Row) = UserLong RowHeight 返回/设置指定行高 O.A(Row) = 100 RowHeightMax 行高的最大值 O.A(Row) = 500 RowHeightMin 行高的最小值 O.A(Row) = 230RowHidden 是否隐藏指定行 O.A(2) = True|False RowIsVisible 返回行是否在可见范围中(只读) O.A(Row) RowOutlineLevel 返回/设置水平行小记 O.A(Row) = 0|1RowPos 返回行距上边高度(只读) O.A RowRowPosition 移动行的位置 O.A(Row) = NewRowRows 返回/设置总行数 O.A = 2RowSel 返回/设置最后选择的行 O.A = 2RowStatus 设置行状态 O.A = 0|1|2|3SaveGrid() 保存网格内容到二进制文件 O.A FileName, 0 至 6[,True (含固定行列)|False]ScrollBars 设定卷动轴的方式 O.A = 0|1|2|3ScrollTips 卷轴提示 O.A = False|True ScrollTipText 卷轴提示文本 O.A = "Text"ScrollTrack 行是否随拖动条卷动显示 O.A = False|TrueSelect() 选择行列范围 O.A Row,Col[,RowSel][,ColSel] SelectedRow 已选择行(只读) O.A(Row)SelectedRows 返回所选总行数(只读) O.ASelectionMode 设置单元焦点选中方式 O.A = 0|1|2|3SetFocus() 设置到对象焦点 O.ASheetBorder 表格边框颜色 O.A = ColorShowCell() 立刻显示到指定单元 O.A Row, Col ShowComboButton 是否显示当选择时拉下按钮 O.A = 0|1|2 ShowWhatsThis() 显示“这是什么” O.ASort 按照选择的基准重新排序顺序方式 O.A = 0 到 10Subtotal() 小计 O.A 属性名[,其它共9个可省略参数] SubtotalPosition 是否小计上面或下面的数值 O.A = 0|1 TabBehavior Tab键跳转顺序禁止 O.A = 0|1TabIndex 对象的Tab选择顺序 O.A = 2TabStop 是否允许Tab自动选择 O.A = True|FalseTag 存储数据时所需的附加数据 O.A = StrText 返回/写入当前单元的文字 O.A = StrTextMatrix 返回/写入指定单元的文字 O.A(Row, Col) = Str TextStyle 单元格文字效果 O.A = 0|1|2|3|4 TextStyleFixed 固定行列文本的3D效果 O.A = 0|1|2|3|4 ToolTipText 鼠标指向表格的说明消息 O.A = "TextString"Top 对象上边距 O.A = 100TopRow 指定显示在最上面的行 O.A = 5TreeColor 目录树颜色 O.A = ColorValue 返回当前单元数值部分(只读) O.AValueMatrix 返回指定单元数值部分(只读) O.A Row, ColVersion 返回控件的版本号(只读) O.AVirtualData 虚拟数据 O.A = True|FalseVisible 是否显示对象 O.A = True|FalseWallPaper 表格壁纸背景图 O.A=LoadPicture(Image) | O.A.属性|方法 = 相应值WallPaperAlignment 壁纸背景图墙报对齐方式 O.A(Col) = 0 至 10 WhatsThisHelpID 设置与对象相关联的上下文号 O.A = HelpIDString Width 设置对象宽度 O.A = 5000WordWrap 设定单元中的文本是否换行 O.A = True|False ZOrder() 设置对象Z顺序 O.A 0|1vsflexgrid技巧大全如何实现将vsflexgrid中修改的数据反馈到数据库中??Private Sub vsflexgrid1_AfterEdit(ByVal Row As Long, ByVal Col As Long) rs.MoveFirst '//rs为记录集rs.Move vsflexgrid1.Row - 1rs.EditIf vsflexgrid1.text = "" Thenrs.Fields(vsflexgrid1.Col - 1) = NullElsers.Fields(vsflexgrid1.Col - 1) = vsflexgrid1.textEnd Ifrs.Updateend sub一、增加记录使用for来循环表格行。
Gridview用法大总结
由于篇幅限制,代码就不贴啦,要下载源码的请下载blogs.co m/huangjianhuakarl/Gridview.rar;希望朋友们能给出一些好的建议,本人将尽力不断完善本文!
1:在Gridview中无须编写后台代码,直接实现增除删改
2:在Gridview中添加新记录
3:在Gridview中实现编辑和更新操作
4:在Gridview中实现一次性更新所有记录
5:在Gridview中固定表头的实现
6:在Gridview中合并单元格的实现
7:在Gridview中将数据操作结果显示在Footer中8:在Gridview中添加表头
9:在Gridview中将数据导出
10:在Gridview中实现数据导入
11:在Gridview中实现嵌套功能
12:在Gridview中实现多层嵌套
13:在Gridview中实现排序
14:在Gridview中实现分页
15:Gridivew结合CheckBox控件的使用
16:Gridview结合DropDownList控件的使用
17:Gridview结合RadioButtom的使用
18:Gridview内嵌DropDownList控件
19:Gridview结合JS,在客户端结合CheckBox的使用
20:在Gridview中设置数据行的背景颜色
21:在Gridview中设置数据行的事件
22:在Gridview中设置数据行的其他属性
23:在Gridview中索引主键的使用。