找回密码
 立即注册

QQ登录

只需一步,快速开始

szpzr

高级会员

139

主题

554

帖子

1763

积分

高级会员

积分
1763

活字格认证

[已处理] EditChange激发

szpzr
高级会员   /  发表于:2019-6-28 10:19  /   查看:3402  /  回复:7
spread11中,EditChange事件激发需如何设置?

7 个回复

倒序浏览
szpzr
高级会员   /  发表于:2019-6-28 10:30:22
沙发
是spread10版本
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-6-28 11:06:03
板凳
没太明白,您现在什么需求?
回复 使用道具 举报
szpzr
高级会员   /  发表于:2019-6-28 13:10:10
地板
单元格的EditChange事件中加入下列代码:
int I = fpSpread1.Sheets[0].ActiveRowIndex;
            string MaterialName = fpSpread1.Sheets[0].Cells[I, 8].Text;
            if (MaterialName.Trim() != "")
            {
                SqlStr = "Select MaterialNo From MaterialList where MaterialName like '%" + MaterialName + "%'";
                MyDataClass.con_open();
                SqlDataAdapter Da = new SqlDataAdapter(SqlStr, DataClass.MyMeans.My_con);
                DataSet Ds = new DataSet();
                Da.Fill(Ds, "MaterialList");
                if (Ds.Tables[0].Rows.Count > 0)
                {
                    string[] cbstr = new string[Ds.Tables[0].Rows.Count];
                    for (int II = 0; II < Ds.Tables[0].Rows.Count; II++)
                    {
                        //fpSpread1.Sheets[0].Cells[I, J].Text = Ds.Tables[0].Rows[II]["DyeName"].ToString();
                        cbstr[II] = Ds.Tables[0].Rows[II]["MaterialName"].ToString();
                    }
                    ComboCell.Items = cbstr;
                    //展开列表
                    var combo = fpSpread1.EditingControl as FarPoint.Win.FpCombo;
                    combo.DroppedDown = true;
                    fpSpread1.Focus();//必须加此句,否则会激发窗体的Activated事件,不知原因?
                }
                Ds.Clone();
                Ds.Dispose();
                Da.Dispose();
            }
为何没有触发事件?
窗体的load事件中:
fpSpread1.EditMode = true;
            //指定自动完成的模式及数据源
            ComboCell.Editable = true;//单元格允许编辑
            ComboCell.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            ComboCell.AutoCompleteSource = AutoCompleteSource.ListItems;
            fpSpread1.EditModePermanent = true;
            fpSpread1.Sheets[0].Columns[0].CellType = ComboCell;
            this.fpSpread1.ButtonDrawMode = FarPoint.Win.Spread.ButtonDrawModes.CurrentRow;//当前行显示下拉框
回复 使用道具 举报
szpzr
高级会员   /  发表于:2019-6-28 13:21:56
5#
spread9中可以使用
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-6-28 15:15:54
6#
我理解您是在根据用户输入动态加载combo 的数据。升级后事件没有触发,导致没办法动态获取数据了?
最好您能提供个Demo,这样保证我们测试和理解的一致,也能加快问题的处理。
回复 使用道具 举报
szpzr
高级会员   /  发表于:2019-6-28 15:24:28
7#
已解决,还有个问题,动态查询出现下拉框后,如何使用键盘上下箭头键选择item?谢谢指教!
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-7-1 21:42:22
8#
上下选择应该是下拉框本来就有的功能,你可能需要让下拉框获取下焦点。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部