找回密码
 立即注册

QQ登录

只需一步,快速开始

clerkie

中级会员

3

主题

10

帖子

789

积分

中级会员

积分
789

活字格认证

最新发帖
clerkie
中级会员   /  发表于:2012-12-4 16:54  /   查看:10643  /  回复:11
VS2005 + Spread.Net 4.0, ASP.net 2.0
工具栏上有个Add a row或Insert a row的按键,但不知道点击后怎么触发后台的事件,请指教,谢谢!

11 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-4 19:06:00
沙发
回复 1楼clerkie的帖子

Spread 中的以上两个按钮点击之后,会触发InsertCommand事件。
回复 使用道具 举报
clerkie
中级会员   /  发表于:2012-12-5 08:46:00
板凳
回复 2楼dof的帖子

谢谢版主的回复~~

但不知道为什么,我的Spread没有触发任何事件哦,Spread控件需要放在Update Pannel里面吗?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-5 09:16:00
地板
clerkie

你是给Spread绑定的数据源吗,如果是绑定数据源该事件会在你插入数据并点击Update之后触发。

你现在是有什么样的功能需求呢,希望在点击Add时触发后台事件进行什么样的操作,我看是否有其他替代方案。
回复 使用道具 举报
clerkie
中级会员   /  发表于:2012-12-5 09:22:00
5#
回复 4楼dof的帖子

感谢您的热情帮助!

我是先将需要处理的数据获取到DataTable中,再将DataTable绑定到Spread的DataSource上展现数据。

我想要的效果:用户点击Insert a row后,我将新插入的数据行进行一些必要的初始化,以便于用户在线填写一些相应的数据,在用户将数据填写完后,点击Spread工具栏的 √ 图标,将数据提交回服务器上储存起来。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-5 12:19:00
6#
可以从写Add的默认行为,然后在后台完成初值的设置,比如以下代码:

  1.         protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (!IsPostBack)
  4.             {
  5.                 DataTable dt = new DataTable();               
  6.                 dt.Columns.Add("编号");
  7.                 dt.Columns.Add("名称");
  8.                 dt.Columns.Add("创建人");
  9.                 dt.Columns.Add("创建时间");
  10.                 dt.Rows.Add(10001, "Spread", "葡萄城控件", DateTime.Now);

  11.                 FpSpread1.DataSource = dt;
  12.                 FpSpread1.ActiveSheetView.Columns[3].Width = 200;
  13.             }
  14.         }

  15.         protected override void Render(HtmlTextWriter writer)
  16.         {
  17.             WebControl add = FpSpread1.FindControl("Add") as WebControl;
  18.             if (add != null)
  19.             {
  20.                 add.Attributes.Add("onclick","return CAdd();");
  21.             }
  22.             base.Render(writer);
  23.         }

  24.         protected void FpSpread1_ButtonCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
  25.         {
  26.             if (e.CommandName == "CAdd")
  27.             {
  28.                 int row = FpSpread1.ActiveSheetView.RowCount;
  29.                 FpSpread1.ActiveSheetView.Rows.Add(row, 1);
  30.                
  31.                 FpSpread1.ActiveSheetView.Cells[row, 0].Value = Convert.ToInt32(FpSpread1.ActiveSheetView.Cells[row - 1, 0].Value.ToString()) + 1;               
  32.                 FpSpread1.ActiveSheetView.Cells[row, 2].Value = "葡萄城控件";
  33.                 FpSpread1.ActiveSheetView.Cells[row, 3].Value = DateTime.Now;               
  34.             }
  35.         }
复制代码

  1.     <script type="text/javascript" language="javascript">
  2.         function CAdd() {
  3.             FpSpread1.CallBack("CAdd");
  4.         }
  5.     </script>
复制代码

7226_DefaultValue.zip (9.71 KB, 下载次数: 1154)
回复 使用道具 举报
clerkie
中级会员   /  发表于:2012-12-6 10:28:00
7#
回复 6楼dof的帖子

感谢版主的热情帮助,问题已经解决!

另外,请教一下,我如果想将ComboBoxCellType扩展为下拉一个类似DataGrid的表格,让用户直接选择表格中的其中一个单元格(因选项太多,用普通ComboBox下拉的话太长,用户选择也不方便,体验欠佳),不知道Spread能否做得到?谢谢,问题有点多,请见谅!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-6 11:40:00
8#
MultiColumnComboBoxCellType 可以显示一个表格,但是只能返回其中一列的数据,不能选择任意单元格作为返回值。
回复 使用道具 举报
clerkie
中级会员   /  发表于:2012-12-6 12:39:00
9#
回复 8楼dof的帖子

能否将DataGrid之类的控件嵌入Spread.net中呢?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-6 16:41:00
10#
回复 9楼clerkie的帖子

自定义 PopupCellType 实现方法通常情况可以通过自定义单元格类型来实现,比如这篇这篇文章中的实现方法:
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部