Bir web projesinde bir pop-up penceresine ihtiyaç duydum, birazda görsel olmasını istedim. Ajax yada jQuery ile neler yapabilirim diye araştırıyordum ki. Messi adında bir jQuery eklenti buldum. Gerçekten kullanımı ve özellikleri güzel.
Öncelikle sizlere resmi web sitesinin adresini vereceğim buradan eklentinin versiyon takibini de yapabilirsiniz. Ayrıca yukarıda söylemeyi de unuttum tamamen ücretsiz. 🙂 http://marcosesperon.es/apps/messi/ bu adrese girdiğinizde zaten hem işinize yarayan hemde kullanışlı örneklerle karşılaşacaksınız. Sitenin hemen ortasında yer alan “Check in GitHub” yazısının yanındaki linke tıkladığınızda eklentiyi indirebileceğiniz web sitesi karşınıza gelecek.
Eklentiyi indirdiğinizi düşünelim. Yine yukarıdaki sitede yer alan ve sayfanın aşağılarında görebileceğiniz “Setup” başlığı altındaki adımları uygulayarak eklentiyi projeye dahil ettiğinizi düşünelim. Bu kodu yada başka bir jQuery kodunu code behind tarafından nasıl çağıracağımızı görelim. Ben basit bir mesaj çıkaran uygulama yapmak istedim. İşte C# tarafı kodları;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text;
protected void Page_Load(object sender, EventArgs e)
{
popUpMessage("Hata oluştu !!!", "error");
popUpMessage("Başarılı olundu !!!", "success");
popUpMessage("İşlemleriniz devam ediyor !!!", "info");
}
private void popUpMessage(string Messega, string stat)
{
ScriptManager requestSM = ScriptManager.GetCurrent(this);
StringBuilder sb = new StringBuilder();
sb.AppendLine("$(document).ready(function () {");
if(stat=="error")
sb.AppendLine("new Messi('" + Messega + "', {title: 'Hata', titleClass: 'error', buttons: [{id: 0, label: 'Kapat', val: 'X'}]});");
else if(stat=="success")
sb.AppendLine("new Messi('" + Messega + "', {title: 'Başarılı', titleClass: 'success', buttons: [{id: 0, label: 'Kapat', val: 'X'}], callback: function(val) { $(location).attr('href','http://www.bahadirmeric.com','target','_parent'); }});");
else if(stat=="info")
sb.AppendLine("new Messi('" + Messega + "', {title: 'Bilgi', titleClass: 'info', buttons: [{id: 0, label: 'Kapat', val: 'X'}], callback: function(val) { $(location).attr('href','http://www.bahadirmeric.com','target','_parent'); }});");
sb.AppendLine(" });");
if (requestSM != null && requestSM.IsInAsyncPostBack)
{
ScriptManager.RegisterClientScriptBlock(this, typeof(Page), Guid.NewGuid().ToString(), Convert.ToString(sb), true);
}
else
{
ClientScript.RegisterClientScriptBlock(typeof(Page), Guid.NewGuid().ToString(), Convert.ToString(sb), true);
}
}