Uyarılar :
- Bu sayfada yazılanlar yeniden yayınlanamaz.
- Bu örnek ders sırasındaki anlatımlardan derlenmiştir. Özellikle bir makale şeklinde yazılmamıştır. Bilgilerde eksiklikler bulunabilir.
- Sayfayı test etmek isterseniz "SorguDizesi_QueryString.aspx" adıyla kaydediniz.
QueryString (Sorgu Dizesi), tarayıcının adres çubuğunda görüntülenmek istenin sayfanın yolu ve adıyla birlikte
bir soru işaretinden sonra yazılan kısımdır. Örneğin;
http://www.turkegitim.net/SorguDizesi_QueryString.aspx?adi=ali&soyadi=ünlü
şeklindeki bir adresteki soru işaretinden sonra gelen;
adi=ali&soyadi=ünlü
kısmı sorgu dizesidir.
Sorgu dizesi anahtar ve değer çiftleri içerir. Örneğimizdeki "adi" anahtar, değeri ise "ali" metnidir. QueryString 1'den
fazla anahtar içeriyorsa sonraki işaretler bir & işaretinden sonra yazılır. Örneğimizde ikinci anahtar "soyadi",
değeri ise "ünlü" metnidir.
Sorgu dizesi kullanımı, bir sayfaya veri gönderme yollarından birisidir. Sayfa kendine örnekteki şekilde gelen sorgu dizezindesi
anahtar ve değerlere Page nesnesinin Request (istek) özelliğinin QueryString isimli NameValueCollection (isim değer koleksiyonu)
türünden özelliği vasıtasıyla ulaşır.
QueryString özelliğinin "Get" metodu ile bir anahtarın mevcut olup olmadığını test edebiliriz. Get, anahtar mevcutsa
değerini, aksi halde "null" döndürür. Alttaki örnekte de görüldüğü gibi kullanımı;
if (Request.QueryString.Get("adi") == null) ...
şeklindedir.
Üstteki gibi bir sınama yaptıktan sonra eğer anahtar mevcut ise, değerini (örnekte "ali" metni) almak için;
Request.QueryString["adi"];
şeklinde bir ifade kullanırız.
Örnek :
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load(Object o, EventArgs e)
{
// Mesaj için kullanılan Label'e bir ön değer ata...
lblMesaj.Text = "Sorgu dizesinden gelen 'adi' anahtarının değeri :";
// Eğer sorgu dizesinde (QueryString) "adi" isimli bir anahtar yoksa...
if (Request.QueryString.Get("adi") == null)
// Mesaj Label'inin Text değerine anahtar ve değer gelmediğini bildiren bir mesaj ekle
lblMesaj.Text += "(Sorgu dizesinde 'adi' isimli bir anahtar yok)";
// Sorgu dizesinde "adi" isimli bir anahtar varsa...
else
// Sorgu dizesinde "adi" anahtarı varsa değerini mesaj Label'ine ekle.
lblMesaj.Text += Request.QueryString["adi"];
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Label ID="lblMesaj" runat="server" />
<br />
<a href="SorguDizesi_QueryString.aspx?adi=ali&soyadi=ünlü">Sorgu Dizesi Gönder</a>
<br />(Sayfa ilk kez çalıştırıldığında adres çubuğunda bir sorgu dizesi
olmadığından bir değer görüntülenmeyecektir. Sayfayı sorgu dizesi (QueryString)
ile çağırmak için üstteki bağlantıyı tıklayın.)
</form>
</body>
</html>