0

我们的一位用户决定他们需要能够在我们的主网站上编辑部分内容,我被赋予了实施它的任务。底层模型是页面中的一个或多个 div 将从 CMS 填充其内容。

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

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

我不想为了性能问题而同时渲染两个控件。我正在考虑创建一个第三组件(可能是一个隐藏字段)来存储编辑后的文本,但希望这里的某个人可能对如何构建它有更好的了解?

4

2 回答 2

0

最好的办法是让编辑器成为一个单独的页面——将它们放在一起会带来很多挑战,有点危险(你怎么知道公众不能编辑它)并产生长期维护问题。

于 2011-07-27T16:26:09.520 回答
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');

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

只是一个想法/选项

于 2011-08-05T10:08:29.497 回答