24 Haziran 2014 Salı

Asp.Net Site İçi Arama Yapımı

Arama yaptıracağımız sayfaya bir textbox ve bir buton ekleyelim
Default.aspx
<asp:TextBox ID="txtArama" runat="server"></asp:TextBox>
        &nbsp;<asp:Button ID="btnAra" runat="server" OnClick="btnAra_Click" Text="Ara" />

Butona çift tıklayalım ve aşağıdaki kodları yazalım
Default.aspx.cs
protected void btnAra_Click(object sender, EventArgs e)
    {
        string aranan = SqlInjectionTemizle(txtArama.Text);
        if (aranan.Length < 3)
        {
            ClientScript.RegisterStartupScript(typeof(Page), "asd""<script>alert('Arama için en az üç harf girmelisiniz');</script>");
        }
        else
        {
            Response.Redirect("Arama.aspx?ara=" + aranan + "");
        }
    }
    public string SqlInjectionTemizle(string text)
    {
        text = text.Replace("&gt;""");
        text = text.Replace("&lt;""");
        text = text.Replace("--""");
        text = text.Replace("'""");
        text = text.Replace("char """);
        text = text.Replace("delete """);
        text = text.Replace("insert """);
        text = text.Replace("update """);
        text = text.Replace("select """);
        text = text.Replace("truncate """);
        text = text.Replace("union """);
        text = text.Replace("script """);
        return text;
    }
Burada 3 harften az kelime ile arama yapmayı engelledik ve SqlInjectionTemizle fonksiyonuyla zararlı olabilecek kelimeleri temizledik. Daha sonra aranan kelimeyi querystring ile arama.aspx sayfamıza gönderdik.Şimdi arama.aspx sayfamızın kodlarını yazalım.

Örnek olarak bir haber sitemiz olduğunu düşünelim ve haberler tablomuzdaki baslik ve detay alanlarında arama yaptıralım. Arama.aspx sayfamıza bir gridview ekleyelim ve kod tarafına aşağıdaki kodları yazalım
Arama.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;

public partial class Arama : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["ara"] != null)
        {
            string aranan = Request.QueryString["ara"];
            HaberleriGetir(aranan);
        }
    }

    private void HaberleriGetir(string aranan)
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConn"].ConnectionString);
        SqlDataAdapter adp = new SqlDataAdapter("Select haberID,baslik,detay From haberler Where baslik Like '%" + aranan + "%' OR detay LIKE '%" + aranan + "%' Order By haberID Desc",conn);
        DataTable tbl = new DataTable();
        adp.Fill(tbl);

        GridView1.DataSource = tbl;
        GridView1.DataBind();
    }
}

Asp.Net sayfadaki tüm textboxları temizlemek

Web uygulamalarında formlarımızda textboxları tek tek temizlemek yerine basit bir metod yazarak tüm textboxları tek seferde temizleyebiliriz. İşte bu metod:
Kod
 public static void TextBoxTemizle(Page page)
 {
     foreach (Control c in page.Controls)
     {
          if (c is TextBox)
          {
              ((TextBox)c).Text = "";
          }
     }
}
Metodu aşağıdaki gibi çağırabiliriz
Kod

TextBoxTemizle(this);

Yalnız MasterPage kullanan sayfalarımızda bu metod istediğimz sonucu vermeyecektir. Bunun için textboxlarımızın bir panelin içine almalıyız ve metodumuzu şu şekilde kullanmalıyız
Kod
    public static void TextBoxTemizle(Panel pnl)
    {
        foreach (Control c in pnl.Controls)
        {
            if (c is TextBox)
            {
                ((TextBox)c).Text = "";
            }
        }
     }

 Bu metodu da aşağıdaki gibi çağırabiliriz
Kod
TextBoxTemizle(pnl1); // pnl1 panele verdiğimiz ad

22 Haziran 2014 Pazar

Divden sonra gölge eklemek


Yukarıda bulunan resim dosyasını bilgisayarınıza indirin. Gölge şeklinde.

Sizin sitemizi ziyaret etmeden önce yazmış olduğunuz bir css kodunuz olduğu var sayıyoruz. Oluşturduğunuz divinizin adı da "haberler" olsun. Css kodunuzu aşağıdaki gibi düzenlediğinizde yada aşağıdaki kodu kopyalayıp css'inizin içerisine yapıştırdığınızda gölgeyi eklemiş olacaksınız.

.haberler {
    positionrelative;
    margin-bottom:20px;
}

.haberler:after {
    content" ";
    displayblock;
    height40px;
    width100%;
    backgroundurl(images/golge.png) top center no-repeat;
    positionabsolute;
}