SUPERSLIMAK




Webpart do przeglądania formularzy Infopath

1. Wstęp
2. Kod


1.Wstęp

Wykorzystując standardową kontrolkę z biblioteki Microsoft.Office.InfoPath.Server.dll możemy umożliwić użytkownikowi dodawanie nowych formularzy InfoPath do biblioteki w jedym oknie razem z listą istniejących formularzy.

Wykorzystując tą bibliotekę można stworzyć o wiele mocniejsze rozwiązanie które pozwoli na:
- dodawanie nowych formularzy
- podgląd istniejących formularzy
- uniknięcie błędów podczas pierwszego uruchomienia webparta z XMLFormView.
I wszystko to na jednej i tej samej stronie.

2.Kod webparta XMLFormView

using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using Microsoft.Office.InfoPath.Server.Controls;
using System.Web.UI.WebControls;

...
const string c_xmlloc = "";
const string c_xsnloc = "";
private string _xmlloc = c_xmlloc;
private string _xsnloc = c_xsnloc;
public XmlFormView XMLFormViewer;

...
[ConnectionConsumer("XMLLocation")]
public void GetConnectionInterface(IWebPartField providerPart)
{
FieldCallback callback = new FieldCallback(this.ReceiveField);
providerPart.GetFieldValue(callback);
}
public void ReceiveField(object field)
{
if (field != null)
{
xmlloc = field.ToString();
}
}

...
[Personalizable(PersonalizationScope.Shared), WebBrowsable(true), WebDisplayName("XML Location"), WebDescription("URL of web-enabled InfoPath form"), Category("Miscellaneous")]
public string XMLLocation
{
get
{
return _xmlloc;
}
set
{
_xmlloc = value;
}
} [Personalizable(PersonalizationScope.Shared), WebBrowsable(true), WebDisplayName("XSN template URL"), WebDescription("URL of infopath form template"), Category("Miscellaneous")]
public string XSNLocation
{
get
{
return _xsnloc;
}
set
{
_xsnloc = value;
}
}

...
protected override void CreateChildControls()
{
XMLFormViewer = new XmlFormView();
if ((_xsnloc.Length > 0) || (_xmlloc.Length > 0))
{
XMLFormViewer.EditingStatus = XmlFormView.EditingState.Editing;
Controls.Add(XMLFormViewer);
if ((_xmlloc.Length > 0))
{
XMLFormViewer.XmlLocation = _xmlloc;
XMLFormViewer.XsnLocation = "";
}
else if ((_xsnloc.Length > 0))
{
XMLFormViewer.XmlLocation = "";
XMLFormViewer.XsnLocation = _xsnloc;
}
try
{
XMLFormViewer.DataBind();
}
catch (System.Exception exc)
{

}
}
else
{

}
}




Pozdrawiam
Michał

Komentarze

Gertrud
07 Nov 2008, 15:06
ale wypas :)
*Imię:
Email:
Informuj mnie o nowych komentarzach na tej stronie
Ukryj email
*Treść:
 
Powered by Scriptsmill Comments Script