使用DocuSign C# SDK自动填充模板自定义文本字段的咨询
如何用DocuSign C# SDK填充模板中的自定义文本字段?
没问题,我之前也碰到过一模一样的需求,DocuSign C# SDK完全能实现自定义字段的自动填充,只是你之前的代码没用到TemplateRole里的Tabs属性——这就是填充自定义字段的核心入口。
核心逻辑说明
模板里的自定义文本字段,对应SDK中的TextTab对象。你只需要为每个要填充的自定义字段创建一个TextTab实例,设置好和模板中完全一致的TabLabel(这是匹配字段的关键,大小写敏感),再传入要填充的值,最后把这些Tab对象绑定到TemplateRole的Tabs集合里就行。
修改后的完整代码
public EnvelopeSummary CreateEnvelopeFromTemplate(LoanApplicationModel model) { EnvelopeDefinition envDef = new EnvelopeDefinition(); envDef.EmailSubject = "DocuSign Test - Please sign this document"; TemplateRole tRole = new TemplateRole(); tRole.Email = model.Email; tRole.Name = model.FirstName + " " + model.LastName; tRole.RoleName = "Client"; // 新增:自定义字段填充逻辑 var customTextTabs = new List<TextTab>(); // 示例1:填充贷款金额字段(TabLabel要和模板里的字段标签完全匹配) customTextTabs.Add(new TextTab { TabLabel = "LoanAmount", Value = model.LoanAmount.ToString() }); // 示例2:填充家庭地址字段 customTextTabs.Add(new TextTab { TabLabel = "HomeAddress", Value = model.HomeAddress }); // 将文本Tab集合绑定到角色的Tabs属性 tRole.Tabs = new Tabs { TextTabs = customTextTabs }; List<TemplateRole> rolesList = new List<TemplateRole>() {tRole}; envDef.TemplateRoles = rolesList; envDef.TemplateId = "*******"; envDef.Status = "sent"; EnvelopesApi envelopesApi = new EnvelopesApi(); EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef); Console.WriteLine("EnvelopeSummary:\n{0}", JsonConvert.SerializeObject(envelopeSummary)); Trace.WriteLine("Envelope has been sent to " + tRole.Email); return envelopeSummary; }
重要注意事项
- TabLabel必须精准匹配:模板里自定义字段的标签(在DocuSign后台设置的名称)要和代码里的
TabLabel完全一致,包括大小写,否则会匹配不到字段导致填充失败。 - 支持多种字段类型:如果模板里还有复选框、下拉框这类字段,可以用SDK对应的Tab类型,比如
CheckboxTab、DropdownTab,用法和TextTab一致,只需要设置对应属性即可。 - 多角色适配:如果模板有多个签署角色,只需要为每个
TemplateRole单独配置对应的Tabs集合就行,不同角色的字段填充互不干扰。
内容的提问来源于stack exchange,提问作者Shane
相关产品推荐
相关产品推荐

