原帖由 Zera 于 2011-6-9 10:14:00 发表
你好,你可以在Page_Load事件中加载第一个ComboBox的数据,在FpSpread1_UpdateCommand事件中得到第一个ComboBox选择的值并加载第二个ComboBox的值
protected void Page_Load(object sender, EventArgs e)
{
if ......
我试了这种方法,在FpSpread1_UpdateCommand中初始化联动列combobox用的代码如下:
protected void fpsprd_UpdateCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
{
int c = e.SheetView.ActiveColumn;
int r = e.SheetView.ActiveRow ;
if (c == 1)
{
string sqlqry = "select col_a from table_a where col_b ='"+e.EditValues[1] +"'";
string constr = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString.ToString();
SqlConnection conn = new SqlConnection(constr);
SqlDataAdapter da = new SqlDataAdapter(sqlqry,conn);
DataSet dsctgr = new DataSet();
conn.Open();
da.Fill(dsctgr);
conn.Close();
FarPoint.Web.Spread.ComboBoxCellType cmbctname = new ComboBoxCellType();
cmbctname.DataSource = dsctgr;
//cmbctname.DataTextField = "col_a";
cmbctname.ShowButton = true;
//cmbctname.AutoPostBack = true;
fpsprd.Sheets[0].Cells[r,2].CellType = cmbctname;
}
}
在调试中看到最后一句CellType 里的参数Items里已经有了查询出的数组,但页面上单元格还是普通样式,没有变成combobox,要点一下update按钮后,这一列才变成combobox,里面也同时有了数据,如何能不用点update按钮就能实现自动初始化这一列? |