I'm working with a Sharepoint project that was migrated from 2007 to 2010. There is not history on who originally created the project or how they did this. So, if the original developer used a Visual Studio project to add custom code to the form, that VS project does not exist.
Is there any way to tell if an existing form has custom code written for it? If I want to add my own custom code, the only way I can do this is go into the form properties and select "remove existing code". Then I can create a new project and add code.
Is it the case that if I cannot find the original VS project, that this is my only choice...to remove any existing code?
Yes, if you can't find the original project, then you're out of luck - you have to remove the code and rewrite as necessary.
http://www.bizsupportonline.net/blog/2013/recover-make-changes-infopath-forms-sharepoint.htm
(Paragraph at the bottom of the article, just before "3 ways you can find out whether code was written for a form template")
Related
In Visual Studio 2012, it appears that only maybe a third of the 20 or so C# project types support using Shift+Alt+D to open the "Data Sources" window (and none that I've found ever display the mythical "Data" menu bar option).
Is there any sort of guide as to which project types will allow you to work with data sources?
Also, is there any way to "adjust" the features of a project after it's been created?
Update: See my answer below for how to add the Data Sources function to an existing project.
I believe you are looking for this page:
http://msdn.microsoft.com/en-us/library/yft2c9ad.aspx
To quote msdn: "You can add a data source to a project only if it supports creating and working with data sources. For example, you can't open the Data Sources window in a project for a Windows Store app."
Basically, if using a database seems logical in your application, you can probably use one.
To answer your question about the "mythical 'Data' menu bar option", here's how you access it:
You just have to select "View", then "Other Windows", and finally "Data Sources"
And to answer your final question about, "Also, is there any way to 'adjust' the features of a project after it's been created?"
Yes, yes there is. If you mean as a compiled executable, one could simply decompile the project or use an ILcode editor. If you mean as a solution in visual studios, using the solution explorer you can access "My Project" and simply double click that to get a nice little gui for adjusting your project.
EDIT:
For an overload of information about data in visual studios, you can visit: http://msdn.microsoft.com/en-us/library/wzabh8c4.aspx
For more information about just the data source window, you can visit:
http://msdn.microsoft.com/en-us/library/6ckyxa83.aspx
Aha! There is a way to add data access to a project that lacks it, per: http://msdn.microsoft.com/en-us/library/bb907587.aspx. To quote:
To create a class from a database table
If you are working with a Web site project, and the project does not already have an App_Code folder, in Solution Explorer, right-click the project, click Add ASP.NET Folder, and then click App_Code.
In Solution Explorer, right-click the App_Code folder (for a Web site project) or the project (for a Web application project) and then click Add New Item.
Under Installed templates, select Linq to SQL Classes template, type a name for the .dbml file, and then click Add.
-- The Object Relational Designer window is displayed. [Note that this is the window that Shift-Alt-D displays]
In Server Explorer, drag the database tables or other objects (such as views) that you want to use with LINQ to SQL into the Object Relational Designer window.
-- The tables and their columns are represented as a entities in the designer window.
Save the .dbml file.
This creates .designer.cs or .designer.vb file that is located under the .dbml file. The file contains a class that represents the database and a class that represents the table. The parameterless constructor for the database class reads the connection string from the Web.config file.
(Note that, after performing this procedure you may get a message "The type or namespace name 'Linq' does not exist in the namespace 'System.Data'". The solution to this problem is found here.)
I know I can add the template in the folder
C:\Program Files (x86)\Microsoft Visual Studio
11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen
to make it visible in the DDL Generation Template dropdownlist, but then I need to distribute the template to my team members so they can add the template to the same folder.
I was hoping that I could achieve the same result by adding the template to the VS 2012 solution somehow and make it visible in the same dropdownlist
Do you know a way to achieve this?
I'm using VS 2012 and to generate the database I use Model First approach
I played around with this tonight and found it is possible, but it's kind of a hack. You'll have to edit your edmx file by hand, and make sure it is version controlled because you have to edit the designer section of the edmx file (auto-generated). First thing is to copy the t4 template to the root of your project (might actually have to be in the same folder as the edmx, not sure). Then add the t4 template to your project. Now remove the custom tool entry (in properties) so it doesn't try and auto gen the t4 template. finally add the designer property below in the correct location in the edmx file (i included context to find the right place):
<!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) -->
<edmx:Designer xmlns="http://schemas.microsoft.com/ado/2009/11/edmx">
<edmx:Options>
<DesignerInfoPropertySet>
<DesignerProperty Name="DDLGenerationTemplate" Value="SSDLToSQLite3.tt" />
I ended up making a custom template to generate datetime2 fields. Although I could not get the template to show in the drop down in the properties box, I was able to add the template to the same folder as my .edmx, include it in the solution, then type the file name of the template directly into the designer's property field replacing the default. The value appears to be retained after generating databases and entities, I didn't need to directly edit the edmx XML, and my custom template is now source controlled right next to where it is used.
How do you change the URI of a SharePoint library? Based on Google searching, most people say that changing the name of a library in Designer (via right click->rename) will result in the URI change, but it is only changing the name for me.
I am using SharePoint 2010 Foundation and these are the steps I am following:
In Designer, navigate to List and Libraries
Right click library -> rename
Notice that name changes
Notice that URI does not change
This is one of the resources I found claiming that this works:
change URL spelling/case on sharepoint library
In SharePoint Designer just navigate to All Files navigation node (not List and Libraries node), find your document library there -> right-click library -> rename.
The URI would change then.
Edit:
At least at SharePoint 2010 it is possible to change library URL, without using SharePoint Designer.
Just go to a library trough 'All Site Content'. When inside the library choose on the ribbon 'Library' tab. Then select 'Open with Explorer'. That will open your SharePoint's library in Windows Explorer window. Navigate one folder up and you will see list of your libraries as folders. Rename required library's folder name as you want the URL to look like.
SOLUTION:
Thank you! I found the suggested SharePoint Designer solution above to work beautifully!
Here are the steps that I took:
Follow the instructions above by opening the List in SharePoint Designer, selecting All Files under the navigation node (near the bottom)
A bunch of folders appeared - I selected the folder named 'Lists'.
From here, it will show the list names and the display names. Change the actual name of the list (first column) by right-clicking on it, rename. This will update the url. You may wish to match this to your display name.
When you return to your site, the navigation link for the list may still go to the old URL. To update this, enter in the new url in your browser, go to List Settings > Title, Description and Navigation. Simply hit the save button without making any changes. The navigation link is now updated.
Please note: If you are updating list urls and names of a project site (from Project Server), do not rename the Risks, Issues lists. These must remain for Project Server to function properly.
Thanks for this solution. I only have Designer permissions but was still able to change a List URL within the browser (not Sharepoint Designer, and must be IE to have Open in Explorer enabled). Steps:
Go to Site Contents and open a Document Library in the site
Click on Library ribbon tab and select Open In Explorer option
Click up one level in the directory structure - there should be a
Dir called 'Lists' - open
Your List should be there to right click and rename.
I was surprised that the system let me do this (it didn't let me delete a document in the same DL that I need to get rid of), but after testing for some time the URL change seems to have held.
Finally - you might have to re-Resolve some views and overlays, as these might not automatically cascade with the new List location.
Cheers,
Ross
I have changed the library URL from SharePoint Designer 2010, in the "Site Object" section --> "All files" option. Then I selected the right library in left pane and press F2 (to change name, like in windows) and worked for me. I hope that helps someone.
You cannot change Document Library URL , only name.
If you want to have a new URL :
Create a new document library with good URL
Batch import all docs from old to new document library
warning :
all new imported doc will be flagged with username used in the import process
all datetime fields will be reinitialized
I don't have Sharepoint Developper installed and can't install it.
I needed to change the address of a List and not a library, so the "Open in Explorer" doesn't work for me (only get "Open in Access" and "Open in Project").
I managed to do it by opening Explorer by myself and paste the URL "http://MyServer/MySite/" (can be also "http://MyServer/MySite/MyPage/").
I got the "All Files" you get through Sharepoint Designer.
In my case I had to go to "Lists" and change the name of the folder for the list I wanted to change the name.
Next I had to change the name of the list from the "List properties" (to change back the visible name of the list)
I am only a Site Collection Administrator for a SharePoint online platform. The powershell and sharepoint designer usage are not within my access so the only option I have is the "Open in Explorer". I tried the steps seen online but didn't get the result. When I saw ragmaxone's step, I got an idea. Then I took the following steps:
I copied my url without the document library eg "http://MyServer/MySite/MyDocLib/ is the URL of the document library but I copied "http://MyServer/MySite/ instead.
Next I opened the document library in classic SPOnline because I use modern SPonline.
Then I replaced the pathway address with the copied URL and saw all my document libraries as folders.
With right clicking on the document library of interest, and renaming like is done in windows, I went back to my document library and saw page not found.(Don't worry! Something had changed already).
Then I went to the homepage of the platformand navigated to the document library in question to see that it has been renamed and the URL also corresponds to the new name.
Thanks for all your answers and help.
In Designer go to "All Files" -> then search for "List" folder ther you can find your List right click it rename it and boom.
By going to Lists and Libraries tab from left menu will only change the title of list. So go to All files and follow the steps.
I have a web part page "DocLib1.aspx" in document library "DobLib1" and it has few webparts.
How can I take the same web part page and copy it to other document libraries (there are about 50+ document libraries). The web part page is named after the document library (with aspx extension). One of the web part is the list for the same doc lib where the web part is residing.
This worked for me for SharePoint 2010:
Open the site in SharePoint Designer 2010
Right click the page and select copy.
Select a different folder
Rename the page
Move it back to the original folder.
All the WebParts will be intact.
This might seem elementary, but within SharePoint copying a page doesn't copy any of the WebPart on the page. That drove me bonkers. Hope this helps you.
There are two options to copy and paste a Sharepoint 2010 page and retain its web parts:
Perform the copy and paste through Sharepoint Designer 2010.
Access any page in Sharepoint Browser and go to Site Actions > Manage Content and Structure. Copy and paste is possible from here but copy and paste within the same directory can fail; paste in a different directory level then rename the file.
I came upon this site when also looking for a solution to copying a webpart page, but I actually found an even easier way. I've got a library that holds webpart pages, and whenever I need another page that is similar to one of the others in the library, I go to Library Tools > Library in the ribbon, and then Open with Explorer. From there, I simply Copy/Paste the webpart page that is similar to what I want into the same library and then rename the page. Then I can open the new page and make the needed changes.
To add my experience to qhawk's solution (I cant just add a comment directly under the solution as I have less than 50 rep) - in SharePoint Designer 2010, I had to go to Site Objects --> All Files --> then select the relevant Library which has the page you want to copy, copy it to another Library, e.g. Shared Documents, rename it there, copy it back, job done.
I found that if I just selected Site Objects --> Lists and Libraries --> and chose my Library from there, it wouldnt list the actual items in the library to be able to copy them, not even in the Views or Forms box. You have to go through the 'All Files' route.
PS. I know this is an old thread, but I found this whilst trying to find the solution for this, and after finding qhawk's solution needed a little tweaking for me, thought I'd let others know incase someone else stumbles across this.
Here's my situation:
I'm working in SharePoint 2007 Enterprise, I have a feature that creates a list for me when I deploy and activate it. My usual workflow thus far has been to deploy the solution, activate it, then open up SharePoint Designer to customize the list.
My customizations are typically pretty complex, but I'll keep things simple. In this case, let's just say that I edit AllItems.aspx, convert the data view to an XSLT data view, then I add one column with static text.
I've used a few different tools (SPSource, VSeWSS, SharePoint Manager, OCDExportList, etc) to extract my custom schema.xml and all the default views, but I have yet to have any luck figuring out where the the code for AllItems.aspx is now that it's been customized.
When I extract (using any of the tools above) AllItems.aspx is no different than the default. The <View> element in schema.xml is reduced to one line, for example:
<View DefaultView="TRUE"
MobileView="TRUE"
MobileDefaultView="TRUE"
Type="HTML"
FPModified="TRUE"
DisplayName="All Documents"
Url="Forms/AllItems.aspx"
Level="1"
ContentTypeID="0x" />
I'm really stuck here... I've got no clue what to do. Is it even possible? It would save me a great amount of time (and documentation) if I could include my customizations in my feature.
If there's any other info I'm missing that would help, let me know... thanks!
Latest findings:
I've found out a bit more in the past couple hours. If I save the list as a List Template, then save the .stp file locally as a .cab file I can extract its contents. One of the files is manifest.xml which contains the schema.xml as well as a few other sections.
One of those sections is a <webparts> section that has a <webpart> for each view. Each of those <webpart> elements contains a really long string of characters... no clue what those characters actually represent.
The important thing is that I think any custom views have to actually be Web Parts if deployed as part of a solution... but I'm not positive.
I have faced a similar issue a while ago. I had to create a very customized view and I had to give up the ListFormWebPart completely, and have created my own webpart to render the data.
Generally, when you customize the aspx file in SPDesigner, all your changes will be in the aspx file itself. Open it in SPDesigner and you will see there all the changes you have made. After you have converted to the XSL Data View, the standard ListFormWebPart is replaced by a DataFormWebPart, which doesn't care about the <View> tags specified in the schema.xml; Look in the aspx file itself for the ListFormWebPart.
Why not do all the customizations you want on a list, save the list as a template (it will include the associated AllItems.aspx) and then use that template in your feature to create your list? You could add the extracolumn from code (if it's dynamic and cannot be included in the template), and so on.
Yes you can. Get the Sharepoint manager tool from Codeplex
http://spm.codeplex.com/
Install it on a machine in your farm, it will allow you to browse the farm via a tree view that shows all objects.
Make the list via the Sharepoint GUI, then browse to it w/ SPM.
SPM will allow you to extract the MOSS/WSS created xml that describes the list view (it shows up in the left hand property grid), which you can then plop into your manifest.xml
I have a similar issue and have been doing a lot of research into this. The dataview web part to me is one of the most powerful components in Sharepoint. Unfortunately I have to provide my solution as a .wsp package and that means that I can not just make the site and use Designer on that site. I have taken a 2 step approach in that I used designer to create my dataview and I also edited the code of that dataview to replace the ListID and Guids to ListName and the actual list name. This allows it to be exported and used in any page/site as long as the list name is the same. I am creating a webpart page document library also in my solution and I believe I can add the pages that have the webparts to this library using the onet.xml file. I will try to get the results of that test in as soon as I can do it.