我们有一个关于rad dock控件的优化问题。项目的需求是,我们在运行时创建动态raddock并将其添加到raddockzone中,然后将raddock "type“等保存在mssql数据库中。我们还有一个收集器窗口/raddockzone,我们在其中构建了一个功能,我们可以在其中拖动一个dock并将其保存在收集器中。与第一个raddockzone一样,我们在收集器中动态添加了dock。现在,当添加一个码头或将其移动到另一个雷达码头区域时,需要一些时间。我们的客户正在将其与演示链接的示例进行比较:http://demos.telerik.com/aspnet-ajax/dock/examples/content/defaultcs.aspx
下面是我们用来动态添加dock的代码片段:
private RadDockNew CreateRadDock()
{
//string[] allowedZones = { "RDZCollector", "RadDockZone2" };
int width = Convert.ToInt32((hdnWidth.Value == "") ? "520" : hdnWidth.Value);
RadDockNew dock = new RadDockNew();
dock.DockMode = DockMode.Docked;
dock.UniqueName = Guid.NewGuid().ToString().Replace("-", "a");
dock.ID = string.Format("RadDock{0}", dock.UniqueName);
//dock.Title = dock.UniqueName.Substring(dock.UniqueName.Length - 3);
dock.Width = Unit.Pixel(width);
dock.CssClass = "RadDockZoneMain";
//dock.AllowedZones = allowedZones;
dock.Style.Add("min-height", "290px");
dock.OnClientDockPositionChanged = "DropInCollector";
//dock.EnableViewState = false;
DockCommand cmd = new DockCommand();
cmd.Name = "Setting";
cmd.Text = "Setting";
cmd.OnClientCommand = "showSettings";
dock.Commands.Add(cmd);
DockCommand dc = new DockCommand();
dc.Text = "Trash";
dc.Name = "Trash";
dc.OnClientCommand = "CloseDock";
dc.CssClass = "rdClose";
dc.AutoPostBack = true;
dock.Commands.Add(dc);
DockToggleCommand cmd2 = new DockToggleCommand();
cmd2.CssClass = "rdCollapse";
cmd2.AlternateCssClass = "rdexpand";
cmd2.OnClientCommand = "ChangeImage";
//DockCommand collapse = new DockCommand();
//collapse.Text = "Collapse/Expand";
//collapse.Name = "Collapse/Expand";
//collapse.OnClientCommand = "CollapseDock";
//collapse.CssClass = "rdCollapse";
dock.Commands.Add(cmd2);
return dock;
}请告诉我有没有什么方法可以优化它/使它更快。
谢谢。
发布于 2011-12-05 16:58:31
我检查了附加的代码样本,我认为它是正确的。我的建议是,如果您使用其他存储介质而不是数据库,或者在包含RadDocks的页面上是否存在客户端脚本错误,则检查问题是否仍然存在。
由于您项目的设置似乎与My Portal演示中实现的设置类似,因此我建议使用代码库文章Saving State of Dynamically Created RadDocks in DataBase using Hidden UpdatePanel中的示例作为参考。
https://stackoverflow.com/questions/8381177
复制相似问题