open source custom tooltip (callout) control/code for asp.net - asp.net

Looking for a custom tooltip (typical yellow baloon callout) on click of an anchor tag. The tooltip should appear and remain in view until the cross button on the tooltip is clicked.
Just looking for a tried and tested open source solution. Tried googling this but most of the tooltip [...missing info?...]
Ajax control toolkit has the calloutvalidator which seems like a good choice but is tied up to be used for validation tooltips.

I'm not aware of many good open source server side controls. But you should take a look at these:
http://www.obout.com/flyout/example_Googlemap_tooltip.aspx - Free for commercial and personal use
http://aspalliance.com/1686 - Creating a Custom Tooltip Ajax Extender Control
http://craigsworks.com/projects/qtip/demos/ - qTip for jQuery. It's not an asp.net control, but could work well for you.

Related

HTML Editor Extender displays HTML on navigate backwards

I have an Ajax Control Toolkit HtmlEditorExtender control on my ASP.NET forms page.
First I add some formatted text (including <br />'s by pressing cariage return) and then navigate away from the page by following some link. Then I use the browser to navigate backwards. I would expect that the message should then be either empty or display correctly, but it displays the unencoded html.
I can't find any reports of known bugs about this, does anyone know about a workaround?
Thanks
This HtmlEditorExtender is not a product of OBOUT. It does not work properly.
OBOUT INC. has made the HTMLEditor control for this toolkit, it's already obsolete there.
Use the real OBOUT AJAX HTML Editor. You can test it here: Full screen enabled Editor
Another good example of customization (online translation): Google AJAX Language API implementation

How to make a custom version of AjaxControlToolkit.TabContainer

I guess this is a lot of questions bundled into one post.
I want to build a wizard-like control which looks similar to the TabContainer
But I need certain customizations. These would be like I'd want to associate some help text with the TabPanel. So I imagine I'd want to write my markup like below for the tabpanel:
<cc1:MyTabPanel ID="mtp1" runat="server">
<HelpTextTemplate>
This is your step 1 which is about ...
</HelpTextTemplate>
<ContentTemplate>
Content goes here...
</ContentTemplate>
</cc1:MyTabPanel>
So what do you do to make markup like that...? And how would our control from code behind be able to access data between HelpTextTemplate - which may contain server controls and all?
Moreover, notice that there is a button called 'Save' in the above pic. The user simply drags and drops into the tab panel. And when the user double-clicks on it we have a method stub generated in the code behind (which belongs to the aspx page). How is all of this achieved?
And to cap the whole solution off, I realize we have to wire some javascript to simulate that tab functionality. There is css here too (Notice the images behind the tabs - the gradient, etc). The aspect that I am looking at is making this into a control that the users can use out-of-box just like the toolkit's tabcontainer control. Hence the css/javascript should kind of be bundled. How to achieve this?
Edit:
I am also interested in making the control designer (design-time interaction) part. I am looking for functionality the same way we have for the asp.net wizard control. I have found answers to some of the questions I had above will add it when I find time.
For embedding a script or image to the asp.net custom control I found a solution mentioned in the below site:
Embed js resource with custom asp.net control
What I suggest here it may sound too much, but I can not think other easy way for what you ask and the way you won it.
Grab the source code of the TabContainer, clone it, and make all your custom settings base on that source code. The first steps is to get the full source code of this asp.net toolkit and make a build that working. The second step is to add a clone of the TabControl, with new names. Then you work on this clone to make your changes as you wish for. The final step is to try to separate your custom control in a stand alone library if this is possible.
Download the latest version of the full asp.net ajax control toolkit
http://ajaxcontroltoolkit.codeplex.com/SourceControl/list/changesets
Here you can see online the source code for the TabContainer only
http://ajaxcontroltoolkit.codeplex.com/SourceControl/changeset/view/2c482e5ad6c4#Server%2fAjaxControlToolkit%2fTabs%2fTabContainer.cs
The control you are trying to build is not incredibly complex, but it does involve a number of different techniques.
I would suggest creating your own control from scratch rather then inheritting an existing one. Probably using CompositeControl as the base would be best since it gives you a lot of flexibility.
For HelpTextTemplate/ContentTemplate you'll want to create some ITemplate containers, take a look at this article http://msdn.microsoft.com/en-us/library/aa478964.aspx on how to set these up. Since you may want to access the contents/controls in HelpTextTemplate take a look at this article for how to access them: ASP.Net ITemplate - ways of declaring.
For the tabs, since this is custom, I would probably avoid AjaxControlToolkit. Instead I would include a reference to jQuery UI and use jQuery UI Tabs: http://jqueryui.com/demos/tabs/. Your CompositeControl just needs to output some divs, ul/li elements and you'll be good to go for making the tabs.
If you are fixated on using the AJAX Control Toolkit Tabs then you still can. You'll need to instantiate an instance in your custom control, add it to the control tree, and then use a technique like this: http://msdn.microsoft.com/en-us/library/0e39s2ck.aspx to transfer the contents of your template to the tab pages.
Being able to drag and drop a control from the toolbox onto your page is simple; if your server control library is already part of the same solution as your website then it will just show up. Worst case scenario you can use the Add Items option and add the DLL by browsing for it. As for how the Click event is created when you double click a button, that is done through an attribute on the class, take a look at this tutorial on setting up default events: http://msdn.microsoft.com/en-us/library/43sxkdeb.
As for embedding javascript into the library, these two questions cover how to do this specifically for jQuery UI, if you choose to go some other route it should still be pertinent: How to embed jquery library in asp.net custom server control?, http://forums.asp.net/t/1599621.aspx/1.
As for design time support, try reviwing Microsofts article on this (includes a sample): http://msdn.microsoft.com/en-us/library/aa478960.aspx or this CodeProject article on it: http://www.codeproject.com/Articles/9227/ASP-NET-Server-Control-Design-Time-Support.

Custom tooltip on Controls

I wanted to use a similar tooltip as is displayed when we over the videos on this ASP.NET Ajax site.
http://www.asp.net/ajax/videos
Which control is this? Is it the animation control?
How to use a similar tootlip on my controls?
It's possibly the Popup Control from the Ajax Control Toolikit, but not necessarily. This is very simple to do with css and javascript using a hidden div element and a mouseover event.
There's some sample code you can use here: http://www.willmaster.com/blog/css/floating-layer-at-cursor-position.php
There are a lot of Jquery plug-ins that will do similar things.
Here's an example of one - http://code.drewwilson.com/entry/tiptip-jquery-plugin

Alternatives to modal popup extender in asp.net?

I have a modal pop extender that has a user control in it, I use it in several forms in a
ASP.NET 4.0 project.
I am not very happy with the js code that it produces and the mess in the markup :/
So, any worthy alternatives that can be controlled from the codebehind easily :) ?
Having been down the road of Ajax Control Toolkit, I would recommend moving on to jQuery or some other javascript framework. While I understand the desire to "control it from codebehind," because it seems easier at first, trying to wrap client-side functionality in a server-side control usually is more trouble than it's worth.
Even in the simplest case, the the amount of javascript code needed to create a modal popup in jQuery (e.g.) is less than with Ajax Control Toolkit MPE. For example, I like the jQuery plugin SimpleModal. The code to turn a div into a modal popup using SimpleModal with default options is this:
<script type="text/javascript">
function showPopup() {
$('#<%=popupDivID.ClientID %>').modal({ appendTo: '#aspnetForm' });
}
</script>
Then you can just add that function to a click event, for example. And it's about a thousand times more flexible.
If you just don't like embedding javascript in your markup files, you can still technically control this all from codebehind by using ScriptManager to register the scripts and add events to controls.
Have you looked at the Ajax Control Toolkit on CodePlex. Ajax Control Toolkit It has several very useful controls that are very easy to implement. The toolkit includes a modal popup control as well as a popup control. In the link I gave you are all the instruction on how to download and use the toolkit.
Another option if you have access to it is Telerik controls. Their Ajax controls include what they call a radWindow which also works very well. You can read about it here. The drawback to Telerik is it is quite expensive.
I have used both and they work very well.
Use jQuery Dialog UI as this would likely give you the best supported option. It supports modal behavior.

How is the name of this feature?

I wanna have, when a user clicks an button, the screen should go black and in the middle should be a new webpage.
I know this is very often used for Images, but I know it is possible with webpages too.
How is the name of this feature and how I can get it for my asp.net page?
Are you talking about a "Lightbox" effect ?
http://line25.com/articles/rounding-up-the-top-10-jquery-lightbox-scripts
Modal window
ASP.NET AJAX Toolkit has the ModalPopup control,
Or can use many jquery plugins (ThickBox for example).

Resources