MergeField, CustomField update problem.

2 posts, 0 answers
    MURAT ERAYDIN avatar
    7 posts
    Member since:
    Dec 2009

    Posted 09 Nov 2012 Link to this post


    The scenerio we are working on:

    • User A opens a template (docx) with RadRichTextBox.
    • Template has two MergeFields, "Subject" and "Signed".
    • User A updates the document and "Subject" MergeField is set to "User A's Subject".
    • Then User A saves the document as Docx and sends it to User B.
    • User B signs the document and "Signed" MergeField should be set to "Yes", but "Subject" MergeField shouldn't be updated.


    The problem is, when User B opens the document, application does not have the User A's MergeFieldSource. So when application merge fields, it updates both "Subject" and "Signed" MergeFields.

    I've tried couple of solutions, one with RadRichTextBox.MergeFieldToStringConverting event and one with inheriting MergeField.

    In RadRichTextBox.MergeFieldToStringConverting solution, MergeFieldToStringConvertingEventArgs doesn't have the old/original value (before merging). If it was, I could pass the old value to the "Subject" MergeField when User B updates the document.

    In CustomField implementation, I could have find a solution, if there were a functionality like; when protected override DocumentFragment GetResultFragment() method returns null, corresponding MergeField does not updates it's own value. But there is no such a functionality.

    One another solution could be, enumerating the MergeFields in the document and update only the required ones. (This is possible in Office Word API). But I couldn't find a way to achieve the is with RadRichTextBox.

    I've added a sample solution demonstrating the scenerio. (Using Telerik version 2012.3.1017.45)


  2. Iva Toteva
    Iva Toteva avatar
    1319 posts

    Posted 12 Nov 2012 Link to this post

    Hi Murat,

    This scenario is similar to the task of having multiple items sources for mail merging. It is not supported out of the box, but you can use dynamic objects in order to implement it.

    You can find attached a modified version of your project illustrating how this can be done in the support ticket you have opened.

    Iva Toteva
    the Telerik team

    Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.

Back to Top