ultragrid列的问题下拉列表框可编辑等等
最近项目中要把ultrawebgrid的一列编程弹出日历控件,但是ultrawebgrid没有找到模板列这个功能,所以就自己弄了一个弹出日历选择控件的样子。
是这样做的:先做一个隐藏的image或者什么,然后弄个弹出层之类的,总之就是在ultrawebgrid的onclick事件调用image的click事件,
然后弹出日历选择的div,然后把值再赋给ultrawebgrid的cell,但是这里又遇到了一个问题,因为这个cell是与数据库绑定的,所以一定要注意ultrawebgrid的每一个cell的类型,因为开始的时候绑定的是数据库的日期字段,不知道是number类型还是datetime类型,然后哪个cell虽然是可编辑的,但是就是不能把值放上去,后来把这个cell的类型改为string类型就可以了。然后及时要把ultrawebgrid的cell编程可编辑的。代码如下
//grid上加一列 _gridRegistFileCategoryColumns.Add("Expirydate", "Text", 4, 50, false); //change type this.GridRegistFileCategory.Columns.FromKey("Expirydate").DataType = System.Type.GetType("System.String").ToString(); //can update _gridRegistFileCategory.Columns.FromKey("Expirydate").AllowUpdate = AllowUpdate.Yes; //can edit e.Row.Cells.FromKey("Expirydate").AllowEditing = AllowEditing.No;
前台页面
//在grid上添加oncick事件 <ClientSideEvents AfterExitEditModeHandler="SetEditFlag" AfterCellUpdateHandler="AfterCellUpdate"> </ClientSideEvents> //click event function OnMouseUp(tableName, itemName) { var column = igtbl_getColumnById(itemName); if (column != null) { var cell = igtbl_getCellById(itemName); if (cell != null) { if (cell.Column.Key == "EXPIRYDATE") { document.getElementById("<%=txtChangedDate.ClientID %>").value = cell.getValue(); document.getElementById("<%=txtChangedDate.ClientID %>").click(); if (document.getElementById("<%=txtChangedDate.ClientID %>").value == "null") { cell.setValue(" "); } else { cell.setValue(document.getElementById("<%=txtChangedDate.ClientID %>").value); } } }
return false; }