Blue Theme Orange Theme Green Theme Red Theme
 
Home | Forums | Videos | Photos | Downloads | Blogs | Interviews | Jobs | Beginners | Training
 | Consulting  
Submit an Article Submit a Blog 
 Jump to
Skip Navigation Links
TechnologyExpand Technology
WebsiteExpand Website
ANTS Performance Profiler 6.0
 Resources  
Close
 Our Network  
Close
Search :       Advanced Search »
Home » ASP.NET Controls » Creating a Simple WebPart Page and use WebServer controls as WebParts

Creating a Simple WebPart Page and use WebServer controls as WebParts


Portal web sites such as MY MSN and MSN Spaces, often organize their data into discrete units that support a degree of personalization. Information is organized into standalone parts [WebParts], and users can rearrange those parts to suit their individual working styles. Here we will see how to add web parts to a web part page.

Author Rank:
Total page views :  122453
Total downloads :  2658
   Print Read/Post comments Post a comment  Similar Articles  
   Email to a friend  Bookmark  Author's other articles  
Download Files:
WebPartsArticle.zip
 
Become a Sponsor

Introduction:

Portal web sites such as MY MSN and MSN Spaces, often organize their data into discrete units that support a degree of personalization. Information is organized into standalone parts [WebParts], and users can rearrange those parts to suit their individual working styles. Such personalization also lets users hide parts that contain information in which they have no interest. What's more, users can save their settings so that the site will remember their preferences the next time they visit the site. In ASP.NET 2.0, you can now build web portals that offer this kind of modularization of information and personalization using the new Web Parts Framework.

Scope of this Tutorial:

Here we will see how to add web parts to a web part page. Developing advanced WebParts from scratch is out of this tutorial scope. This tutorial also may has subsequent tutorial that explains more about Web Parts Framework.

Assumptions:

This tutorial assumes you are familiar with Data Access Controls and Data Binding Controls such as SqlDataSource and GridView. Also it requires SQL Sever 2005 Express Edition and Visual Web Developer. If you don't have SQL Server Express 2005, install ASPNETDB in your SQL Server instance using aspnet_regsql tool. and configure your application to use this instance as your personalization provider.

How to create WebParts Page:

To create a WebParts Page, you need to work with a specific ASP.Net 2.0 Controls:

  • WebPartManager Control, which manages all Web Parts controls on a WebParts Page and must be the first control that you add to the page.

  • WebPartZone Control, which contains and provides overall layout for the Web Part controls that compose the main UI of a page. This control serves as an anchor for Web Part controls. Multiple controls of this control forms the WebParts Page.

    The WebPartZone may contains one or more WebParts.

To create a WebPart Page:

  1. Create a home page for the Web Parts. Launch Visual Studio 2005 and create a new web site project.

  2. While in design view, drag and drop a WebPartManager control from the toolbox (under the WebParts tab) onto the default Web Form, rename it to wpManager.

    WebParts Controls Tab

  3. From Layout menu item, select Insert Table, insert table with 3 columns and 1 row. This is where the Web Parts on your page are to be located.

  4. Drag and drop a WebPartZone control from the Toolbox (under the WebParts tab) into each of the table's three cells. Each WebPartZone control will serve as the docking area for one or more Web Parts. A Web Part zone is an area where Web Parts are anchored. It also defines the default layout and appearance of each Web Part within that zone.

  5. Set the ID property for each WebPartZone Control to be wpzLeft, wpzMiddle and wpzRight. Then for each one set the Auto format to Professional.

    Auto Format

  6. Save your form.

You have created your WebParts Page. Now you want to add WebParts to your page, and manage them at run time so you can rearrange WebParts positions.

Next we will add 2 WebParts, one will display Information from SQL Server Database. While the other one will display data from XML file.

