各位大神好:
今天刚刚使用Fpspread, 根据我们公司的业务遇到如下几个问题,请好心的IT牛人帮忙看下该如何实现;
1. 关于Combobox下拉控件
1.1 如何绑定整个列的下拉数据,官方如下代码只能单行的绑定,不会要一个For循环去绑定,绑定数据可以是list , datatable类型吗?
FarPoint.Web.Spread.ComboBoxCellType oblistCell = new FarPoint.Web.Spread.ComboBoxCellType();
FpSpread1.Sheets[0].Columns[3].CellType = oblistCell;
FpSpread1.Sheets[0].Cells[0, 3].CellType = new ComboBoxCellType(new string[] { "男", "女" }, new string[] { "男", "女" });
1.2 表格控件已经实现类似Excel的编辑功能,这个很强大。这就意味着不需要单独用Textbox等控件输入再点添加,直接可以在表格控件实现, 但又碰到一个问题了, 比如我新增一行,第一行第一列新入职的职员,后面的下拉框带出 该职员的职位信息 如: 经理,主管,主任,文员可以供选择。这个又该如何实现呢,我知道有一个FpSpread1_UpdateCommand方法,,可是红色字体这样的绑定 没有效果。
protected void FpSpread1_UpdateCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
{
//取得事件名称
string commandName = e.CommandName;
//取得当前操作表单
FarPoint.Web.Spread.SheetView currentSheet = e.SheetView;
//取得编辑
ArrayList editValues = e.EditValues;
//获取当前 Update 列
int currentCol;
//通过判断当前元素类型获取当前列
for (int i = 0; i < editValues.Count; i++)
{
if (e.EditValues is string)
{
currentCol = i;
}
}
//通过 CommandArgument 获取当前行
int currentRow = (int)(e.CommandArgument);
//获取了行 和 列 我们就去绑定下拉框的数据啦
FarPoint.Web.Spread.ComboBoxCellType oblistCell = new FarPoint.Web.Spread.ComboBoxCellType();
FpSpread1.Sheets[0].Columns[currentCol].CellType = oblistCell;
FpSpread1.Sheets[0].Cells[currentRow , currentCol].CellType = new ComboBoxCellType(new string[] { "经理", "主管" }, new string[] { "经理", "主管" });
}
2. CheckBox 功能绑定也是遇到这样的情况
2.1 数据库有一个state的字段{Y,N},如果是Y则表明要勾选,N则不勾选,CheckBox也不像asp.net GridView一样加一个控件就有一个名字,获取那个控件名就可以直接.check=true;
2.2 还有弱弱的问一句,如何判断哪些行是被选中的呢? |
|