非常感谢版主如此耐心的帮助。
有件事我在发帖时没有说明,因为我想把问题简单化,另外我认为只要是动态加载,应该是通用的。目前看来好像不具有通用性。
我想动态生成c1gridview,每行数据是动态生成的,生成的语句是:
C1GridViewRow tr = new C1GridViewRow(C1_table.Rows.Count, 0, C1GridViewRowType.DataRow, C1GridViewRowState.Normal);
C1_table.Controls[0].Controls.AddAt(C1_table.Controls[0].Controls.Count-1, tr);
语句中的C1_table是传递的c1gridview对象。
每行的单元格也是动态生成的,由于每列的数据类型不同,生成单元格的语句不同,下面是我生成日期单元格的语句:
public TableCell CreateCellDate(String tID, string tText, int tPoint, int twidth, int tHeight, int lwidth, int lHeight, bool pReadOnly, String tip_str)
{
C1.Web.UI.Controls.C1Calendar.C1Calendar mycal = new C1.Web.UI.Controls.C1Calendar.C1Calendar();
C1.Web.UI.Controls.C1Input.C1DateInput num_input = new C1.Web.UI.Controls.C1Input.C1DateInput();
num_input.ID = tID;
mycal.ID =tID+ "mycal";
mycal.Width = twidth;
mycal.PopupMode = true;
num_input.WebCalendar = mycal.ClientID;
num_input.Width = twidth;
num_input.Height = tHeight;
num_input.CustomButtonAlign = C1.Web.UI.Controls.C1Input.ButtonsDisplayPosition.Right;
num_input.UpDownAlign = C1.Web.UI.Controls.C1Input.ButtonsDisplayPosition.None;
num_input.CalendarPopupPosition = C1.Web.UI.Controls.C1Input.CalendarPopupPositionEnum.Below;
num_input.Text = tText;
num_input.ToolTip = tip_str;
tablecell.Controls.Add(num_input);
tablecell.Controls.Add(mycal);
tablecell.Width = lwidth;
tablecell.Height = lHeight;
tablecell.BorderWidth = 1;
return tablecell;
}
不知道是我的语法不对,还是本来这样写就是不行呢。
附带说明一句,动态生成c1gridview的函数是在protected void Page_Load(object sender, EventArgs e)调用的,应该没问题。
目前,我实现的单元格类型有:number、checkbox、textbox、DropDownList,如果能把日期也实现啦,就很完美啦。
多谢版主给以指点! |