跨平台表格控件Spread for ASP NET 4.5 模式绑定
SpreadWeb5使用说明
For 5.0 使用指南使用指南简介 1使用指南简介Spread for 是一个综合性的、用于微软.NET平台的 应用程序开发的表格控件。
它集成了丰富的表格功能、工作表功能,并可以与多种数据源进行绑定。
一个Spread控件可以处理多达20亿个工作表,每个工作表可以有20亿行和20亿列,并且支持跨工作表的数据引用和跨工作表的公式引用。
Spread控件已经被业界公认为功能最为强大的表格控件。
Spread在中国也有了超过10年的使用历史,得到了许多软件开发人员的认可。
虽然Spread产品附带了大量的文档和示例代码,但不可否认的是,对于初次接触Spread的中国软件开发人员来讲,有时难免会觉得Spread入门不太容易。
本使用指南旨在帮助软件开发人员较快地了解和运用Spread的常用功能。
开发人员可以在了解Spread整体功能的基础上,循序渐进地学习单元格操作、行列操作和工作表操作。
每个操作都附带了具体的C#和VB代码,读者可以直接运行例子代码进行联系并查看效果。
在表格数据操作的基础上,本指南也针对高级数据操作、图形图表、以及和其他数据格式的交换方面做了进一步的介绍,并且在最后提供了常用词汇的中英文对照表,方便读者查看。
对于项目管理人员和技术主管来讲,通过对本指南中Spread主要功能的概览,可以帮助他们决策Spread是否适合于其项目的需要。
有关Spread产品的更多信息,请访问:Spread 产品网站/powertoolsSpread 技术支持论坛目录使用指南简介 (1)1.从例子入门:创建CHECKBOOK REGISTER (4)1.1添加S PREAD 控件到C HECKBOOK 工程 (4)1.2设置行和列 (4)1.3设置单元格类型 (7)1.4添加公式 (10)2.SPREAD产品介绍 (12)2.1产品概述 (12)2.2基本功能介绍 (13)2.3S PREAD 5.0 FOR 的主要新增功能 (18)3.单元格操作 (20)3.1设置单元格类型 (20)3.2设置单元格的颜色 (22)3.3合并单元格 (23)3.4锁定、解锁单元格 (25)3.5给单元格添加批注 (27)3.6设置公式 (28)4.行列操作 (30)4.1设置行列数 (30)4.2移动行列 (30)4.3调整行高、列宽 (30)4.4冻结行列 (31)4.5使用分组 (31)4.6定制行头、列头的文字 (32)4.7设置多行行头、多列列头 (33)5.工作表操作 (37)5.1使用当前工作表 (37)5.2设置背景色 (37)5.3增加工作表 (37)5.4删除工作表 (38)5.5显示或隐藏工作表 (39)5.6添加标题和子标题 (39)6.高级数据操作 (41)6.1数据绑定示例 (41)6.1.1把Spread添加到一个数据绑定项目 (41)6.1.2设置数据库链接 (41)6.1.3指定需要使用的数据 (42)6.1.4创建数据集 (43)6.1.5把Spread绑定到数据库 (43)6.1.6设置单元格类型,改善显示效果 (44)6.2数据排序 (45)6.3数据过滤 (46)6.3.1使用数据过滤 (46)7.与其他数据格式交互 (47)7.1打开E XCEL文件 (47)7.2保存为E XCEL文件 (47)7.3导出PDF (48)8.SPREAD 5 FOR 中英文术语对照 (50)1. 从例子入门:创建Checkbook Register1.1添加Spread 控件到Checkbook 工程创建一个新的Visual Studio .NET工程并命名为Checkbook。
表格控件Spread for ASP NET导入图表控件及添加事件
表格控件Spread for 导入图表控件及添加事件一、导入图表控件在日常办公总,使用Excel 会经常添加图表来使数据直观的展示出来。
Spread 兼容Excel 的巨大部分功能,当然,图表功能也是不可或缺的。
Spread 表格控件支持图表、波形图及条件格式化等多中数据可视化功能。
拼图下如何导入Excel 中的图表到Spread。
这里即阐述如何在 实现图表控件的导入。
详细操作步骤如下:1.使用Spread 打开Excel:1: this.FpSpread1.OpenExcel(this.Server.MapPath("ExcelChartI mport.xlsx"));2.如果Excel 中有多个图表,设置Excel 中各个图表都显示在第一个Sheet 中:1:2: for (int c = 0; c < FpSpread1.ActiveSheetView.C harts.Count; c++)3: {4:5: FpSpread1.ActiveSheetView.Charts[c].PageInd ex = 0;6: }3.在webconfig 文件中,添加图表配置节点。
1: <httpHandlers>2: <add path="FpChart.axd" verb="*" type="FarPoint.Web.Ch art.ChartImageHttpHandler" validate="true" />3: </httpHandlers>效果图如下:二、添加事件Spread for 中添加事件的方法十分简单方便-在前台的属性窗体中即可添加。
但是需要在后台重置Spread ,这样所有前台添加的事件都被重置。
这里我们介绍如何通过前台js 代码添加Spread 客户端事件。
表格控件Spread for ASP NET如何进行过滤操作
表格控件Spread for 如何进行过滤操作Spread 的过滤方式很多,包括基本过滤、过滤条和类似于Microsoft Excel 的过滤方式。
基本过滤方式在Spread for 7 之前提供,现在我们提供了过滤条和类似Excel 过滤方式,这无疑增加的Spread 和Excel 的兼容性。
表格控件Spread for 7 可以实现数据过滤,基本步骤为创建过滤,分配过滤到指定列。
同时,您可以定制过滤行和非过滤行背景色。
下面我们就来详细叙述如何实现过滤:1.设置基本过滤,您可以定制过滤来增强用户体验。
使用表单行过滤。
您可以在特定列中进行过滤,从而只显示符合条件的行,同时您还可以定制这些行的外观。
您可以使用基本的过来功能,同时您也可以轻松实现自定义过滤。
2.设置过滤条过滤,此过滤方式是Spread for 7 中新增功能,实现过滤条过滤我们需要结合FilterBarCellType 来设置过滤条的数据类型。
当过滤模式被设置为FilterBar 时,每一列的列头下方都会生成过滤器。
您可以当前列属性设置过滤条件。
在点击过滤按钮后,Spread 自动过滤符合条件的行。
3.Excel 样式过滤,此过滤方式是Spread for 7 中新增功能。
需要结合FilterColumnDefinition 实现。
只显示符合过滤条件的行,自动隐藏其他行。
执行过滤之后,您可以复制、查找、编辑、格式化、生成图表,并且您可以在无需重新排列或移动的条件下打印过滤数据子集。
您也可以在多列基础上进行排序。
过滤功能是可以叠加使用的,这就意味着每个过滤条件都是在当前过滤结果的基础上进行过滤的。
最后让我们一起来看下各种过滤的效果:基本过滤:过滤条过滤:Excel 样式过滤:以上就是所有内容。
表格开发控件SpreadJS单元格数据绑定
{ name: "line", displayName: "Line", cellType: l ineCellType, size: 80 },
{ name: "color", displayName: "Color", cellType: colorCellType },
{ name: "price", displayName: "Price", formatte r: "0.00" },
.vAlign(GcSpread.Sheets.VerticalAlign.center);
sheet.defaults.rowHeight = 23;
var columnCount = sheet.getColumnCount();
sheet.addColumns(columnCount, 2);
{
rce()[clickRow];
var clickItem = clickSheet.getDataSou
_dummySource.id = clickItem.id;
_ = ;
_dummySource.line = clickItem.line;
initCellLevelBind(spread.getSheet(1));
sheet.getColumn(0).visible(false);
sheet.getColumn(7).visible(false);
sheet.setIsProtected(true);
alse);
sheet.getColumn(sheet.getColumnCount() - 1).locked(f
ASP.NET数据绑定
数据绑定学习之路七: 说来也奇怪,最近做了⼀个Web的项⽬,需要⽤到分页,那么数据绑定的学习也变的很重要了,下⾯结合博客园⼤⽜们的⽂章来做个总结吧! 1.数据绑定表达式 ①表达式 <%# 数据绑定表达式 %> ②在页⾯编写代码 <%= C#代码 %> //调⽤后台变量或者⽅法的时候,会⽤到这种表达式 2.单向绑定 提供⼀个单向的只读的数据值,只能从数据源中读取数据,不能修改数据源中的数据! 语法: Eval(“列名|属性名等等”) 原理:通过反射的机制来实现绑定计算,写“Eval”会在底层调⽤DataBinder中的静态⽅法Eval! 推荐使⽤:DataBinder.Eval()⽤这种⽅式来绑定数据! 上⾯是他的三个重载⽅法! 第⼀个参数始终是 → Container.DataItem 第⼆个参数是→你要绑定的数据,如列名,属性名等等 第三个参数是→字符串格式化 如果需要详细了解,请参考:深⼊数据绑定(上),这是⼀篇深⼊理解单向数据绑定的好⽂! 3.双向绑定 双向绑定:既可以读取数据源的值,⼜可以修改数据源的值,以便进⾏数据的更新,主要⽤于GridView,DataList等⽀持编辑功能的控件! 语法: Bind(“列名|属性名等等”) 推荐⽂章:深⼊数据绑定(中)——数据双向绑定机理 4.数据绑定表达式可以是哪些类型呢? ①可以是个变量 例如:<asp:Label ID="Label1" runat="server" Text="<%= 变量名%>"></asp:Label> 注意如果是变量,变量的反问修饰符不能是私有的,必须要为“public”或“protected”的! Note:变量必须使⽤“=”才能有效果! ②可以是服务器控件的属性值 例如:<asp:Label ID="Label1" runat="server" Text="<%#TextBox2.Text %>"> </asp:Label> ③可以是⼀个数组或集合 这种类型主要针对“DropDownList”,“ListBox”这类的控件! 有⼀个数组: public string[] str = { "22", "333", "4444444", "55555555555" }; 那么你可以在前端进⾏绑定:<asp:DropDownList ID="DropDownList1"runat="server" DataSource="<%# str %>" > </asp:DropDownList> Note:你必须要在后台调⽤控件的“DataBind”⽅法,不然是没有效果的! ④可以是个表达式 这个说明,你可以使⽤⼏种数据并接成你想要的数据! 如:我们要在⼀个Label中显⽰⼀个⽤户的全名,那么我们就可以这样写<%# (Person.FirstName+"" + stName)%>。
如何使用表格控件Spread for ASP NET图表功能
series.CategoryNames.Add("服装"); series.CategoryNames.Add("家具"); belVisible = true;
3.设置 YPlotArea
FarPoint.Web.Chart.YPlotArea plotArea = new FarPoint.Web.Chart. YPlotArea(); //设置显示单位为 20% plotArea.YAxes[0].DisplayUnits = 0.5; //设置 Y 轴显示为 Percentage plotArea.YAxes[0].LabelNumberFormat = "00.0%"; //设置 YPlotArea 显示位置 plotArea.Location = new System.Drawing.PointF(0.2F, 0.2F); //设置 YPlotArea 大小 plotArea.Size = new System.Drawing.SizeF(0.6F, 0.6F); plotArea.Series.Add(series);
以上就是 Spread 图表功能的使用方法,希望帮egend legend.Location = legend.AlignmentX legend.AlignmentY = new LegendArea(); new PointF(0.98f, 0.5f); = 1.0f; = 0.5f;
5.设置标签
LabelArea label = new LabelArea(); label.Text = "产品分布"; label.Location = new PointF(0.5f, 0.02f); label.AlignmentX = 0.5f; label.AlignmentY = 0.0f;
(大数据)ASPNET五大数据控件
(大数据)ASPNET五大数据控件数据绑定控件比较(Reapter\DataList\GridView\DatailsView\FormView):1.插入功能方面:DetailsView和FormView具有插入功能,其它控件没有2.模板DataList\FormView\Repeater三种必须编辑模板,而GridView和DetailsView只有在将列转换成模板列以后才会出现各种模板.3.自动分页功能GridView ,DetailsView和FormView都是2.0版本新增控件,内置了分页,排序等等功能,其他需要手工定义4.数据呈现方式:GridView,DataList,Repeator用于呈现多列数据,DetailsView,FormView用于呈现单列数据,即常用的数据明细.DataList和Reapter都需要编辑模板列,而在模板列当中可以添加TextBox,同时可以指定TextBox的ID从而实现提取用户输入的值,但是DataGrid和GridView两个件是不需要编辑模板的,它的编辑功能是自动生成的我们无法知道那些文本框的ID,也就无法通过ID来获取用户的输入,那么可以通过对单元格的引用来实现:private void DataGrid1_UpdateCommand(object source,xx){string bkid=DataGrid1.DataKeys[e.Item.ItemIndex].toString();//提取主键string bktitle=((TextBox)e.Item.Cells[1].Controls[0]).Text;//提取用户的输入}一.进入编辑状态:DataList1.EditItemIndex = e.Item.ItemIndex;DataGrid1.EditItemIndex = e.Item.ItemIndex;GridView1.EditIndex = e.NewEditIndex;DetailsView1.ChangeMode(DetailsViewMode.Edit);//进入编辑状态DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);//退出编辑状态二.设置主键:DataList1.DataKeyField = "bkid";DataGrid1.DataKeyField = "bkid";string[] str={"bkid"};GridView1.DataKeyNames = str;三.提取主键:string bkid = DataList1.DataKeys[e.Item.ItemIndex].ToString();//DataListstring bkid = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();//DataGridstring bkid = GridView1.DataKeys[e.RowIndex].Value.ToString();//GridViewstring bkid = DetailsView1.DataKey[0].ToString();四.查找控件:string bktitle = ((TextBox)e.Item.FindControl("txtTile")).Text;//DataListstring bktitle = ((TextBox)e.Item.Cells[1].Controls[0]).Text;//DataGridstring bktitle = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;string bktitle = ((TextBox)DetailsView1.Rows[1].Cells[1].Controls[0]).Text;注意查找控件有两种方法:(各数据绑定控件的都可以用下面两种方法进行查找)1.如果知道控件的ID可以用这种方法((TextBox)e.Item.FindControl("txtTile")).Text;//这是查找2.如果不知道控件的ID可用这种方法((TextBox)e.Item.Cells[1].Controls[0]).Text;//这是索引五.给删除按钮添加确认:protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e) {if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){LinkButton lbtn =(LinkButton) e.Item.FindControl("lbtndelete");lbtn.Attributes.Add("OnClick","return confirm(‘确定要删除吗?‘)");}}protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e) {if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem){LinkButton lbtn = (LinkButton)e.Item.Cells[3].Controls[0];lbtn.Attributes.Add("OnClick","return confirm(‘确认删除?‘)");}}protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) {if(e.Row.RowType== DataControlRowType.DataRow){string strid = e.Row.Cells[0].Text;//获取第一行的字段值;e.Row.Cells[3].Attributes.Add("OnClick", "return confirm(‘确认删除\""+strid+"\"?‘)");//用了两个转义符将第一列的值用引号括起来,注意转义符后面一个将不被解释,是直接放上去;}} 程序中常用的三十三种代码(1)1. 打开新的窗口并传送参数:传送参数:response.write("<script>window.open(’*.ASP x?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)</script>") 接收参数:string a = Request.QueryString("id");string b = Request.QueryString("id1");2.为按钮添加对话框Button1.Attributes.Add("onclick","return confirm(’确认?’)");button.attributes.add("onclick","if(confirm(’are you sure...?’)){return true;}else{return false;}")3.删除表格选定记录int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];string deleteCmd = "DELETE from Employee where emp_id = " +intEmpID.ToString()4.删除表格记录警告private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e) {switch(e.Item.ItemType){case ListItemType.Item :case ListItemType.AlternatingItem :case ListItemType.EditItem:TableCell myTableCell;myTableCell = e.Item.Cells[14];LinkButton myDeleteButton ;myDeleteButton = (LinkButton)myTableCell.Controls[0];myDeleteButton.Attributes.Add("onclick","return confirm(’您是否确定要删除这条信息’);");break;default:break;}}5.点击表格行链接另一页private void grdCustomer_ItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e){//点击表格打开if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)e.Item.Attributes.Add("onclick","window.open(’Default.aspx?id=" + e.Item.Cells[0].Text + "’);");} 双击表格连接到另一页在itemDataBind事件中if(e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem){string OrderItemID =e.item.cells[1].Text;...e.item.Attributes.Add("ondblclick","location.href=’../ShippedGrid.aspx?id=" + OrderItemID + "’"); <> 程序中常用的三十三种代码(2) }双击表格打开新一页if(e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem){string OrderItemID =e.item.cells[1].Text;...e.item.Attributes.Add("ondblclick","open(’../ShippedGrid.aspx?id=" + OrderItemID + "’)");}6.表格超连接列传递参数<asp:HyperLinkColumn Target="_blank" headertext="ID号"DataTe xtField="id" NavigateUrl="aaa.aspx?id=’<%# DataBinder.Eval(Container.DataItem, "数据字段1")%>’ & name=’<%# DataBinder.Eval(Container.DataItem, "数据字段2")%>’ />7.表格点击改变颜色if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem){ e.Item.Attributes.Add("onclick","this.style.backgroundColor=’#99 cc00’;this.style.color=’buttontext’;this.style.cursor=’default’;");} 写在DataGrid的_ItemDataBound里if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem){ e.Item.Attributes.Add("onmouseover","this.style.backgroundColor=’# 99cc00’;this.style.color=’buttontext’;this.style.cursor=’default’;");e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=’’;t his.style.color=’’;");} 8.关于日期格式日期格式设定DataFormatString="{0:yyyy-MM-dd}"我觉得应该在itembound事件中e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd"))9.获取错误信息并到指定页面不要使用Response.Redirect,而应该使用Server.Transfere.g// in global.asaxprotected void Application_Error(Object sender, EventArgs e) {if (Server.GetLastError() is HttpUnhandledException)Server.Transfer("MyErrorPage.aspx");//其余的非HttpUnhandledException异常交给自己处理就okay了 :) } Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理10.清空Cookie<> 程序中常用的三十三种代码(3)Cookie.E XP ires=[DateTime];Response.Cookies("UserName").Expires = 011.自定义异常处理//自定义异常处理类using System;using System.Diagnosti CS;namespace MyAppException{ /// <summary>/// 从系统异常类ApplicationException继承的应用程序异常处理类。
farpoint中文帮助文档
2.1 产品概述 ...................................................................................................................................... 12 2.2 基本功能介绍 .............................................................................................................................. 13 2.3 SPREAD 5.0 FOR WINDOWS FORMS 的主要新增功能................................................................ 17
随着 5.0 版本的推出,Spread 增加了对于图表功能的支持。通过超过 85 种不同类型的图表和内置 的用户界面,为创建和定制图表提供了全面支持,丰富了数据的展示方式。同时,Spread 与 Excel 文 件的兼容性得到了进一步的提升。
虽然 Spread 产品附带了大量的文档和示例代码,但不可否认的是,对于初次接触 Spread 的中国 软件开发人员来讲,有时难免会觉得 Spread 入门不太容易。本使用指南旨在帮助软件开发人员较快地 了解和运用 Spread 的常用功能。开发人员可以在了解 Spread 整体功能的基础上,循序渐进地学习单 元格操作、行列操作和工作表操作。每个操作都附带了具体的 C#和 VB 代码,读者可以直接运行例子 代码进行联系并查看效果。在表格数据操作的基础上,本指南也针对高级数据操作、图形图表、以及和 其他数据格式的交换方面做了进一步的介绍,并且在最后提供了常用词汇的中英文对照表,方便读者查 看。
表格控件Spread for ASP NET使用拼接方法设置公式
表格控件Spread for 使用拼接方法设置公式鉴于论坛中有很多用户提出如何在后台拼接公式,下面给出实现方法:protected void Page_Load(object sender, EventArgs e){if (IsPostBack){return;}FpSpread1.Sheets[0].ReferenceStyle = FarPoint.Web.Sp read.Model.ReferenceStyle.R1C1;this.FpSpread1.ClientAutoCalculation = true;this.FpSpread1.Sheets[0].Cells[0, 2].Tag = "单价"; this.FpSpread1.Sheets[0].Cells[1, 3].Tag = "数量"; this.FpSpread1.Sheets[0].Cells[2, 3].Tag = "总金额"; FarPoint.Web.Spread.Cell _unitPrice = this.FpSpread 1.Sheets[0].GetCellFromTag(this.FpSpread1.Sheets[0].Cells[0, 0], "单价");FarPoint.Web.Spread.Cell _quantity = this.FpSpread1. Sheets[0].GetCellFromTag(this.FpSpread1.Sheets[0].Cells[0, 0], "数量");FarPoint.Web.Spread.Cell _toalPrice = this.FpSpread 1.Sheets[0].GetCellFromTag(this.FpSpread1.Sheets[0].Cells[0, 0], "总金额");this.FpSpread1.Sheets[0].AllowUserFormulas = true; string formula = "PRODUCT(" + "R" + (_unitPrice.Row. Index + 1).ToString() + "C" + (_unitPrice.Column.Index + 1).ToString() + "," + "R" + (_quantity.Row.Index + 1).ToString() + "C " + (_quantity.Column.Index + 1).ToString() + ")";_toalPrice.Formula = formula;}复制代码以上就是后台拼接公式的方法和代码,希望帮到你。
基于SpreadJS技术的报表自定义的研究与实现
基于SpreadJS技术的报表自定义的研究与实现发布时间:2023-01-31T06:03:27.676Z 来源:《中国科技信息》2022年第18期作者:陈佃宇李喆玮朱璇闫迪兰洋洋[导读] 近年来油田行业发展迅猛,各单位产生大量的可用数据。
陈佃宇李喆玮朱璇闫迪兰洋洋大庆油田有限责任公司第九采油厂数字化运维中心大庆油田有限责任公司第九采油厂数字化运维中心大庆油田有限责任公司第九采油厂数字化运维中心大庆油田有限责任公司第一采油厂生产维修大队大庆油田有限责任公司第九采油厂数字化运维中心摘要:近年来油田行业发展迅猛,各单位产生大量的可用数据。
本文通过SpreadJS技术实现报表的自定义数据分析,帮助决策者了解所需要数据,并对发现的问题进行调整。
关键词:自定义;数据接口引言目前油田生产大量生产数据,有些数据直接定制成固定可看得报表,但有时候需要的数据是变化的而不是固定的,这些需求很难通过软件开发快速生成相应的报表。
SpreadJS技术能够实现数据的灵活提取,同时数据可以以不同类型的图表进行展示,数据易懂可读,节省了大量的时间。
1 SpreadJS简介SpreadJS是一款基于HTML5的纯前端表格控件,兼容450多种Excel公式,具备纯前端组件跨平台应用嵌入、在线导入导出Excel、Excel 兼容度、强大的计算公式引擎,并且开源。
借助SpreadJS在线导入导出Excel的产品特性,分析数据直接导入系统,并可根据分析人员的特殊需求定制报表模板,如年、月汇总表。
SpreadJS可以实现类Excel的数据填报与展示,兼容Excel数据格式,提供高度类似Excel的使用体验,通过二次开发,可将SpreadJS嵌入报表平台,复用业务系统原始Excel报表模板、提供单元格级别的操作颗粒度,通过二次开发,可在前端解析Excel文档,满足多人协作、协同编辑、数据同步、历史查询等在线文档开发。
2设计思路2.1功能设计该系统主要从业务数据源汇总、数据面板的定义、整体查询报表页面的设计和定义、以及最终展示的角度对其进行详细设计。
ASP.NET案例教程 第9章ASP.NET的数据绑定与绑定控件
ProviderName
获取或设置.NET Framework数据提供程序的名称
1.使用SqlDataSource控件查询数据 【例9-1】演示如何使用SqlDataSource控件为数据 绑定控件GridView提供数据源。
SqlDataSource控件的主要属性(续)
SelectCommand SelectCommandType SelectParameters UpdateCommand 获取或设置SqlDataSource控件查询数据库数据所用 的SQL命令 获取或设置查询命令类型,可取的值:Text和 StoredProduce。 获取SelectCommand属性所使用的参数的参数集合 获取或设置SqlDataSource控件更新数据库数据所用 的SQL命令
【例9-4】演示如何使用SqlDataSource完成StuInfo 表的数据插入。
参见示例\第09章\DataBind\SqlDataSource_Insert.aspx
9.1.2 ObjectDataSource数据源控件
ObjectDataSource控件通过提供一种将相关页上的 数据控件绑定到中间层业务对象的方法,为三层结构 提供支持。
该控件提供了一个易于使用的向导,引导用户完 成配置过程。
完成配置后,该控件就可以自动调用 中 的类来查询或更新数据库数据。
SqlDataSource控件的主要属性
名 称 说 明
DeleteCommand
获取或设置SqlDataSource控件删除数据库数据所用 的SQL命令
DeleteCommandType 获取或设置删除命令类型,可取的值:Text和 StoredProduce,分别对应SQL命令、存储过程。
ASP.NET中数据绑定控件的使用-最新文档
ASP中数据绑定控件的使用1 引言2 正文具体的设计过程如下:第一步,使用SQL SERVER创建一数据库,内建一班级通讯录表,表结构如图2所示,录入的部分数据如图3所示。
第二步,启动VS,建立网站并设置存储路径后,向自动添加的default.aspx网页中添加相应的控件。
当向文本框中输入姓名(如“简耿程”)并单击“查询”按钮,为了在下方显示该同学的姓名和电话,要添加一个GridView控件,并为该控件设置数据来源。
数据来源可使用数据源控件来设置。
数据源控件中虽只需包含姓名、电话二列,但必须配置where子句,使用文本框中输入的值作为查询的条件。
设置的方法如图4所示。
第三步,若前二步的设置正确,则运行网页后可查看到查询对象的姓名和电话。
接下来我们要做的,就是给GridView 控件再增加一CommandField列,列中显示文字为“显示详细信息”。
该列的功能是:当单击列中“显示详细信息”时,在右边的DetailsView控件中能显示该生的详细信息。
为了实现此功能,应设置GridView 控件“启用选定内容”,此操作会为控件增加一CommandField列。
修改该列,设置其SelectText为“显示详细信息”,如图5所示。
第四步,在GridView控件右方添加DetailsView控件,并设置其数据源为班级通讯录表中的所有列。
为了让DetailsView 控件中显示的数据与GridView控件中的数据对应,在此我们应设置主从关系。
Grid view控件为主控件,DetailsView控件为从控件。
班级通讯录表中id列为主键,DetailsView控件与GridView控件中的数据要想一致,就必须两控件对应的id相等。
所以给DetailsView控件设置数据源时,应设置where子句,如图6所示,DetailsView控件中id应等于GridView控件中选中的值,即GridView1.SelectedValue。
Spread Studio基础教程--调用设计器
பைடு நூலகம்
在弹出的 Spread 设计器中可以设置几乎所有 Spread 属性:
设置完成后点击左上角 Spread Logo,选择 “Apply and Exit” 应用设置到 当前窗口。
同时,您也可以选择 “Save as” 选项保存设置为 XML 或 Excel 文件复用 模板。
以上即为 Spread 设计器的使用方法。
Spread for 提供了设计器用于手动设置 Spread 模板,使用设计器 设计模板后可以直接应用于当前窗体的 Spread 控件,同时可以保持为 XML 文件,一处设计处处应用。本篇文章即将为您阐述设计器的使用方法。 在 WebForms 窗体中调用设计器,选择 Spread 控件点击右键,选择 Spread Designer:
如何部署表格控件SpreadforASP.NET到服务器
如何部署表格控件到服务器如何部署表格控件到服务器是全球销量领先的表格控件,拥有类似Excel 的强大功能。
本篇文章将为您介绍如何部署程序到服务器上。
1.部署Spread程序需要发布以下DLL到文件夹在服务器上部署下列程序集:FarPoint.Web.Spread.dllFarPoint.CalcEngine.dllFarPoint.Excel.dllFarPoint.PDF.dllFarPoint.Web.Chart.dll(如果用到图表控件)FarPoint.Web.Spread.Extender.dll(如果用到扩展单元格类型)System.Web.Extensions.dll(如果你使用了FarPoint.Web.Spread.Extender.dll)AjaxControlToolkit.dll(如果你使用了FarPoint.Web.Spread.Extender.dll)2.添加Spread客户端资源文件夹:把fp_client文件夹(默认安装在ProgramFiles\ComponentOne\SpreadStudio8\\v8.40.20143.0\fp_client文件夹下)和它的子文件夹部署在服务器的wwwroot目录下,如果你想把它放在其他文件夹下,可以在IIS中建立对应该文件夹的虚拟路径。
fp_client文件夹也可以放在web程序目录下,但需要在web_config文件中,添加如下代码:...注意:在客户端HTML页面上创建Spread控件的同时也加载HTC文件去支持Spread在客户端的脚本功能。
3.权限需求如果在“中”信任等级的的网站上部署Spread控件,你需要在机器的config和web_mediumtrust.config文件中添加SerializationFormatter和Reflection许可。
SecurityPermission需要添加如下代码:rtion,Execution,ControlThread,ControlPrincipal,RemotingCo nfiguration,UnmanagedCode,SerializationFormatter"/>ted="true"Flags="ReflectionPermissionFlag.MemberAccess" />以上即为部署表格控件到服务器方法。
ASPNET网页设计与网站开发第9章 ASPNET中的数据绑定
9.3.3 在程序中实现绑定
在程序中如何实现DetailsView数据绑定参看例9-9。 核心语句:
DetailsView 1.DataSource = ds; DetailsView 1.DataBind();
其中ds是一DataSet类型的数据源,也可使用
DetailsView 1.DataSourceID = SqlDataSource 1; DetailsView 1.DataBind();
9.4 绑定FormView控件
FormView控件可以绑定到数据源控件上或者绑 定到其他形式的数据源上,实现自动更新、删除、 插入和分页等功能。
9.4.1 FormView控件简介
与 DetailsView 控件相似,可以使用数据源中的单个 记录 。 FormView 控件不指定用于显示记录的预定义布 局。创建一个包含控件的模板,以显示记录中的各个字 段,该模板中包含用于创建窗体的格式、控件和绑定表 达式。 不仅可以显示数据,还可以依赖于数据源控件的 功能执行诸如更新、插入和删除记录的任务 。
9.4.3 在程序中实现绑定
例9-11,核心语句:
FormView 1.DataSource = ds; FormView 1.DataBind();
其中ds是一DataSet类型的数据源,也可使用
FormView 1.DataSourceID = SqlDataSource 1; FormView 1.DataBind();
9.3 绑定DetailsView控件
DetailsView 服务器控件用于显示显示、编辑、插入 或删除一条与它相关联数据源中一条记录,将记录的每 个字段显示在它自己的一行内,它通常用于更新和插入 新记录,该控件一次仅显示一条数据记录。
SpreadJS表格控件如何自定义列数据绑定
6.绑定删除相关事件
spread.bind(GcSpread.Sheets.Events.ButtonClicked, func tion (e, args) { var clickSheet = args.sheet; var clickRow = args.row; var clickCol = args.col; var cellType = clickSheet.getCellType(clickRow, clickCol); if (cellType instanceof GcSpread.Sheets.ButtonCe llType) { var result = confirm("是否确定删除这行数据", " 确定", "取消"); if (result) { clickSheet.deleteRows(t.getActiv eRowIndex(), 1); if (clickSheet.isEditing()) { clickSheet.endEdit(); } } } });
if (index < 10) { return (parseInt(Math.random() * 100 % 6) === 0 ? -1 : 1); } else { return 1; } } function getProducts(count) { var dataList = []; for (var i = 0; i < count; i++) { var line = _lines[parseInt(Math.random() * 3)]; dataList[i] = new Product(i, line, _colors[parseInt(Math.random() * 4)], line + " " + line.charAt(0) + i, parseInt(Math.random() * 501 + 500) * _ge tSign(i), parseInt(Math.random() * 601) * _getSign (i), parseInt(Math.random() * 101), !!(Math.random() > 0.5), _ratings[parseInt(Math.random() * 4)]); } return dataList; }
跨平台表格控件Spread Studio ASP NET在各浏览器上支持的差异
跨平台表格控件Spread Studio 在各浏览器上支持的差异Spread 支持当前市场上的主流浏览器,包括:IE、Firefox、Chrome、Safari 以及Opera 等。
当Spread 表格控件被部署到服务器上时,用户向服务器发送请求,服务器会向客户端浏览器发送包含Spread 的页面信息。
Spread 表格控件在客户端被作为HTML Table 渲染。
这也就是说不同浏览器渲染出的Spread 表格控件和交互性有可能是不同的,Spread 表格控件如何展示在客户面前,取决于浏览器如何解析这些HTML 脚本。
在加载Spread 表格控件的同时,也会加载一些HTC 脚本到客户端。
本篇文章将阐述Spread for 表格控件在各主流浏览器支持上的一些差异。
IE 浏览器支持:Spread 的所有功能均支持与发布时间同期最新版的IE 浏览器。
Mozilla Firefox 浏览器支持:Spread 表格控件大部分功能都支持Mozilla Firefox,以下为不兼容MozillaFirefox 的功能列表:1.AllowHeaderResize 允许用户调整行头、列头单元格大小。
当AllowHeaderResize 设置为true 时,IE 用户可以调帐行头的宽度和列头的高度,但是该属性在Firefox 中不启作用。
当用户可以通过鼠标拖拽调整行头高度和列头宽度。
测试代码:this.FpSpread1.AllowHeaderResize = true;IE 效果图:eClipboard -剪切板复制和粘帖不启作用。
当UseClipboard 为true 时,Spread 可以从其他程序中复制并粘贴内容,但是设置为false 时,只能在Spread 单元格之间复制粘贴操作。
无法和其他应用或Spread 进行复制、粘贴操作。
3.滚动条相关属性:ScrollBarBaseColor、ScrollBarArrowColor 等属性在Firefox 中不启作用。
SpreadJS类Excel 表格控件对表格进行数据绑定
table.autoGenerateColumns(false); names.forEach(function (name, index) { var tableColumn = new GC.Spread.Sheets.Tables.TableColum n(); (labels[index]); tableColumn.dataField(name); tableColumns.push(tableColumn); });
首先要获取 table table = sheet.tables.add('brokenLineTable', 3, 0, 5, 2); 设置列头 var names = ['country', 'number1'], labels = ['country', 'number
效果
表格绑定这里所使用的是表格绑定可以对某一个单独的区域table进行绑定
SpreadJS 类 Excel 表格控件对表格进行数据绑定
在 SpreadJS 中,有三种数据绑定方式: 表单级别绑定 单元格级别绑定 表格绑定
这里所使用的是表格绑定,可以对某一个单独的区域 table 进行绑定。 这是我的数据源 var data = {}; data.brokenLine = [ { 'country': 'US', number1: 5 }, { 'country': 'China', number1: 2 }, { 'country': 'England', number1: 4 }, { 'country': 'Italy', number1: 1 }, { 'country': 'Japan', number1: 3 }, ]; window.data = data;
ASP.NET数据绑定控件详解
数据绑定控件详解ListBox、GridView、Repeater这三个数据绑定控件的“⾼效分页”,ListBox和GridView内置的有分页,但是其效率太低了,少量的数据还可以,⼤量的数据根本就没法⽤,Repeater控件本⾝不提供分页,但是在实际的开发中可能也会有⽤到分页,所以也会给⼤家讲⼀下,Repeater的分页。
好了,现在开始进⼊正题,先从⽐较常⽤的控件说起。
⼀、GridView控件主要特点:⽀持删、改,排序、分页、外观设置、⾃定义显⽰数据缺点:影响程序性能、不⽀持插⼊操作这个控件可以以表格形式(table标签)显⽰、编辑和删除多种不同的数据源(例如、XML⽂件以及集合等)中的数据。
GridView控件功能⾮常强⼤,如果需要,编程者可以不⽤编写任何代码,通过VS 2008拖拽,并从属性⾯板设置属性即可,还可以完成如分页、排序、外观设置等功能。
虽然功能⾮常齐全,但程序性能将受到影响,在页⾯中最好不要过多地使⽤该控件。
当然,如果需要⾃定义格式显⽰各种数据,GridView控件也提供了⽤于编辑格式的模板功能,但是不⽀持数据的插⼊。
图⽰:⼆、ListView控件主要特点:提供了增、删、改、排序、分页等功能,还可以⽀持⽤户⾃定义模板缺点:影响程序性能、⼤数据分页效率低ListView控件会按照编程者编写的模板格式显⽰数据。
与DataList和Repeater控件相似,ListView控件也适⽤于任何具有重复结构的数据。
不过,ListView控件提供了⽤户编辑、插⼊和删除数据等数据操作功能,还提供了对数据进⾏排序和分页的功能,只需要在VS 2008中直接设置即可,不需要编写代码,这点⾮常类似于GridView控件。
可以说,ListView既有Repeater控件的开放式模板,⼜具有GridView控件的编辑特性。
ListView控件是3.5新增的控件,其分页功能需要配合DataPager 控件实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
跨平台表格控件Spread for 4.5 模式绑定Spread for 表格控件提供了 4.5 下的模式绑定。
Spread 控件提供ItemType 属性,例如SelectMethod,UpdateMethod,InsertMethod 和DeleteMethod 属性用户模式绑定操作。
注意,模式绑定功能只适用于 .NET 4.5 及以上版本;在较低版本中使用模式绑定无效。
如果使用同时使用模式绑定和DataSourceID,控件将抛出异常。
ItemType 属性用于声明使用模式绑定中的数据。
默认情况下,它是空的。
如果你设置ItemType 和表单的SelectMethod 属性,.NET Framework 会尝试转换数据为ItemType 类型。
因此,您需要设置ItemType 和SelectMethod 属性为同一数据类型。
或者设置SelectMethod 属性为一个父数据类型。
否则,控件会抛出异常。
SelectMethod, UpdateMethod, InsertMethod, 和DeleteMethod 属性用于设置获取、更新、插入和删除数据项对应的方法。
注意以下几点:如果您设置了其中几个属性,它们将自动合并到模式绑定的属性中。
如果您只设置了SelectMethod 属性,而没有设置其他属性。
当对数据进行增删改查时,控件将抛出异常。
属性对应的方法必须是在本页面后台方法中,否则,.NET Framework 将抛出异常。
当前>NET Framework 仅支持公共方法。
使用代码:创建数据源。
绑定Spread 表格控件到数据源。
如果你愿意,可以设置ItemType 属性。
设置SelectMethod, UpdateMethod, InsertMethod, 和DeleteMethod 属性为对应的后台方法。
示例该实例演示了如何实现模式绑定。
1: <Sheets>2: <FarPoint:SheetView SheetName="Sheet1"3: AllowDelete="true" AllowInsert="true"4: ItemType="er"5: SelectMethod="GetUsers" UpdateMethod="UpdateUser" DeleteMe thod="DeleteUser" InsertMethod="InsertUser">6: </FarPoint:SheetView>7: </Sheets>把下面的代码添加到对应的后台页面中。
1: C#2:3: public IQueryable<User> GetUsers()4: {5: DeptEntities db = new DeptEntities();6: return ers.AsQueryable();7: }8:9:10: public bool UpdateUser(string login, string fullName, st ring email, string description)11: {12: int rowsAffected = -1;13: using (DeptEntities db = new DeptEntities())14: {15: // user should exist in the database in order to be u pdated16: User found = ers.FirstOrDefault(u => u.Login == login);17:18: if (found == null) return false;19:20: // except login name, all other properties of a user can be changed21: found.FullName = fullName; found.Email = email; foun d.Description = description;22:23: if (ModelState.IsValid)24: {25: rowsAffected = db.SaveChanges();26: }27: }28:29: // there should only be one user updated after running this update (1 row at a time)30: return rowsAffected == 1;31: }32:33:34: public bool InsertUser(string login, string fullName, st ring email, string description)35: {36: int rowsAffected = -1;37: using (DeptEntities db = new DeptEntities())38: {39: // login name should be unique40: User found = ers.FirstOrDefault(u => u.Login == login);41: if (found != null)42: {43: string exceptionMessage = string.Format("Login name should be unique. There is an existing user with the login name of {0}", login);44: throw new InvalidOperationException(exceptionMessag e);45: }46: // create new User47: var user = new User()48: {49: Login = login,50: FullName = fullName,51: Email = email,52: Description = description53: };54:55: // add user to model, then commit changes56: if (ModelState.IsValid)57: {58: ers.AddObject(user);59: rowsAffected = db.SaveChanges();60: }61: }62:63: return rowsAffected == 1;64: }65:66: public bool DeleteUser(string login)67: {68: int rowsAffected = -1;69: using (DeptEntities db = new DeptEntities())70: {71: User found = ers.FirstOrDefault(u => u.Login == login);72: if (found != null)73: {74: ers.DeleteObject(found);75: rowsAffected = db.SaveChanges();76: }77: }78: return rowsAffected == 1;79: }80: VB81:82: Public Function GetUsers() As IQueryable(Of User)83: Dim db As New DeptEntities()84: Return ers.AsQueryable()85: End Function86: Public Function UpdateUser(login As String, fullName As St ring, email As String, description As String) As Boolean87: Dim rowsAffected As Integer = -188: Using db As New DeptEntities()89: ' user should exist in the database in order to be updated 90: Dim found As User = ers.FirstOrDefault(Function(u) u. Login = login)91:92: If found Is Nothing Then93: Return False94: End If95:96: ' except login name, all other properties of a user can be changed97: found.FullName = fullName98: found.Email = email99: found.Description = description100:101: If ModelState.IsValid Then102: rowsAffected = db.SaveChanges()103: End If104: End Using105:106: ' there should only be one user updated after running this update (1 row at a time)107: Return rowsAffected = 1108: End Function109:110: Public Function InsertUser(login As String, fullName As St ring, email As String, description As String) As Boolean111: Dim rowsAffected As Integer = -1112: Using db As New DeptEntities()113: ' login name should be unique114: Dim found As User = ers.FirstOrDefault(Function(u) u. Login = login)115: If found IsNot Nothing Then116: Dim exceptionMessage As String = String.Format("Login name should be unique. There is an existing user with the login name of {0}", login)117: Throw New InvalidOperationException(exceptionMessage) 118: End If119: ' create new User120: Dim user = New User() With { _121: .Login = login, _122: .FullName = fullName, _123: .Email = email, _124: .Description = description _125: }126:127: ' add user to model, then commit changes128: If ModelState.IsValid Then129: ers.AddObject(user)130: rowsAffected = db.SaveChanges()131: End If132: End Using133:134: Return rowsAffected = 1135: End Function136:137: Public Function DeleteUser(login As String) As Boolean 138: Dim rowsAffected As Integer = -1139: Using db As New DeptEntities()140: Dim found As User = ers.FirstOrDefault(Function(u) u. Login = login)141: If found IsNot Nothing Then142: ers.DeleteObject(found)143: rowsAffected = db.SaveChanges()144: End If145: End Using146: Return rowsAffected = 1147: End Function以上就是Spread for 模式绑定的有关内容。