Adding WebParts to the WebParts Page:

  1. Drag and drop SqlDataSource control into you Web Form, rename it to sdsTitles. Configure it to retrieve data from Titles Table in Pubs Database. [you can use SQL Server 2000 or SQL Server 2005 any Edition].

    sdsTitles Code

  2. Drag and drop GridView into wpzLeft WebPartZone control, rename it to gvTitles. Configure gvTitles to user sdsTitles as a Data Source.

  3. Switch to the Source View and add title attribute to the GridVew -gvTitles- control and set its value to "Titles".



    Set Auto format for the GridView control to classic, also set the Paging and Sorting options, and set PageSize property to 5.

    GridView Settings

  4. Drag and drop XmlDataSource control to your Web Form, rename it to xdsRSS. Configure it to use the RSS.xml that is attached with the demo project, or use any other well-formed XML file you wish.

    xdsRSS Configuration

  5. Drag and drop DataList into wpzMiddle, and rename it to dlstRss. Switch to source view and configure your DataList as the following.

    dlstRss Source View

  6. Now test your page. You will be able to see the two Web Parts, minimize them or close them only. On the following steps you'll be able to create to move them and rearrange them.

  7. Drag and drop LinkBotton to your page, not into any Web Part Zone, rename it to btnDesign. and set its text property to "Design View"

  8. Double click on the button to add click event handler, then add the following code in the event handler method:

    protected void btnDesign_Click(object sender, EventArgs e)
    {
    if (btnDesign.Text == "Design View")
    {
    wpManager.DisplayMode = WebPartManager.DesignDisplayMode;
    btnDesign.Text = "Page View";
    }
    else
    {
    wpManager.DisplayMode = WebPartManager.BrowseDisplayMode;
    btnDesign.Text = "Design View";
    }

    }

  9. Now Run your application, note when you click on the button you can now rearrange you web parts on the page.

Conclusion:

Now have explored the basics of creating WebParts Page and adding WebParts to it at design/development time. This demo showed that every Control in ASP.Net 2.0 can be a web part without customization or extra code. Same for Custom User Controls; as you can put any controls we have just worked with into a user control, then drag and drop you user control into the WebPartZone and you will get your user control as WebPart.

WebParts is special kind of WebServer Controls. It has more advanced feature. Hope we will be able to discuss them in subsequent tutorials.

Read Part II : Working with WebParts Page, WebPart Zones & WebParts


Login to add your contents and source code to this article
 About the author
 
Muhammad Mosa
Muhammad M. Mosa Soliman: Software Engineer, graduated from the Faculty of Computers & Information Systems year 2003-Ain Shams University- in Cairo. Working with Microsoft .NET technology since early beta releases. Main experiance based on ASP.NET, SharePoint Portal 2003 & SQL Server. Worked as trainer for Microsoft .NET for 2 years in Cairo. Likes to read about new technologies and self-learning. Extremly Hard worker when motivated. MCT MCSD.NET MCTS: .Net 2.0 Web/Windows Applications MCPD: Enterprise Application Developer MCTS: WSS 3.0 & MOSS 2007 Config
Looking for C# Consulting?
C# Consulting is founded in 2002 by the founders of C# Corner. Unlike a traditional consulting company, our consultants are well-known experts in .NET and many of them are MVPs, authors, and trainers. We specialize in Microsoft .NET development and utilize Agile Development and Extreme Programming practices to provide fast pace quick turnaround results. Our software development model is a mix of Agile Development, traditional SDLC, and Waterfall models.
Click here to learn more about C# Consulting.
 
Introducing MaxV - one click. infinite control. Hyper-V Hosting from MaximumASP.
Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
Dynamic PDF
ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications.
SQL and .NET performance profiling in one place
Investigate SQL and .NET code side-by-side with ANTS Performance Profiler 6, so you can see which is causing the problem without switching tools.
Go.NET
Build custom interactive diagrams, network, workflow editors, flowcharts, or software design tools. Includes many predefined kinds of nodes, links, and basic shapes. Supports layers, scrolling, zooming, selection, drag-and-drop, clipboard, in-place editing, tooltips, grids, printing, overview window, palette. 100% implemented in C# as a managed .NET Control. Document/View/Tool architecture with many properties&events. Optional automatic layout.
Dundas Software
Dundas Chart for .NET is the most advanced .NET charting package available today.  With an extremely complete feature set, elegant architecture and easy implementation, Dundas Chart can quickly add advanced Charting functionality to enhance and transform ASP.NET and Windows Forms applications.  Whether you are implementing charting into internal projects, or building applications for clients, Dundas Chart offers advanced technology and advanced results to get the most out of data.
60 FREE UI Controls from DevExpress
Register for your FREE copy on over 60 free presentation controls from DevExpress - Absolutely Free-of-Charge without any royalties or distribution costs. Visit Devexpress.com/60 today. Free controls include advanced lists box, dropdown calendar, rich text edit, spin edit, tab control and so much more!

