Bu aralar dersler de örnek olsun diye webpart uygulaması yapıyorum. Bazı çıkarımlar olmadı değil. Sürü ile kontrol hazırladım. İyi kötü yazıyorum birkaç tanesini :)
//google.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="googleSearch.ascx.cs"
Inherits="googleSearch" %>
<script type="text/javascript">
var req= N';
function GetXmlHttpObject()
{
try
{
req = new XMLHttpRequest();
}
catch(e)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
}
}
function stateChange()
{
document.getElementById('calImg').style.display = 'inline';
if(req.readyState == 4)
{
document.getElementById('calImg').style.display = 'none';
document.getElementById('calDiv').innerHTML = req.responseText;
}
}
function search()
{
var url = './resources/search.aspx?text=' + document.getElementById("txtSearch").value;
GetXmlHttpObject();
req.onreadystatechange = stateChange;
req.open("post",url,true);
req.send(N');
}
</script>
<table>
<tr>
<td align="center">
<img src="images/google.gif" style="width: 200px; height: 68px" alt="google" />
</td>
</tr>
<tr>
<td align="center">
<input id="txtSearch" style="font-family: arial, Helvetica, sans-serif; font-size: 12px;
border: 1px solid #808080" type="text" />
<input onclick="search()" id="Button1" style="font-family: arial, Helvetica, sans-serif;
font-size: 12px; border: 1px solid gray; height: 19px; width: 66px;" type="button"
value="Ara" />
</td>
</tr>
<tr>
<td>
<img src="images/circle.gif" id="calImg" alt="aranyor" style="display: none;" />
<br />
<div id="calDiv">
</div>
</td>
</tr>
</table>
//search.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
string kelime = Request["text"];
string adres = @"http://www.google.com.tr/search?hl=tr&q=" + kelime + "&meta=";
WebClient client = new WebClient();
DateTime dt1 = DateTime.Now;
string data = client.DownloadString(adres);
DateTime dt2 = DateTime.Now;
TimeSpan ts = dt2 - dt1;
string pattern = "<h2 class=r>(?<Link>.*?)</h2>";
Regex myRegex = new Regex(pattern);
MatchCollection myCol = myRegex.Matches(data);
int counter = 0;
StringBuilder sb = new StringBuilder();
sb.Append("<b>Sonuçlar</b> (<i>");
sb.Append(ts.TotalMilliseconds);
sb.Append(" toplam Milisaniye</i>)<br />");
sb.Append("<table border=0 width=100% style=font-family:arial;font-size:10px;>");
foreach (Match m in myCol)
{
if ((m.Groups[0].ToString().IndexOf("aramalar:")) == -1)
{
counter++;
sb.Append("<tr><td width=10%>");
sb.Append(counter.ToString());
sb.Append("</td>");
sb.Append("<td>");
sb.Append(m.Groups["Link"].Value);
sb.Append("</td></tr>");
}
}
sb.Append("</table>");
Response.Write(sb.ToString());
}