Сброс всего InfoPath узла 2007

#infopath-2007

#infopath-2007

Вопрос:

У меня есть созданная форма InfoPath. Что я хочу сделать, так это иметь кнопку сброса, которая очищает весь узел от заполненных данных. Я видел несколько существующих решений, но это кажется относительно простым запросом страницы. Есть ли быстрый способ вернуть весь узел к конфигурации по умолчанию?

Заранее спасибо!

Мэтт

Ответ №1:

Похоже, это решило проблему.

 private void ClearNode(XPathNavigator nodeToClear)
{
    if (nodeToClear.HasChildren)
    {
        nodeToClear.MoveToFirstChild();
        do
        {
            ClearNode(nodeToClear);
        } while (nodeToClear.MoveToNext());
        nodeToClear.MoveToParent();
    }
    else
    {
        nodeToClear.SetValue(string.Empty);
    }
}
  

После этого вы просто вызываете любой узел, который хотите очистить, и передаете его как XPathNavigator, и все готово. Это решило все, что я сохранял, но мне любопытно, как это будет обрабатывать сброс полей со значениями по умолчанию, такими как логическое значение или что-то в этомроде.