DevExpress engineers feature rich presentation controls and reporting tools for WinForms, ASP.NET, WPF, and Silverlight. Our technologies help you build your best, see complex software with greater clarity and deliver compelling business solutions for Windows and the web in the shortest possible time.
Clickatell's SMS Gateway
Clickatell's Developer Solutions allow you to SMS enable any website or application via a range of API's. Learn More about our API connections.
Free access to .NET Memory Management video
Everything you need to know about Garbage Collection, Temporary Objects, Fragmentation, Finalization and common causes of memory leaks in .NET. Watch the video here.
Microsoft Visual Studio 2010
Visualize your workspace with new multiple monitor support, powerful Web development, new SharePoint support with tons of templates and Web parts, and more accurate targeting of any version of the .NET Framework. Get set to unleash your creativity.
Nevron Chart for .NET 2010.1 Now Available
The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
Developer-Ready ASP.NET 2.0 Web Hosting with 3 MONTHS FREE
Now supporting .NET 3.0 Framework with Windows Workflow Foundation, Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF), windows CardSpace (WCS)! Providing more flexibility for Developers with Web Services Support and a User/Permission Manger. Also supporting MS SQL 2005/2000 with Real-Time Backups, FREE Automated Attach .MDF Tool, FREE SQL Restore and Shrink SQL DB Tools, and SQL
Read the Top 10 Books for Microsoft Developers, 15 Days FREE
Read the Top 10 Books for Microsoft Developers, 15 Days FREE
Try Safari Books Online - 15 Days FREE + 15% Off for 1 Year
Try Safari Books Online - 15 Days FREE + 15% Off for 1 Year
 
 Post a Feedback, Comment, or Question about this article
Subject:
Comment:
Become a Sponsor
 Comments
A question by bashmohandes On March 7, 2006

I think the customizations in the Web Parts are only for logged in users, because When I try to use this without logging in it keeps throwing errors, so if there is any other way to make it for anyone please inform...

Thanks for your great article

Mohammed Hossam

Mohammed.Hossam@hotmail.com (MSN Messenger only)

Mohammed.Hossam@Gmail.com Mailing

Reply | Email | Delete | Modify | 
creating web part for login by r On April 19, 2006

hi

i have vs2003 on my machine & i want to creat a login page/control as a web part

so when user use my url he will see my login page & when he get authenicated he will be able to access my web otherwise not.

so if you have code for this type of application please send me.

thanking you,

 

Reply | Email | Delete | Modify | 
Can't see the image (Verb Menu) to minimise/close the web part zone by Chintan On June 12, 2006

Hi,

I was trying the web part zone control in my application. I have followed the exact steps given in your article (Adding WebPartManager, WebPartZone, ASP Controls). I can see the Verb Menu icon at the design time. But when I am running the application, I can't see the verb menu beside the title.

At the execution of following line

wpManager.DisplayMode = WebPartManager.DesignDisplayMode;

DOT NET throws an error

The specified display mode is currently disabled on this page. Make sure personalization is enabled for the current user.

Please assist.

Thanks in advance.

Reply | Email | Delete | Modify | 
I have a question ? by manh dung On July 5, 2006

hi mosessaur

 i create webpart using vs.net(webform) but i don't know add webpart to Sharepoint?

could you hellp me? .thank!

Reply | Email | Delete | Modify | 
Re: I have a question ? by Manoj On March 14, 2008

I got the same problem:

