这篇文章分享怎样在 Cell 中添加自定义控件。
1.实现方法:
a.继承 BaseCellType 创建自定单元格类型。
b.重载 PaintCell 和 GetEditorControl 方法添加自定义控件。
2.具体实现步骤:
a.创建用户自定义控件 - UserControl,我在这里添加了 FileUpload 和 Calendar 标准控件。
效果图:
自定义单元格类型,代码如下:
[Serializable] public class TestWebControlInCell : FarPoint.Web.Spread.BaseCellType { public override Control PaintCell(string id, TableCell parent, FarPoint.Web.Spread.Appearance style, FarPoint.Web.Spread.Inset margin, object value, bool upperLevel) { Control twc; twc = parent.Page.LoadControl("WebUserControl1.ascx"); twc.ID = "NewID"; return twc; } public override Control GetEditorControl(string id, TableCell parent, FarPoint.Web.Spread.Appearance style, FarPoint.Web.Spread.Inset margin, object value, bool upperLevel) { return null; } } 复制代码
c.应用单元格类型到 Cell 上,代码如下:
protected void Page_Load(object sender, EventArgs e) { TestWebControlInCell usercontrol = new TestWebControlInCell(); this.FpSpread1.ActiveSheetView.Cells[0, 0].CellType = usercontrol; this.FpSpread1.ActiveSheetView.Columns[0].Width = 300; this.FpSpread1.ActiveSheetView.Rows[0].Height = 300; } 复制代码
Demo 下载:
编辑环境:VS2010 && Spread for ASP.NET 5.0