using Microsoft.Office.InfoPath;
using System;
using System.Xml;
using System.Xml.XPath;
using System.Windows.Forms;
namespace 重复表
{
public partial class FormCode
{
// 启用浏览器功能的表单不支持成员变量。
// 请使用代码从 FormState 词典
// 写入和读取这些值,如下所示:
//
// private object _memberVariable
// {
// get
// {
// return FormState["_memberVariable"];
// }
// set
// {
// FormState["_memberVariable"] = value;
// }
// }
// 注意: 以下是 Microsoft Office InfoPath 所需的过程。
// 可以使用 Microsoft Office InfoPath 对其进行修改。
public void InternalStartup()
{
((ButtonEvent)EventManager.ControlEvents["CTRL5_5"]).Clicked += new ClickedEventHandler(CTRL5_5_Clicked);
((ButtonEvent)EventManager.ControlEvents["CTRL6_5"]).Clicked += new ClickedEventHandler(CTRL6_5_Clicked);
}
//添加新行
public void CTRL5_5_Clicked(object sender, ClickedEventArgs e)
{
XPathNavigator group = MainDataSource.CreateNavigator().SelectSingleNode("/my:root/my:body/my:RepeatTable[last()]", NamespaceManager);
XPathNavigator NewRow = group.Clone();
NewRow.InsertBefore(group);
//设置默认值
NewRow.SelectSingleNode("my:A", NamespaceManager).SetValue("test");
NewRow.SelectSingleNode("my:B", NamespaceManager).SetValue("999.99");
NewRow.SelectSingleNode("my:C", NamespaceManager).SetValue("2009-01-20");
}
//删除行
public void CTRL6_5_Clicked(object sender, ClickedEventArgs e)
{
XPathNavigator group = MainDataSource.CreateNavigator().SelectSingleNode("/my:root/my:body/my:RepeatTable[last()]", NamespaceManager);
//如果确认就删除
DialogResult YESorNO = System.Windows.Forms.MessageBox.Show("您确认删除" + group.SelectSingleNode("my:A", NamespaceManager).Value + "这一行?", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
if (YESorNO == DialogResult.OK)
{
group.DeleteSelf();
}
}
}
}
本文介绍了一个使用C#实现的Microsoft Office InfoPath应用程序案例,该程序通过XPath操作XML数据源来实现表格行的添加和删除功能。具体实现了当点击按钮时,能够向表格中添加具有预设值的新行,或者删除选定的最后一行。
1834

被折叠的 条评论
为什么被折叠?