I developed a webpart for sps 2003 which uses GridView Control to display data fetched from SQL Server 2005.

It worked. Then i tried to customize the properties of gridview i.e., i set the properties AllowPaging and AllowSorting to true and added event handlers for handling sorting and paging.
When i tried to use it in sps 2003 page it gave the following error:
 
Object reference not set to an instance of an object.
 
Here is the code which is wrote :
 

using

System;

using

System.Collections.Generic;

using

System.ComponentModel;

using

System.Text;

using

System.Web;

using

System.Web.UI;

using

System.Web.UI.WebControls;

using

System.Data;

using

System.Data.SqlClient;

using

Microsoft.SharePoint;

using

Microsoft.SharePoint.WebPartPages;

using

System.Xml;

using

System.Xml.Serialization;

using

System.Configuration;

 

namespace

MyNewGridView

{

[

DefaultProperty("Text")]

[

ToolboxData("<{0}:WebTestGrid runat=server></{0}:WebTestGrid>")]

[

XmlRoot(Namespace="MyNewGridView")]

public class WebTestGrid : WebPart

{

SqlConnection cnn;

SqlCommand cmd;

SqlDataAdapter da;

DataSet ds;

GridView gv;

[

Bindable(true)]

[

Category("Appearance")]

[

DefaultValue("")]

[

Localizable(true)]

public string Text

{

get

{

String s = (String)ViewState["Text"];

return ((s == null) ? String.Empty : s);

}

set

{

ViewState[

"Text"] = value;

}

}

protected override void CreateChildControls()

{

try

{

cnn =

new SqlConnection();

string connectionstring = ConfigurationManager.ConnectionStrings["pubs"].ConnectionString;

cnn.ConnectionString = connectionstring;

cnn.Open();

cmd =

new SqlCommand();

cmd.Connection = cnn;

cmd.CommandType =

CommandType.Text;

cmd.CommandText =

"select * from customer";

da =

new SqlDataAdapter(cmd);

ds =

new DataSet();

da.Fill(ds);

gv =

new GridView();

gv.AllowPaging =

true;

gv.AllowSorting =

true;

gv.PageSize = 2;

gv.PageIndexChanging +=

new GridViewPageEventHandler(Page_change);

gv.Sorting +=

new GridViewSortEventHandler(Page_sort);

gv.DataSource = ds;

gv.DataBind();

Controls.Add(gv);

base.CreateChildControls();

}

catch (Exception ex)

{

throw ex;

}

finally

{

da.Dispose();

cnn.Close();

}

}

protected override void RenderWebPart(HtmlTextWriter output)

{

gv.RenderControl(output);

base.RenderWebPart(output);

}

public void Page_change(object sender, GridViewPageEventArgs e)

{

gv.PageIndex = e.NewPageIndex;

show();

}

public void show()

{

cmd.CommandText =

"select * from Customer ";

SqlDataAdapter da1 = new SqlDataAdapter(cmd);

try

{

cnn.Open();

ds.Clear();

da1.Fill(ds);

gv.DataSource = ds;

gv.DataBind();

}

catch (Exception ex)

{

throw ex;

}

finally

{

da1.Dispose();

cnn.Close();

}

}

public void Page_sort(object sender, GridViewSortEventArgs e)

{

int pageindex = gv.PageIndex;

string str = e.SortExpression;

cmd.CommandText =

"select * from Customer order by " + str + " ASC";

SqlDataAdapter da2 = new SqlDataAdapter(cmd);

try

{

cnn.Open();

ds.Clear();

da2.Fill(ds);

gv.DataSource = ds;

gv.DataBind();

gv.PageIndex = pageindex;

}

catch (Exception ex)

{

throw ex;

}

finally

{

da2.Dispose();

cnn.Close();

}

}

}

}

 

 

 

If you can help me , i would be very thankful for you.

Thanks & Regard's,

Manoj


 

Reply | Email | Delete | Modify | 
Re: I have a question ? by Muhammad On August 1, 2006

You cannot use your .Net 2.0 webparts in SPS 2003.

