InfoPath中的Rich Text Box中如何加“回车”

InfoPath中的Rich Text Box的内容使用的是XHtml的格式,所以"\n"格式内容是不会表现出来的。

        如果我们需要在
Rich Text Box中添加两行内容的话,我们可以用下面的代码。

            XPathNavigator f1 = MainDataSource.CreateNavigator();

            XPathNavigator f2 = f1.SelectSingleNode("/my:myFields/my:field2", NamespaceManager);

            XmlReader xr = XmlReader.Create(new StringReader("<div xmlns=""http://www.w3.org/1999/xhtml/"> abc </div>"));

            f2.AppendChild(xr);

            xr = XmlReader.Create(new StringReader("<div xmlns=""http://www.w3.org/1999/xhtml/">def</div>"));

            f2.AppendChild(xr);

            这样就可以换行了。

InfoPath中的Rich Text Box是XHtml的格式,所以用\r\n或是用System.Environment.NewLine,都不會換行。

使用下列程式碼即可。

public void CTRL27_5_Clicked(object sender, ClickedEventArgs e)
{
// 在此處寫入您的程式碼。
XmlReader xr;
XPathNavigator root = MainDataSource.CreateNavigator();
XPathNavigator RichTextBox = root.SelectSingleNode("/my:myFields/my:ShowValue", NamespaceManager);
string id = "12";
string name = "余小章";
xr = XmlReader.Create(new StringReader("<div xmlns=\"http://www.w3.org/1999/xhtml\">" + id + "</div>"));
RichTextBox.AppendChild(xr);
xr = XmlReader.Create(new StringReader("<div xmlns=\"http://www.w3.org/1999/xhtml\"> "+name+" </div>"));
RichTextBox.AppendChild(xr);
}
或是使用
public void CTRL29_5_Clicked(object sender, ClickedEventArgs e)
{
string id = "12";
string name = "余小章";
string str = string.Empty;
XPathNavigator domNav = MainDataSource.CreateNavigator();
string xhtmlRTFField = domNav.SelectSingleNode("/my:myFields/my:ShowValue", NamespaceManager).InnerXml;
str += "<div xmlns=\"http://www.w3.org/1999/xhtml\">" + id + "</div>";
str += "<div xmlns=\"http://www.w3.org/1999/xhtml\">" + name + "</div>";
domNav.SelectSingleNode("/my:myFields/my:ShowValue", NamespaceManager).InnerXml = str;
}
以上方法都可以換行

 

posted @ 2010-09-21 22:53  China2008  阅读(441)  评论(0编辑  收藏  举报