qd98zhq 发表于 2014-12-26 09:44:00

得到Spread表格控件数据修改状态

现在我有一个问题,比如Spread控件中有几千条记录,有什么方法能快速得到Spread表格控件新增状态、修改状态或删除状态的数据呢?谢谢,麻烦了。

iceman 发表于 2014-12-26 15:17:00

回复 1楼qd98zhq的帖子

qd98zhq 你好,

Spread 本身没有提供快速查找增删改查数据操作的接口,新增和删除都应该是通过代码控制的,所以我们可以拿到新增或删除行的信息。

修改状态是指的更改 Cell 文本吗?可以通过 EditChange事件来获取。

谢谢

qd98zhq 发表于 2014-12-27 10:24:00

1.在spread控件列表中的回车键默认动作是跳转到向下一行的单元格,能否可以根据我需要控制跳转呢,比如我回车后跳转在同一行的下一个单元格(如:从A1到B1),并非为下一行的单元格。
2.spread wpf 控件数据绑定的方法有哪几种呢,请详细说明有哪几种,用法是怎么样的。
不胜感谢。

iceman 发表于 2014-12-29 12:26:00

回复 3楼qd98zhq的帖子

问题一,可以通过更改KeyMap行为实现:

gcSpreadSheet1.View.KeyMap.Remove(new KeyStroke(Key.Enter, ModifierKeys.None));
gcSpreadSheet1.View.KeyMap.Add(new KeyStroke(Key.Enter, ModifierKeys.None), SpreadActions.NavigationRight );

iceman 发表于 2015-1-7 10:03:00

回复 3楼qd98zhq的帖子

问题二,请问您具体想实现哪些功能?Spread目前只有一种数据绑定方式:

gcSpreadSheet1.Sheets.DataSource = dt;


如果是希望实现数据的同步,可以通过2#方法实现。
重现加载及刷新数据方法如下:

private void button1_Click(object sender, RoutedEventArgs e)
{
      gcSpreadSheet1.Sheets.ReloadBindingData();
      gcSpreadSheet1.Invalidate();
}


谢谢

qd98zhq 发表于 2015-1-10 08:05:00

谢谢以上的解答,如果是以gcSpreadSheet1.Sheets.DataSource = dt; 这种方式绑定,我又有两个问题:
1.我如何在spread控件中绑定的显示指定列(比如,DataTable中有30列,我只要绑定显示其中的10列显示出来,其余的不显示,前端的代码该如何实现呢),能否提供一个DEMO,现在我又研究到这里停止了,谢谢帮忙解答。
2.用这种方式的同时,我想另外用TextBox控件绑定spread控件列表显示的某一列,又该如何实现。实现效果图如下:


请帮忙看一下,困扰我很久这两个问题,不胜感谢。

iceman 发表于 2015-1-12 14:29:00

回复 6楼qd98zhq的帖子

问题1、测试代码如下:

            DataTable dt = new DataTable("Test");
            System.Data.DataRow dr = default(System.Data.DataRow);
            dt.Columns.Add("Series0");
            dt.Columns.Add("Series1");
            dr = dt.NewRow();
            dr = 2;
            dr = 1;
            dt.Rows.Add(dr);

            gcSpreadSheet1.Sheets.DataSource = dt;
            gcSpreadSheet1.Sheets.AutoGenerateColumns = false;
            gcSpreadSheet1.Sheets.Columns.DataField = "Series1";
            gcSpreadSheet1.Sheets.Columns.DataField = "";
            gcSpreadSheet1.Invalidate();


问题2,请问是希望设置 Spread 某一列的单元格编辑器为 TextBox 吗?

qd98zhq 发表于 2015-1-12 14:43:00

问题2 并非是希望设置 Spread 某一列的单元格编辑器为 TextBox ,而是我在界面另外独立显示Textbox控件,我只是想让这个独立显示textbox控件与Spread 某一列同步显示:比如:第一行的Series1 列内容为 “服务1”,textbox的内容也是"服务1";第二行的Series1 列内容为 “服务XX”,textbox的内容也是"服务XX"。

iceman 发表于 2015-1-12 17:43:00

回复 8楼qd98zhq的帖子

我理解这个需求就是希望获取当前活跃行的特定 Cell 文本,并且设值给 TextBox。可以通过 SelectionChanged 事件来获取当前行,进而取得对应值即可。

如果我理解的有误,还请进一步指出来。

谢谢

qd98zhq 发表于 2015-1-22 17:53:00

现在有一个问题,绑定方式为:gcSpreadSheet1.Sheets.DataSource = dt;
1.绑定后显示出来后,我在spreadsheet1 中修改某个单元格的值,为什么修改的值没有立刻更新到dt中的呢,代码写或如何操作。谢谢
页: [1] 2
查看完整版本: 得到Spread表格控件数据修改状态