there is another tool for VS.NET 2003. if you are using SPS 2003 please inform me and I'll submit to best resources for it

Reply | Email | Delete | Modify | 
Verbs are Appearing in my WebpartZone by raj On August 2, 2006

hai

    I had tried the article to create a simple webpart appliation. i tried the exact code but for me the colse verb,minimizeverbs are not comeing. why it is happeing.

 

Reply | Email | Delete | Modify | 
8th Step by Bob On October 13, 2006

I seem to be having issues with the 8th step.  My background is more in System's engineering so perhpas I am missing something basic.  This is the code behind my link button.  Does it look correct?  An "end of statement" comment is shown when I mouse over the "Protected void..." statement.  Also, I was hoping to design web parts for SPS 2003.  Is there a good article that describes how to design web parts for SPS?

Thank you for the great tutorial.  It has been fun and I learned somthing new.

 

======

Protected Sub btnDesign_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnDesign.Click

Protected void btnDesign_Click(object sender, EventArgs e)

{

if (btnDesign.Text == "Design View")

{

wpManager.DisplayMode = WebPartManager.DesignDisplayMode;

btnDesign.Text = "Page View";

}

Else

{

wpManager.DisplayMode = WebPartManager.BrowseDisplayMode;

btnDesign.Text = "Design View";

}

}

End Sub

Reply | Email | Delete | Modify | 
Re: 8th Step by Bob On October 16, 2006
Ahh.. the example is written in C# (guessing) and I was working in .net VB. 
Reply | Email | Delete | Modify | 
WebParts and SQLExpress by Johan On February 20, 2007
I worked through the tutorial and all worked well. I noticed that a SQLExpress database is created when running this tutorial. My question is this: What is needed to NOT use SQLExpress but rather SQL 2000 or SQL 2005. Please be specific as I am a beginner. Thanks in advance Johan PS: Great tutorial Muhammad!
Reply | Email | Delete | Modify | 
Re: WebParts and SQLExpress by Muhammad On February 21, 2007

thank you my friend. to resolve your issue you'll need to add new connection string to your connectionString section. This connection string will map to one of your database where ASP.NET 2.0 Services is installed, specially Personalization Services. To install this services on a specific Database do the following:

  1. Start -> All Programs -> Microsoft .NET Framework SDK v2.0 -> click on SDK Command Prompt.
  2. type aspnet_regsql and press enter. This should display a wizard to you. follow the wizard and install the services on one of your databases.

new you have the services installed. Now add a connection string to this database to your connectionStrings section if not already there.

<connectionStrings>
<
add name="pubsConnectionString" connectionString="Data Source=.;Initial Catalog=pubs;Integrated Security=True" providerName="System.Data.SqlClient" />
<
add name="aspnetservicesdb" connectionString="Data Source=.;Initial Catalog=aspnetdb;Integrated Security=True" providerName="System.Data.SqlClient" />
</
connectionStrings>

Under system.web element add the following

<webParts>

<personalization defaultProvider="AspNetSqlPersonalizationProvider">

<providers>

<clear/>

<add name="AspNetSqlPersonalizationProvider" connectionStringName="aspnetservicesdb" type="System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider"/>

</providers>

</personalization>

</webParts>

Note the bolded code.

You may also need to configure some other services like membership, role or profile providers. to do so you can also add the following under system.web element:

<membership defaultProvider="AspNetSqlMembershipProvider">

<providers>

<clear/>

<add name="AspNetSqlMembershipProvider" connectionStringName="aspnetservicesdb" type="System.Web.Security.SqlMembershipProvider"/>

</providers>

</membership>

<roleManager defaultProvider="AspNetSqlRoleProvider">

<providers>

<clear/>

<add name="AspNetSqlRoleProvider" connectionStringName="aspnetservicesdb" type="System.Web.Security.SqlRoleProvider"/>

</providers>

</roleManager>

<profile defaultProvider="AspNetSqlProfileProvider">

<providers>

<clear/>

<add name="AspNetSqlProfileProvider" connectionStringName="aspnetservicesdb" type="System.Web.Security.SqlProfileProvider"/>

