<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.infopathdev.com:443/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Code</title><link>https://www.infopathdev.com:443/forums/45.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007 SP3 (Build: 31118.962)</generator><item><title>InfoPath calling SharePoint Modal Dialog to load xml of another InfoPath Form</title><link>https://www.infopathdev.com:443/forums/thread/99657.aspx</link><pubDate>Fri, 17 Oct 2014 18:43:21 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:99657</guid><dc:creator>Douglas</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/99657.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=99657</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;Hi Guys,&lt;/p&gt;&lt;p&gt;&amp;nbsp;I would like to ask your help to this scenario below (InfoPath and SharePoint 2013):&lt;/p&gt;&lt;p&gt;&amp;nbsp; - I have a SharePoint Library with (xml) items created by a InfoPath form (to simplify my explanation I will call this form as &amp;quot;A&amp;quot;). In this library there is some fields explicit (I&amp;#39;ve had to promote some InfoPath fields to SharePoint columns).&lt;/p&gt;&lt;p&gt;&amp;nbsp;- So, to consult this data, I developed a second&amp;nbsp; InfoPath form (I will call this form as &amp;quot;B&amp;quot;). In this second form I created a data connection to return all data from the library responsible to storage all xml files created by the form &amp;quot;A&amp;quot;.&amp;nbsp; Into the form &amp;quot;B&amp;quot; I configure the data connection results to been shown as a repeating table.&lt;/p&gt;&lt;p&gt;- This form &amp;quot;B&amp;quot; is configured to be shown in a custom Web Part that I customized:&lt;/p&gt;&lt;p&gt;******************************************************&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; Microsoft.Office.InfoPath.Server.Controls;&lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Text;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:green;"&gt;// XmlFormView control object to render the browser-enabled InfoPath form.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; XmlFormView xmlFormView = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// Field to hold the return value from the modal dialog box.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; TextBox hiddenText = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; receivedValue = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// Property to store the InfoPath XSN URL.&lt;/span&gt;&lt;br /&gt;[WebBrowsable(&lt;span style="color:blue;"&gt;true&lt;/span&gt;)]&lt;br /&gt;[WebDisplayName(&lt;span&gt;&amp;quot;Form XSN URL&amp;quot;&lt;/span&gt;)]&lt;br /&gt;[Description(&lt;span&gt;&amp;quot;Relative URL of the InfoPath XSN file.&amp;quot;&lt;/span&gt;)]&lt;br /&gt;[Category(&lt;span&gt;&amp;quot;Configurations&amp;quot;&lt;/span&gt;)]&lt;br /&gt;[Personalizable(PersonalizationScope.Shared)]&lt;br /&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; FormXSNURL { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;protected&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; CreateChildControls()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;base&lt;/span&gt;.CreateChildControls();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Instantiate the XMlFormView object.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.xmlFormView = &lt;span style="color:blue;"&gt;new&lt;/span&gt; XmlFormView();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Set the editing status to init on initial load.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.xmlFormView.EditingStatus = XmlFormView.EditingState.Init;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Add to the Web Part controls collection.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Controls.Add(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.xmlFormView);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.hiddenText = &lt;span style="color:blue;"&gt;new&lt;/span&gt; TextBox();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Hide the text box.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.hiddenText.Style.Add(&lt;span&gt;&amp;quot;display&amp;quot;&lt;/span&gt;, &lt;span&gt;&amp;quot;none&amp;quot;&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.hiddenText.Style.Add(&lt;span&gt;&amp;quot;visibility&amp;quot;&lt;/span&gt;, &lt;span&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt;);&lt;br /&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Assign a dummy class to the control so it can be found through jQuery functions.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.hiddenText.CssClass = &lt;span&gt;&amp;quot;webparthiddenfield&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Add to the Web Part controls collection.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Controls.Add(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.hiddenText);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;catch&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;throw&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;"&gt;protected&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; OnPreRender(EventArgs e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Determine whether the user has set the FormXSNURL property with InfoPath XSN location.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (!&lt;span style="color:blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.FormXSNURL))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Configure the XmlFormView control to host the form.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.xmlFormView.XsnLocation = &lt;span style="color:blue;"&gt;this&lt;/span&gt;.FormXSNURL;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Set the editing status to ensure the control displays the form.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.xmlFormView.EditingStatus = XmlFormView.EditingState.Editing;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;catch&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;throw&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;&lt;p&gt;******************************************************&lt;/p&gt;&lt;p&gt;- I add this web part in a SharePoint Web Part Page, for all users access the consult screen.&lt;/p&gt;&lt;p&gt;- So, until here, everything works fine. The problem is (my help request):&lt;br /&gt;&amp;nbsp;&lt;br /&gt;One of these fields returned by the data connection that I created into the form &amp;quot;B&amp;quot; is the url link responsible to open the form &amp;quot;A&amp;quot; with all xml data loaded. I added a button into the repeating table (I added a column and configured a image button). The objective is use this button to call the Form &amp;quot;A&amp;quot; InfoPath link to be load in a modal dialog (It could be loaded with the SharePoint 2013 native modal). So, I need a code snippet to get the current url of the row and a code snippet to load this url in a modal.&lt;/p&gt;&lt;p&gt;I am try something like this:&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/office/hh278954(v=office.14).aspx"&gt;http://msdn.microsoft.com/en-us/library/office/hh278954(v=office.14).aspx&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;and this code (into the button that I configured into the repeating table):&lt;/p&gt;&lt;p&gt;*******************&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;public void CTRL462_5_Clicked(object sender, ClickedEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string XmlLocation = e.Source.SelectSingleNode(&amp;quot;/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW/d:XmlLocation&amp;quot;, this.NamespaceManager).Value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpContext.Current.Response.Redirect(&amp;quot;&lt;a href="http://gestaofornecedores/_layouts/15/FormServer.aspx?XMLLocation"&gt;http:/mysitecollectionurl/subsite/_layouts/15/FormServer.aspx?XMLLocation&lt;/a&gt;=&amp;quot; + XmlLocation + &amp;quot;&amp;amp;ClientInstalled=true&amp;amp;DefaultItemOpen=1&amp;amp;Source=http://mysitecollection/subsite/pagetoconsultitemsofformA.aspx&amp;quot;, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;********************&amp;nbsp;&lt;/p&gt;&lt;p&gt;I know that this scenario is specific and is rare to use infopath like a Form consult (generally this is developed in pure .net) but i really need configure this scenário. So i will be really grateful with some help.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Could somebody, please, help me with this scenário?&lt;/p&gt;</description></item></channel></rss>