IFieldUserPromptRespondent
内容
[
隐藏
]IFieldUserPromptRespondent interface
表示字段更新期间用户提示的响应者。
public interface IFieldUserPromptRespondent
方法
姓名 | 描述 |
---|---|
Respond(string, string) | 实现后,根据提示返回用户的响应。 您的实现应该返回无效的 表示用户尚未响应提示 (即用户已按下提示窗口中的“取消”按钮)。 |
评论
ASK 和 FILLIN 字段是提示用户进行某些响应的字段示例。实现这个接口 并将其分配给UserPromptRespondent
用于在字段 update 和用户之间建立交互的属性。
例子
演示如何创建 ASK 字段并设置其属性。
public void FieldAsk()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// 放置一个字段,用于放置对 ASK 字段的响应。
FieldRef fieldRef = (FieldRef)builder.InsertField(FieldType.FieldRef, true);
fieldRef.BookmarkName = "MyAskField";
builder.Writeln();
Assert.AreEqual(" REF MyAskField", fieldRef.GetFieldCode());
// 插入 ASK 字段并编辑其属性以通过书签名称引用我们的 REF 字段。
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();
Assert.AreEqual(
" ASK MyAskField \"Please provide a response for this ASK field\" \\d \"Response from within the field.\" \\o",
fieldAsk.GetFieldCode());
// 在邮件合并期间,ASK 字段将默认响应应用于各自的 REF 字段。
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";
// 我们可以使用自定义提示响应程序修改或覆盖 ASK 字段中的默认响应,
// 这将在邮件合并期间发生。
doc.FieldOptions.UserPromptRespondent = new MyPromptRespondent();
doc.MailMerge.Execute(table);
doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.ASK.docx");
}
/// <summary>
/// 在邮件合并期间将文本添加到 ASK 字段的默认响应中。
/// </summary>
private class MyPromptRespondent : IFieldUserPromptRespondent
{
public string Respond(string promptText, string defaultResponse)
{
return "Response from MyPromptRespondent. " + defaultResponse;
}
}
也可以看看
- 命名空间 Aspose.Words.Fields
- 部件 Aspose.Words