</providers>

</profile>

Hope this helps you and resolves your issue

Reply | Email | Delete | Modify | 
Re: WebParts and SQLExpress by hitesh On August 9, 2007

Hi,

I am also facing the same problem..

An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

any solution for this...?

Hitesh

 

Reply | Email | Delete | Modify | 
Sample Not working by frankie On February 26, 2007
Hi, I read the article and try the example, but i can't get it working. Below is the error message i've got. An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) When i add gridview and configured to the new data source, it was working perfectly. all data were retrieved, but whenever i run the application. I'll get the above error message. Please help Thanks
Reply | Email | Delete | Modify | 
Re: Sample Not working by Muhammad On February 28, 2007

Well this may occur because of many reasons.
Check the connection string in the Web.Config, and make sure that your SQLExpress is installed.

You might not have SQLExpress, in this case, read my reply above your comment.

 

Reply | Email | Delete | Modify | 
Minimizing a webpart by vikas On April 27, 2007
I have a visual studio.Net on my system and i am working to minimizing a webpart in Share POint portal server But I am not able to do that .will you please help me with that i ll be thankful.
Reply | Email | Delete | Modify | 
Re: Minimizing a webpart by Muhammad On April 29, 2007

You are working with Microsoft SharePoint Portal Server 2003 or Microsoft Office SharePoint Portal Server 2007?

But minimizing WebPart is supposed to work normaly. Can you observe the minimize icon or it is not displayed?! if you can enteract with it, then you mean it is not minimizing! and in this case I'm not sure of the issue

Reply | Email | Delete | Modify | 
webparts by ganesh On May 8, 2007
how we can store the individual settings for different user who did their own settings.
Reply | Email | Delete | Modify | 
Dynamically adding Web part by sandeep On July 26, 2007
I am having trouble displaying the server contol(Label) text added to a web part dynamically/programmatically. If I add a client side "title" attribute then the title is being displayed but not the actual text. I want ot add other contols like asp:Table. Below is my code. Please let me know what I am missing. I am adding this on page_init Label lblNodeValue = new Label(); lblNodeValue.ID = "lblNode"; lblNodeValue.Text = "Node1"; lblNodeValue.Attributes.Add("Title", "FirstNode"); GenericWebPart gwp = WebPartManager1.CreateWebPart(lblNodeValue); WebPartManager1.AddWebPart(gwp, WebPartZone1, 0);
Reply | Email | Delete | Modify | 
How to open word document one webpart as a viewer on other webparts there is link of that document by batra On March 19, 2008
How to open word document one webpart as a viewer on other webparts there is link of that document
Reply | Email | Delete | Modify | 
question regarding not shown minimize/close image by sanjeev On December 18, 2008
Hi, I was trying the web part zone control in my application. I have followed the exact steps given in your article (Adding WebPartManager, WebPartZone, ASP Controls). I can see the Verb Menu icon at the design time. But when I am running the application, I can't see the verb menu beside the title. At the execution of following line wpManager.DisplayMode = WebPartManager.DesignDisplayMode; DOT NET throws an error The specified display mode is currently disabled on this page. Make sure personalization is enabled for the current user. Please assist. Thanks in advance
Reply | Email | Delete | Modify | 
thank u by surya On January 23, 2010
Hello sir,
   Thank u very much. Can i know some more details like how to create webpages and its fields for Customer Relationship Management(CRM). Moreover, Iam in position to use the dotnet 3.5 framework and Sql Server as backend. Please help me.  My mail: suryasyas@gmail.com
Reply | Email | Delete | Modify | 
aaa by amol On August 19, 2010

aaaa

Reply | Email | Delete | Modify | 

 Hosted by MaximumASP  |  Found a broken link?  |  Contact Us  |  Terms & conditions  |  Privacy Policy  |  Site Map  |  Suggest an Idea  |  Media Kit
Current Version: 5.2010.8.14
 © 2010  contents copyright of their authors. Rest everything copyright Mindcracker. All rights reserved.