邮件合并数据填充在radRichtextBox上

时间:2013-05-14 10:23:56

标签: c# asp.net wpf

我需要快速支持在radrichtextbox上填充邮件合并数据。在第一步中,我只是填写邮件合并中的数据列表,如“FirstName”,“LastName”,然后我想获得与这些标签相关的数据,例如Firstname = Peter ....请看下面的行码。我的问题是如何在按下预览结果时加载文档上的FirstName,LastName数据。

加载

this.radRichTextBox.Document.MailMergeDataSource.ItemsSource = new List<Employee>()
            {
                new Employee()
                {
                    FirstName = "Guest1",
                    LastName = "Guest2",  
                },
                new Employee()
                {
                    FirstName = "Ali",
                    LastName = "Doc", 
                }
            };

private void btnPrint_Click(object sender, RoutedEventArgs e)
       {
           //this.radRichTextBox.InsertField(new MergeField() { PropertyPath = "FirstName" });
           MergeField field = new MergeField() { PropertyPath = "FirstName" };
           field.DisplayMode = FieldDisplayMode.Result;
           this.radRichTextBox.Document.ChangeFieldDisplayMode(field.FieldStart, FieldDisplayMode.Result);
    }

1 个答案:

答案 0 :(得分:0)

您可以使用RadRichTextBox的InsertField方法在RadRichTextBox的RadDocument中插入合并字段:

this.radRichTextBox.InsertField(new MergeField() { PropertyPath = "FirstName" }, FieldDisplayMode.Result);

请注意,插入过程中显示模式设置为FieldDisplayMode.Result,这将确保使用数据源立即评估字段。

RadRichTextBox中的字段有三种显示模式:CodeDisplayNameResult。如果您已在CodeDisplayName模式中插入字段,则可以使用以下方法在以后(插入后)更改文档中所有字段的模式:

this.radRichTextBox.ChangeAllFieldsDisplayMode(FieldDisplayMode.Result);