很多用户询问Spread 是如何渲染到前台的?Spread 加载到前台之后又如何针对 Spread 操作呢?如何自定义Spread 单元格类型?如何定制单元格点击事件?

上面提出了一连串的问题,将在本文中得到解答。

Spread  for ASP.NET 表格控件严格遵守 W3C 标准如截图所示,我们通过IE的开发人员工具,查看下它在加载后的HTML源码:

最外层 Spread 控件:

image

内层 Spread 表单普通单元格 HTML 源码如下图,我们主要的操作范围也在这个 Table 中。它的 ID 是FpSpread1_viewport ,如果获取了这个元素,我们即可在前台针对 Spread 做一系列的操作。

无标题2

例如,在后台添给某一个特定单元格添加前台点击事件。

 1: protected override void Render(HtmlTextWriter writer)
 2: {
 3:     Table tb = this.FpSpread1.FindControl("viewport") as Table;
 4:     if (tb!=null)
 5:     {
 6:         TableCell cell = tb.Rows[0].Cells[0];
 7:         cell.Attributes.Add("onclick", "alert('测试')");
 8:     }
 9:     base.Render(writer);
 10: }

 

在让我们看看单元格类型是如何渲染到前台的:

3

以上是 ButtonCellType 的渲染截图,该单元格渲染到前台为 HTML Input 控件。

这里就不一一通过截图列举了。

CheckBoxCellType 渲染到前台为:

 1: <input name="FpSpread1$1,1" tabindex="-1" id="FpSpread1_1,1" type="checkbox"/> 

HyperLinkCellType 渲染到前台为:

 1: <a href="/developer" target="_blank">

ComboBoxCellType 渲染到前台为:

 1: <select name="FpSpread1$ctl05" tabindex="-1" id="FpSpread1_ctl05" 
style="left: -2000px; top: -2000px; width: 100%; position: absolute;">

ListBoxCellType 渲染到前台为:

 1: <select name="FpSpread1$ctl09" tabindex="-1" id="FpSpread1_ctl09" 
style="left: -2000px; top: -2000px; width: 100%; position: absolute;" size="3">

RadioButtonListCellType渲染到前台为:

 1: <input name="FpSpread1$5,1" tabindex="-1" 
id="FpSpread1_5,1_0" type="radio" value="Red"/>

 

更详细渲染方式,可以通过 Demo 查看:

Demo 下载:编辑环境 VS2010 && Spread for ASP.NET 7.0 && C# 点击下载