FieldAskDefaultResponse Property |
Namespace: Aspose.Words.Fields
[Test] public void FieldAsk() { Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); // Place a field where the response to our ASK field will be placed FieldRef fieldRef = (FieldRef)builder.InsertField(FieldType.FieldRef, true); fieldRef.BookmarkName = "MyAskField"; builder.Writeln(); // Insert the ASK field and edit its properties, making sure to reference our REF field FieldAsk fieldAsk = (FieldAsk)builder.InsertField(FieldType.FieldAsk, true); fieldAsk.BookmarkName = "MyAskField"; fieldAsk.PromptText = "Please provide a response for this ASK field"; fieldAsk.DefaultResponse = "Response from within the field."; fieldAsk.PromptOnceOnMailMerge = true; builder.Writeln(); // ASK fields apply the default response to their respective REF fields during a mail merge DataTable table = new DataTable("My Table"); table.Columns.Add("Column 1"); table.Rows.Add("Row 1"); table.Rows.Add("Row 2"); FieldMergeField fieldMergeField = (FieldMergeField)builder.InsertField(FieldType.FieldMergeField, true); fieldMergeField.FieldName = "Column 1"; // We can modify or override the default response in our ASK fields with a custom prompt responder, which will take place during a mail merge doc.FieldOptions.UserPromptRespondent = new MyPromptRespondent(); doc.MailMerge.Execute(table); doc.UpdateFields(); doc.Save(ArtifactsDir + "Field.ASK.docx"); Assert.AreEqual( " ASK MyAskField \"Please provide a response for this ASK field\" \\d \"Response from within the field.\" \\o", fieldAsk.GetFieldCode()); Assert.AreEqual("Please provide a response for this ASK field", fieldAsk.PromptText); // ExSkip } /// <summary> /// IFieldUserPromptRespondent implementation that appends a line to the default response of an ASK field during a mail merge. /// </summary> private class MyPromptRespondent : IFieldUserPromptRespondent { public string Respond(string promptText, string defaultResponse) { return "Response from MyPromptRespondent. " + defaultResponse; } }