开通VIP,畅享免费电子书等14项超值服
首页
好书
留言交流
下载APP
联系客服
2013.12.11
在项目中用到了DevExpress的ASPxGridview控件,每每去配置它的时候,总感觉很是啰嗦,于是想到了用代码自动配置。
于是有了这样的代码:
foreach
(ZiyuWeb.Entity.Sys_UIConfig item
in
sConfigs)
{
switch
(item.ControlName)
case
"ASPxDropDown_ASPxCheckListBox"
:
DevExpress.Web.ASPxGridView.GridViewDataDropDownEditColumn col =
new
GridViewDataDropDownEditColumn();
//创建一个表格列;
col.FieldName = item.FieldName;
//表格列绑定的数据源字段名称
col.Caption = item.FieldDescribe;
//字段显示标题
col.Name =
"col_"
+ item.FieldName;
//列名称
col.VisibleIndex = item.OrderByID;
//显示顺序
col.Width = item.Width;
//显示宽度
col.Visible = item.UserIsVisible;
//是否可见
col.ReadOnly = item.UserReadOnly;
//是否只读
// col.EditItemTemplate = new ZiyuWeb.ASPxCheckListBox_DropDownTemplate("", item.QueryStr, col.Name);//创建该字段的编辑模板,如果是标准的DevExpress.Web.ASPxEditor则无需创建编辑模板了。但若是DropDown或者自己写的控件,就必须自行创建了。
mygridview.Columns.Add(col);
//添加到View;
break
;
}
……
有了上面代码创建的表格,则ASPxGridview控件只需要设置一下配置文件名称和数据源,便可以以一行代码来完美展现了。
ZiyuWeb.WebFunc.ZiyuDevHelper.configGridView(ASPxGridView1, "Sys_UIConfig", true, null);
创建EditItemTemplate。
class
MyTemplate_AspxCheckBoxList : ITemplate
int
_iwidth = 80;
public
Iwidth
get
return
_iwidth; }
set
{ _iwidth = value; }
ZiyuWeb.Entity.Sys_UIConfig uiconfig;
MyTemplate_AspxCheckBoxList(ZiyuWeb.Entity.Sys_UIConfig myuiconfig)
uiconfig = myuiconfig;
Iwidth = uiconfig.Width;
void
InstantiateIn(Control container)
DevExpress.Web.ASPxEditors.ASPxCheckBoxList alistbox =
ASPxCheckBoxList();
alistbox.TextField = uiconfig.FieldName;
alistbox.ValueField = uiconfig.FieldName;
if
(uiconfig.QueryStr !=
null
)
(uiconfig.QueryStr.Length > 0)
(uiconfig.QueryStr.IndexOf(
"select"
) >= 0)
System.Collections.ArrayList alist = MyHelper4Web.MyStringHelper.getTableNamefromSql(uiconfig.QueryStr);
XCode.DataAccessLayer.DAL mydal = XCode.DataAccessLayer.DAL.Create(
"common"
);
System.Data.DataTable dt = mydal.Select(uiconfig.QueryStr, alist[0].ToString()).Tables[0];
(dt.Columns.Count == 1)
for
(
i = 0; i < dt.Rows.Count; i++)
alistbox.Items.Add(dt.Rows[i][0].ToString());
else
System.Collections.ArrayList alist =
MyHelper4Web.MyConvertHelper.ConvertStringToArrayList(uiconfig.QueryStr,
";"
i = 0; i < alist.Count; i++)
alistbox.Items.Add(alist[i].ToString());
alistbox.ID =
"myCon_"
+ uiconfig.FieldName;
alistbox.ClientInstanceName =
alistbox.RepeatColumns = 3;
alistbox.TextWrap =
false
alistbox.RepeatDirection = RepeatDirection.Horizontal;
alistbox.RepeatLayout = RepeatLayout.Flow;
string
rowValue = (container
as
GridViewEditItemTemplateContainer).Text;
[] rowValueItems = rowValue.Split(
';'
List<
> rowValueItemsAsList =
>();
rowValueItemsAsList.AddRange(rowValueItems);
(ListEditItem item
alistbox.Items)
(rowValueItemsAsList.Contains(item.Value.ToString()))
item.Selected =
true
container.Controls.Add(alistbox);
微信登录中...请勿关闭此页面