如何以编程方式使InfoPath窗体中的文件附件无效

时间:2010-02-22 21:48:22

标签: c# infopath infopath-2007

尝试从表单中删除附件时,我遇到了一些InfoPath C#代码的问题。

基本上这个过程是:

  1. 用户打开表单
  2. 用户点击按钮
  3. 文件附件已清除
  4. 我尝试在我的架构中添加一个永不填充的空白附件,然后通过下面的方法将原始字段的值设置为等于该值。调试表单时,我发现错误:架构验证发现非数据类型错误。这里的任何提示将不胜感激。

    public void BTN_ClearAttachment_Clicked(object sender, ClickedEventArgs e)
    {
       try
       {
           _OriginalAttachment.SetValue(_BLANK_ATTACHMENT.Value);
       }
       catch (Exception ex)
       {
           _ErrorField.SetValue(ex.Message + " : " + ex.StackTrace);
       }
    }
    

    谢谢,

    Z博士

    编辑 - P.S.我应该清楚这两个_OriginalAttachment& _ErrorField都是XPathNavigators,指向不同的架构元素。我已经验证这些XPathNavigators都指向有效的架构元素。

1 个答案:

答案 0 :(得分:0)

想出来。我这样做的方法是调用ReplaceSelf(string)并传入XML节点的空白版本。

public void BTN_ClearAttachment_Clicked(object sender, ClickedEventArgs e)
{
   try
   {
       _OriginalAttachment.ReplaceSelf("<my:OriginalAttachment></my:OriginalAttachment>");
   }
   catch (Exception ex)
   {
       _ErrorField.SetValue(ex.Message + " : " + ex.StackTrace);
   }
}

这减轻了我遇到的任何错误。