找回密码
 立即注册

QQ登录

只需一步,快速开始

lgxl6925

初级会员

43

主题

130

帖子

397

积分

初级会员

积分
397

微信认证勋章

lgxl6925
初级会员   /  发表于:2016-3-21 10:15  /   查看:4347  /  回复:5
本帖最后由 lgxl6925 于 2016-3-21 10:41 编辑

读取oracle数据库到dataset
............................................
dataset ds=new dataset();
dsp.fil(ds,"表名");
fpspread1.datasource=ds;
fpspread1.databind();
///////能正常显示,修改数据后,如何更新dataset?

6 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-3-21 10:47:13
沙发
您好,当你修改数据后点击下方对号的时候会触发事件,此时您可以接收到改变数据

  1.       protected void Page_Load(object sender, EventArgs e)
  2.         {

  3.             FpSpread2.DataSource = ds;
  4.             FpSpread2.DataBind();

  5.             FpSpread2.CreateButton += FpSpread2_CreateButton;
  6.                }

  7.         private void FpSpread2_CreateButton(object sender, FarPoint.Web.Spread.CreateButtonEventArgs e)
  8.         {
  9.             if (e.Command == "Update")
  10.             {
  11.                 var ds = FpSpread2.DataSource as DataSet;
  12.                 var dt = ds.Tables[0];
  13.             }

  14.         }
复制代码

点评

发表于 2016-3-22 09:32
回复 使用道具 举报
lgxl6925
初级会员   /  发表于:2016-3-21 13:42:28
板凳
能直接改写后台oracle数据库吗?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-3-21 13:56:04
地板
lgxl6925 发表于 2016-3-21 13:42
能直接改写后台oracle数据库吗?

这个需要自己实现。
回复 使用道具 举报
lgxl6925
初级会员   /  发表于:2016-3-22 09:30:33
5#
谢谢:
private void FpSpread2_CreateButton(object sender, FarPoint.Web.Spread.CreateButtonEventArgs e)
        {
            if (e.Command == "Update")
            {
              oraclecommandbuilder cb=new oraclecommandbuilder(dap);
              dsp.update(ds,"表名")
            }

        }
成功了。
只是还有几个问题不明白:
1,页面加载和提交,都会执行一次:dsp.update(ds,"表名")
而页面加载时是不须更新的。
2.e.Command == "Update",
这里的"update",与其它的"delete","copy"等等效果都一样,每次提交,e.command的值都循环一次。
和用户的操作是修改还是删除没什么关系。对吗?
3.createbutton事件:只要有了这个事件,后台dataset就会更新,理解对吗?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-3-22 11:56:58
6#
1.加上isPostBack判断时候是回调。
  1.   if (IsPostBack)
  2.             {
  3.                 if (e.Command == "Update")
  4.                 {
  5.                     var ds = FpSpread2.DataSource as DataSet;
  6.                     var dt = ds.Tables[0];
  7.                 }
  8.             }
复制代码

2. 这个我试了下的确如您所说点击update也会触发其他命令,这个具体情况我还需要再调查一下。
3. 这个时间主要是接收前台的事件,你只有在点击下方按钮后才会触发。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部