Asp.Net’ten (Code Behind) JQuery’e Dizi Göndermek

Jquery kullanarak grafik oluştururken;
code behind tarafındaki verilerimizi series olarak Jquery’e göndermemiz gerektiğinde aşağıdaki kod parçası yardımcı olabilir.

Code Behind:


using System.Web.Script.Serialization;

int er404= new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 };

protected string d404
{
get
{

return new JavaScriptSerializer().Serialize(er404);
}
}

.Aspx


series: [{

name: '404 Hatası',
data: <%= d404 %>
}]

Reklamlar

C# Date Format Kontrolü

Datetime tipinde oluşturduğumuz değişkenlerin formatı sql server’a uygun olmayabiliyor.

Girilen değeri uygun formata çeviren bir method oluşturdum.


String dateFormat(DateTime tarih)
{
int yil= tarih.Year;
int ay = tarih.Month;
int gun = tarih.Day;
int saat = tarih.Hour;
int dakika = tarih.Minute;
int saniye = tarih.Second;


string newDate = yil+"-"+sifirEkle(gun)+"-"+sifirEkle(ay)+" "+sifirEkle(saat)+":"+sifirEkle(dakika)+":"+sifirEkle(saniye);

return newDate;
}



String sifirEkle(int sayi)
{
string ekle="";
if (sayi < 10)
ekle = "0" + sayi;
else
ekle = sayi.ToString();

return ekle;
}

C# Query’den Tek Bir İnteger Döndürmek

Database’imiz bağlandıktan sonra toplam gibi tek bir integer değer döndürmek istediğimizde ExecuteScalar() methodunu kullanıyoruz.


SqlConnection con = new SqlConnection(".........................");
con.Open();

query404 = "select count(*) from Errors where datetime >='" + dateFormat(date) + "' AND datetime<'" + dateFormat(dateEx) + "' and error=404 ";
query500 = "select count(*) from Errors where datetime >='" + dateFormat(date) + "' AND datetime<'" + dateFormat(dateEx) + "' and error=500 ";

SqlCommand cmd404 = new SqlCommand(query404, con);
SqlCommand cmd500 = new SqlCommand(query500, con);

int er404 = (int)cmd404.ExecuteScalar();
int er500= (int)cmd500.ExecuteScalar();

con.Close();

Asp.Net Doğrulama Resmi (Captcha Kontrolü)

Websitemizdeki iletişim formlarımızı, robot yazılımların otomatik spam maillerine ya da saldırılarına karşı korumak için captcha kontrolü yapıyoruz.

Captcha dediğmiz bildiğimiz güvenlik kodunun resim halinde yazılmışı. Açılımı da Completely Automated Public Turing test to tell Computers and Humans Apart imiş.

Araştırmalarım sonucu temiz çalışan kısa bir kod parçası buldum biraz güncelleyip eklemeler yaparak proejeye ekledim.

İlk olarak yeni bir sayfa oluşturuyoruz. captcha.aspx olabilir. Page loadın içine aşağıdaki kodu yapıştırıyoruz.


protected void Page_Load(object sender, EventArgs e)
{
Bitmap resim = new Bitmap(150, 20);
string harfler = "ABCDEFGHIJKLMNOPRSTYUVYZWXQ1234567890";
Graphics grafik = Graphics.FromImage(resim);
grafik.FillRectangle(new SolidBrush(Color.FromArgb(200, 221, 236, 250)), 0, 0, 150, 20);
Font yazi_tipi = new Font("Verdana", 12, FontStyle.Bold);
Random rastgele = new Random();
SolidBrush firca = new SolidBrush(Color.Navy);
string karakter = "";
string kod = "";
for (int i = 0; i < 5; i++)
{
karakter = harfler[rastgele.Next(0, harfler.Length - 1)].ToString();
grafik.DrawString(karakter, yazi_tipi, firca, i * 28 + 5, 0);
kod += karakter;
}
resim.Save(Response.OutputStream, ImageFormat.Jpeg);
Session["kod"] = kod;
}

Karakterleri sessionumuzda kod parametresiyle olarak tutuyoruz.

Sonrasında gerekli sayfamızda çağırarak kullanıcının girdiği değer ile karşılaştırıyoruz.

codeControl methodu; texboxtan girilen değerle, güvenlik kodumuz  eşleşiyorsa bize true değerini döndürecek.


public bool codeControl()
{

if(TextBox7.Text==Session["kod"].ToString())
{

return true;
}

Label1.Text = "Kodu Hatalı Girdiniz.";
Label1.CssClass = "kirmizi";
TextBox7.Text = "";
TextBox7.Focus();
return false;

}

Asp.Net Form Kontrolü (Validator Kullanımı)

Asp.Net’te formlarımızdaki inputların boş mu kontrolü, karakter sayısı kontrolü ve format kontrolü gibi kontrolleri Validationları kullanarak yapabiliyoruz.

Eğer kıstaslarımıza uymuyorsa submit butonumuz çalışmıyor ve istediğimiz hata mesajını yazdırabiliyoruz.


<asp:TextBox ID="TextBox6" runat="server" BorderStyle="Groove" Rows="6" TextMode="MultiLine"></asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="*" ControlToValidate="TextBox6"></asp:RequiredFieldValidator>

Tüm detaylı örnekler için:
http://msdn.microsoft.com/en-us/library/ms972961.aspx

Asp.Net Session Oluşturamama Problemi

Projenin frameworkunu güncellerken Web.config dosyasını da güncellemiş ve bir kaç ayarı değişmiş.

Bu yüzden “Session state can only be used when enableSessionState is set to true” şeklinde bir session hatası almaya başladım.

Bu problemle karşılaşırsanız Web.config dosyamızdaki
<configuration>\<system.web>\<httpModules>
içerisini;

<pages enableSessionState=”true” enableViewStateMac=”true”>  

şeklide düzenlememiz gerekli.

JQuery ile HTML İçerik Değiştirme

JQuery ile HTML içeriğini değiştirmek , başına , sonuna, al ve üst satırlarına ekleme yapabilmek mümkün:

Bu özellikler:

$(“.s1″).html(” Yeni yazı. “);
//s1 classına ait tüm nesnelerin içeriklerini “Yeni yazı.” yapar.

$(“.s1”).append(“Sonuna Ekle. “);
//s1 classına ait tüm nesnelerin sonuna ekler.

$(“.s1”).prepend(“Başına Ekle. “);
//s1 classına ait tüm nesnelerin başına ekler.

$(“.s1”).before(“Üst Satıra Ekle. “);
//s1 classına ait tüm nesnelerin üst satırına ekler.

$(“.s1”).after(“Alt Satıra Ekle. “);
//s1 classına ait tüm nesnelerin alt satırına ekler.


<html>
<head>

<script src="http://code.jquery.com/jquery-latest.js"></script>

<script>

$(document).ready(function () {

$("#menu").mouseover(function () {
$("#menu").html("İçerik Değişti. Şimdi Üzerime Bolca Tıkla..");
});

$("#menu").click(function () {
$("#menu").after("Ekledin.");
});

});

</script>

</head>

<body>
<div id="menu" class="s1">Üzerine gel</div>
</body>

</html>