Introduction
I have created search webpart in Custom coding here.In Tool pane you can change the property of the webpart whether google search or yahoo search or Bing search or you can click the checkbox to give your search url.I have done this by using custom properties and also i have used all the custom properties in this example like enum,string,bool.
|
Look of the tool pane with custom properties
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;
using System.Xml.Serialization;
using System.Drawing;
using System.ComponentModel;
using Microsoft.SharePoint.WebPartPages;
namespace googleSearch_webpart
{
[DefaultProperty("Text"),
ToolboxData("<{0}:CustomPropertyWebPart runat=server></{0}:CustomPropertyWebPart>"),
XmlRoot(Namespace = "googleSearch_webpart")]
public class google : System.Web.UI.WebControls.WebParts.WebPart
{
public Label label = new Label();
public TextBox textBox = new TextBox();
public Button button = new Button();
string url = "";
public int i = 0;
const bool c_bool = false;
public enum searchform
{
google = 0,
yahoo,
bing
};
private bool _bool;
private string _address;
private string _adlabel;
private searchform _mySearch;
public google()
{
_bool = c_bool;
}
[SPWebCategoryName("Custom Properties")]
[DefaultValue(searchform.google)]
[WebPartStorage(Storage.Shared)]
[FriendlyName("Select Browsers")]
[WebDescription("Select a value from the dropdown list.")]
[WebBrowsable(true)]
[Personalizable(PersonalizationScope.Shared)]
[XmlElement(ElementName = "mySearch")]
public searchform mySearch
{
get
{
return _mySearch;
}
set
{
_mySearch = value;
}
}
[SPWebCategoryName("Custom Properties")]
[DefaultValue(c_bool)]
[WebPartStorage(Storage.Shared)]
[FriendlyName("Click this to give custom URL and Label")]
[WebDescription("Click this to give custom URL and Label")]
[WebBrowsable(true)]
[Personalizable(PersonalizationScope.Shared)]
[XmlElement(ElementName = "Bool")]
public bool Bool
{
get
{
return _bool;
}
set
{
_bool = value;
}
}
[SPWebCategoryName("Custom Properties")]
[WebPartStorage(Storage.Shared)]
[FriendlyName("Search URL")]
[WebDescription("Search URL")]
[WebBrowsable(true)]
[Personalizable(PersonalizationScope.Shared)]
[XmlElement(ElementName = "Address")]
public string Address
{
get
{
return _address;
}
set
{
_address = value;
}
}
[SPWebCategoryName("Custom Properties")]
[WebPartStorage(Storage.Shared)]
[FriendlyName("Search label")]
[WebDescription("Search label")]
[WebBrowsable(true)]
[Personalizable(PersonalizationScope.Shared)]
[XmlElement(ElementName = "Adlabel")]
public string Adlabel
{
get
{
return _adlabel;
}
set
{
_adlabel = value;
}
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
label.ID = "search";
label.Text = "Search Term";
label.Font.Bold = true;
Controls.Add(label);
textBox.ID = "googleBox";
textBox.Text = "";
textBox.Width = Unit.Pixel(80);
textBox.BorderColor = Color.FromArgb(79, 129, 189);
textBox.BorderWidth = Unit.Pixel(2);
Controls.Add(textBox);
button.Click += new EventHandler(button_Click);
button.ID = "button1";
button.ForeColor = Color.White;
button.Font.Bold = true;
button.BackColor = Color.FromArgb(79, 129, 189);
button.BorderColor = Color.FromArgb(56, 93, 138);
button.CausesValidation = true;
Controls.Add(button);
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
}
protected override void CreateChildControls()
{
base.CreateChildControls();
}
void button_Click(object sender, EventArgs e)
{
i = 1;
if (_bool == false)
{
if (_mySearch.ToString() == "google")
url = "https://www.google.co.in/search?q=" + textBox.Text;
else if (_mySearch.ToString() == "yahoo")
url = "http://in.search.yahoo.com/search?p=" + textBox.Text;
else
url = "http://www.bing.com/search?q=" + textBox.Text;
}
else
{
url = _address + textBox.Text;
}
}
protected override void Render(HtmlTextWriter writer)
{
EnsureChildControls();
StringBuilder ospart1 = new StringBuilder();
StringBuilder ospart2 = new StringBuilder();
StringBuilder ospart3 = new StringBuilder();
StringBuilder ospart4 = new StringBuilder();
ospart1.Append("<div id=div1>");
ospart1.Append("<table width=200 cellspacing=5 cellpadding=3>");
ospart1.Append("<tr width=100%>");
ospart1.Append("<td width=50% align=center valign=center>");
ospart2.Append("</td>");
ospart2.Append("<td width=50% align=center valign=center>");
ospart3.Append("</td></tr>");
ospart3.Append("<tr width=100%>");
ospart3.Append("<td width=100% height=50 align=center valign=center colspan=2>");
ospart4.Append("</td></tr></table></div>");
writer.Write(ospart1);
label.RenderControl(writer);
writer.Write(ospart2);
textBox.RenderControl(writer);
writer.Write(ospart3);
if (_bool == false)
{
if (_mySearch.ToString() == "google")
{
button.Text = "Google it";
}
else if (_mySearch.ToString() == "yahoo")
button.Text = "Yahoo it";
else
button.Text = "Bing it";
}
else
button.Text = _adlabel;
button.RenderControl(writer);
writer.Write(ospart4);
if(i==1)
writer.Write("<iframe id=Frame src="+url+" width=100% height=400></iframe>");
}
}
}
|