2011-07-27 106 views
0

我们的一位用户已决定他们需要能够编辑我们主网站上的内容部分,并且我已被授予实施它的任务。基础模型是,页面中的一个或多个div将从CMS中填充其内容。CMS内容编辑器/查看器

为了传递内容,我使用观察者模型来传递内容,这很好。该页面包含(至少)3个服务器控件;数据提供者(CMS),控制者(主体)和容器(观察者)。该容器将包含两个内容面板(编辑或查看)中的一个,这些面板将使用从控制器推送的数据适当地在屏幕上呈现。

但是,现在我需要能够在编辑器和查看器面板之间切换(因此可以预览更改),并且能够将编辑的内容发布到数据提供商(CMS),但是我不断丢失编辑的内容在回发。我试图覆盖'SaveViewState'方法,但因为内容面板是在预渲染期间创建的(因为它依赖于ViewState属性),所以控件集合总是显示之前创建的对象(即当编辑面板是被显示,控制集合中的对象是预览面板)。

我不想走两条控制渲染性能问题的道路;我正在考虑创建一个第三部分(可能是一个隐藏的领域),将存储编辑的文本,但希望在这里有人可能有一个更好的想法如何构建这个?

回答

0

最好的办法是让编辑器成为一个单独的页面 - 将它们集合在一起会带来很多挑战,存在一些危险(您怎么知道公众无法编辑它)并创建长期维护问题。

+0

给出的作品的时候,但显然这不是真实需要什么这是我原来的建议... – Dave

+0

有创造性的方式来绕开这个问题。就像一个带有iframe的ajax popover一样。 。 。 –

0

似乎你帮我我可以提出一个建议:

有普通视图和页面编辑视图如果用户是正确的用户级的。

在正常视图下有一个表示编辑的按钮,在编辑视图下有一个按钮叫做预览。

当预览按钮被点击:

$(".previewbutt").live("click",function(){ code to update database and update div content }); 

上面的代码应该首先用于提交表单

$.ajax({async:false, url:'',data:}); 

然后做另一个调用来获取内容,更新正常显示DIV ,将editordiv设置为隐藏

$('.normalview').show('slow'); 
$('.editor').hide('slow'); 

会有一个短的动画,但会涵盖所有的基础。

只是一个想法/选项