SharePoint 2007 Custom Webpart, saving data to the properties - c#

How can I go about creating a custom Web Part that has a custom UI for editing. When the page is in Edit mode I have a special button show up "Edit" and when the user clicks on it it posts back to the page. I catch this and I want to display a custom UI so they can edit the web part properties. I need to be able to have rich text fields, and text fields that are editable and will post back so I can save them to the properties.
I'm struggling mostly with creating a RichTextField, or TextBox that I can grab the data in post back. I know how to do it if I outputted raw HTML to the page, then use HTTP.Context, but what's the C# way to do it?
Thanks!

You can check in your web part if page is in Edit mode or Display mode and render the controls accordingly.
How to tell if page is in edit mode on a non-publishing site
On postback, you can fetch the values and assign it to your web part properties. Since you are handing it custom, you will need to set dirty flag:
http://msdn.microsoft.com/en-us/library/ms157656.aspx

It sounds like you're putting a configuration UI into the web part itself?
The standard way to provide a configuration UI is via the toolpart - the tall thin window that appears down the right hand side of a page when you edit a web part.
These posts should give you a good introduction :-
How To: Custom Web Part Properties (ToolPart)
Creating a Web Part with a Custom Tool Part
(SharePoint 2003 but still relevant)

Related

Transferring an existing C# and ASP.NET Web Form site to Bootstrap

So I have an existing page that's running ASP.NET and C# in order to display a front-end for some PowerShell commands. This was all developed in the community/free version of Visual Studio 2017.
Pseudo-code is below
User browses to page in browser
Browser presents lists of buttons and text fields
User inputs options into fields and clicks a button
C# runs in backend to run a PowerShell command doing various things, dumping into a JSON file the results
C# returns the results to the page by reading the JSON and turning it into a C# object, displaying as a C# Table
What I have already is that page (and sub pages for different features), displaying results to a simple table or div and displaying the buttons and text fields using the default C# table and some custom HTML to display the JSON properly.
What I want though, is to be able to port those features and functions to a Boostrap template, so I can take advantage of the handy dropdown menus, fancy buttons, etc. that are provided by Boostrap. Specifically I'm looking at using Flatkit.
All of the examples I've seen have either been for MVC stuff, starts entirely from scratch, or uses very simplistic Hello World examples, neither of which help when tackling this task as my code is web form based and more complex than an About page.
So my question(s) is/are
a) How can I create ASP.NET controls that will both play nicely with Bootstrap and feed data back into the C# file for processing? Something that can duplicate an <asp:Button> essentially, without refreshing the page entirely.
b) How can I then create another control or similar element on the front-end side to display that information? I'm using a simple <asp:Table> currently
I have the backend PowerShell and most of the logic written, I just need to know how I can make it interact nicely with Bootstrap essentially.
Web dev is not my usual forte , so a lot of the tutorials feel like reading Ancient Greek as they assume I know JQuery, Angular, DOM, etc. So if there's knowledge I'm lacking to make this work, links would be great.
Thanks!
End of day, Bootstrap or any CSS framework applies styles to HTML elements. ASP.Net Web Forms Controls render "vanilla" HTML - though some can be unwieldy (like <form> input name and id attributes - re: ASP.net uses the same value).
They can be styled as needed. Look into CssClass
Hth.

Edit a WebView's HTML at runtime

Is there a way to show the user a web page and let him edit it? It's enough if the user can put the cursor somewhere, then type a letter, and my code will be informed that the user has typed these characters in this location. My code will then do the rest.
Is that possible?
You need to invoke a javascript code to the loaded web page using the InvokeScriptAsync method. Then the javascript code may add a Content Editable element to the web page to do all the page related work and also handle events.
In order to interact with the injected javascript in the app (to receive events for example), you need to add a runtime object to the document. See AddWebAllowedObject.

How can I load page content with freeze header on postback?

I'm using asp.net and c#.net.
I'm gonna implement a website that has content navigation like that Microsoft did on this link:
Microsoft Windows
In this link you're able to browse page content with freeze header on postback
and also you're able to browse videos from left Navbar without page postback.
The important thing is for each click url is changed.
Any ideas or help would be appreciated.
Thanks and regards
First off, to clarify, postbacks are only required if you're submitting form elements. If you're creating a webforms application, you can easily use controls like HyperLink with a NavigationUrl to navigate among URLs without needing postbacks.
If what you mean is that you're seeing the page partially updating when following links, that's not what I'm experiencing. The pages appear to completely reload when the links in that page are clicked. In your own site, you can use AJAX and JavaScript to implement a navigation system that doesn't require heavy navigation requests. Look at Manipulating the browser history (MDN) for information on exciting new JavaScript features that will let you modify the browser's URL/history without reloading the page. There are several JS libraries that integrate with this feature to give you "AJAX" navigation capabilities.
To simply get the header to not scroll along with the rest of the page, use position: fixed in the CSS for the element.

Tool to visually create a set of controls

I'm looking for a tool, plugin or whatever that allows users to design a page (by "design a page" I mean just drag controls like input, select, radio to the page and define positioning by dragging them).
Once the user is done, I have to save the page and the controls to a serialized string, or XML, or JSON, or a .Net User Control.
The user-designed page will used as an input form for information, and I need to be able to set and get the field values somehow.
It's a complex topic even to search, no clues until now.
If someone can point me a direction, it would be extremely helpful.
Sharepoint lets you to build sites with web parts, that you can create and control theirs behavior.
With Sharepoint Web Parts, you can control its information and its fields.

ASP.NET Wizard Control inline editing

I have being developing a form with the wizard control. The final step is a summary of the content that has been entered by the user as a confirmation step before submit the form.
These summary sections also catgorised into visual sections that corresponds with the each WizardSteps.
Each summary section is provided with an edit button that should allow user to edit the content then and there and update the content.
However the form should work without javascript so no use of AJAX. I'm not sure how this can be achieved? Is there a way to assign corresponding WizardStep to a placeholder onClick of the "EDIT" button for that summary section or is there any other way to do this?
Personally i would not bother trying to create a website in asp.net were one specification was that it should have to work without javascript. It is possible but your options are very limited. Here is a list of controls that don't work without javascript. I'm afraid wizard is one of them. If you must not use javascript you are going to have to create your own control that mimics what the wizard does but without JS.

Categories