2013-06-14 15 views
0

Я использую EventHandler на моем XPage, чтобы спасти мою источник данных (frmData):DATASOURCE удалось сохранить Richtext позицию

<xp:eventHandler 
    id="saveEventHandler" 
    submit="true" 
    save="true" 
    event="calledbyid" 
    refreshMode="complete" 
> 
    <xp:this.action><![CDATA[#{javascript:frmData.save(); 
    context.redirectToPage("index.xsp")}]]></xp:this.action> 
</xp:eventHandler> 

Это называется заказными Properites:

<xe:basicLeafNode 
onClick="XSP.executeOnServer('#{id:saveEventHandler}')" 
label="Save" 
rendered="#{javascript:currentDocument.isEditable()}" 
> 
</xe:basicLeafNode> 

То есть г-н Джереми Код Hodge для запуска сервера на сервер:

XSP.executeOnServer = function() { 
// must supply event handler id or we're outta here.... 
if (!arguments[0]) 
    return false; 

// the ID of the event handler we want to execute 
var functionName = arguments[0]; 

// OPTIONAL - The Client Side ID that you want to partial refresh after executing the event handler 
var refreshId = (arguments[1]) ? arguments[1] : "@none"; 
var form = (arguments[1]) ? this.findForm(arguments[1]) : dojo.query('form')[0]; 

// catch all in case dojo element has moved object outside of form... 
if (!form) 
    form = dojo.query('form')[0]; 

// OPTIONAL - Options object contianing onStart, onComplete and onError functions for the call to the 
// handler and subsequent partial refresh 
var options = (arguments[2]) ? arguments[2] : {}; 

// OPTIONAL - Value to submit in $$xspsubmitvalue. can be retrieved using context.getSubmittedValue() 
var submitValue = (arguments[3]) ? arguments[3] : ''; 

// Set the ID in $$xspsubmitid of the event handler to execute 
dojo.query('[name="$$xspsubmitid"]')[0].value = functionName; 
dojo.query('[name="$$xspsubmitvalue"]')[0].value = submitValue; 
this._partialRefresh("post", form, refreshId, options); 
} 

Все значения полей в форме сохраняются за исключением тех, которые Rich Text Item.

Когда я использую простое событие onclick button Вместо того, чтобы использовать выше даже обработчик, этот Rich Text Item saved !!

<xp:button 
    value="Label" 
    id="button1" 
    xp:key="facet_3" 
> 
<xp:eventHandler 
    event="onclick" 
    submit="true" 
    refreshMode="complete" 
> 
    <xp:this.action> 
    <xp:saveDocument 
    var="frmData" 
    > 
     </xp:saveDocument> 
    </xp:this.action> 
</xp:eventHandler> 
</xp:button> 

Пожалуйста, дайте мне знать, как обращаться с этим обработчиком событий?

-mak

+0

Как вы называете свой обработчик событий? –

+0

Я добавляю детали в свой вопрос, пожалуйста, просмотрите. –

+1

Пожалуйста, проверьте этот вопрос: http://stackoverflow.com/questions/17065787/autosave-function-ajax-mode-second-part. В нем описывается, что вам нужно сделать, чтобы сохранить элемент richtext с помощью метода * executeOnServer *. –

ответ

0

Я не знаю, если проблема с форматированного текста или метода представления. Одна вещь, которую я замечаю, состоит в том, что вы передаете только один параметр XSP.executeOnServer(), поэтому он будет выводить идентификатор отправки и значение отправки.

Можете ли вы использовать Firebug или что-то подобное, чтобы проверить, какой контент отправляется на сервер, как при нажатии кнопки, так и во время остальной части жизненного цикла XPage? Трудно устранить проблемы с жизненным циклом страницы из вопроса.

Если на сервер не передается никакое значение отправки или отправки значения, никакие источники данных или компоненты на странице не будут обновляться при нажатии кнопки. Он просто сохранит источник данных с любыми значениями, хранящимися против источника данных, из предыдущих частичных обновлений.

Всякий раз, когда инициируется частичное обновление, некоторое содержимое будет обновляться на серверной карте XPage. Поэтому любые предыдущие частичные обновления могут обновлять источник данных со значениями до запуска XSP.executeOnServer(). Если значения были возвращены обратно в источник данных путем частичного обновления, они будут сохранены, поскольку они уже находятся в источнике данных, а не потому, что они снова передаются XSP.executeOnServer().

Если Firebug показывает идентификатор отправки или отправляет значение, которое включает в себя передаваемый обратно сервер данных, значения будут переданы обратно в источник данных, и в этом случае может возникнуть проблема, связанная с элементами Rich Text.

+0

Спасибо за ваши комментарии. –

Смежные вопросы