“Oluşan Hatayı Mail İle Kendinize Gönderin”
Çalışan ASP .NET uygulamanızda hata oluştuğu zaman bu hatadan anında haberdar olmak için aşağıdaki kod parçası işinizi görecektir. Bu kodu Global.asax dosyasında Application_Error event’ına yazmalısınız.
protected void Application_Error(Object sender, EventArgs e)
{
Exception ex = Server.GetLastError().GetBaseException();
string err = "Hata Oluştu !"
+ System.Environment.NewLine
+ "Hata: " + Request.Url.ToString()
+ System.Environment.NewLine
+ "Hata Mesajı: " + ex.Message.ToString()
+ System.Environment.NewLine
+ "Stack Trace: " + ex.StackTrace.ToString();
// Server.ClearError();
System.Web.Mail.MailMessage mm = new System.Web.Mail.MailMessage();
mm.To = "mgedik@verivizyon.com";
mm.From = " mgedik@verivizyon.com ";
mm.Subject = "Sistemde Hata !";
mm.Body = err;
try
{
System.Web.Mail.SmtpMail.SmtpServer = "mail.verivizyon.com";
System.Web.Mail.SmtpMail.Send(mm);
}
catch
{
}
}
“TextBox’a Girilen Değerin Rakam Olduğunu Garantileyin”
Bir TextBox nesneniz var ve siz bu alana sadece rakam girilebilmesini istiyorsunuz. O zaman aşağıdaki vbscipt kodu işinize çok yarayacaktır.
[script language="vbscript"]
function ParseInt(StringM)
dim Reg, MatchInt, IntMatch, ParsedString
Set Reg = CreateObject("VBScript.RegExp")
Reg.Global = True
Reg.IgnoreCase = True
Reg.Multiline = True
Reg.Pattern = "\d"
set MatchInt = Reg.Execute(StringM)
for each IntMatch in MatchInt
ParsedString = ParsedString & IntMatch.value
next
ParseInt = ParsedString
end function
‘Bu fonksiyonu şu şekilde çağırabiliriz.
‘(tbSayi nesnesinin “onkeyup” event’ında Validate()’i çağırmalısınız.)
function Validate()
Form1.tbSayi.value = ParseInt(Form1.tbSayi.value)
end function
[/script]
“Komut Satırı Uygulamalarını Gizlice Çalıştırarak Çıktısını Ekrana Yazdırın”
Komut satırı uygulamalarını gizli bir şekilde çalıştırarak, çıktısını web tarayıcısında göstermek gibi bir ihtiyacınız doğarsa ASP .NET size bu konuda da yardımcı oluyor. Belki çıktıyı web tarayıcıda göstermek çok işe yaramayabilir ama bunu bir string değişkenine atayıp, üzerinde biraz çalışarak işinize yarayabilecek verilere erişebilirsiniz.
public string ExecuteApp(string cmd)
{
string result = "";
string output = "";
string errors = "";
// çıktı ve hata mesajları için tempfilecollection oluşturuluyor
System.CodeDom.Compiler.TempFileCollection tf = new System.CodeDom.Compiler.TempFileCollection();
// komut çalıştırılıyor
System.CodeDom.Compiler.Executor.ExecWaitWithCapture(cmd, tf, ref output, ref errors);
// komutun çalışması sonucu dönen içerik okunuyor
System.IO.StreamReader sr = System.IO.File.OpenText(output);
result = sr.ReadToEnd();
sr.Close();
// geçici dosyalar siliniyor
System.IO.File.Delete(output);
System.IO.File.Delete(errors);
return result;
}
Bu metodu şu şekilde çağırabilirsiniz:
Response.Write(ExecuteApp("netstat -a -n"));
Response.Write(ExecuteApp("ipconfig"));
“Sunucu Taraflı Kodunuzda Nesnelerinize Focus’lanın”
Bildiğiniz gibi ASP .NET Code Behind’da istemci taraflı script kodlarımızı çalıştırabilmemize imkan sağlıyor. Bundan faydalanarak yazabileceğimiz basit bir metot ile sunucu taraflı kodumuzda nesnelerimize kolaylıkla konumlanabiliriz.
private void Page_Load(object sender, System.EventArgs e)
{
if(! IsPostBack) this.SetFocus(TextBox1);
}
private void SetFocus(System.Web.UI.Control ctrl)
{
string s = "[script language = Javascript]";
s += "document.getElementById('" + ctrl.ID + "').focus();";
s += "[/script]";
Page.RegisterStartupScript("Focus", s);
}
private void Button1_Click(object sender, System.EventArgs e)
{
SetFocus(TextBox2);
}
Çalışan ASP .NET uygulamanızda hata oluştuğu zaman bu hatadan anında haberdar olmak için aşağıdaki kod parçası işinizi görecektir. Bu kodu Global.asax dosyasında Application_Error event’ına yazmalısınız.
protected void Application_Error(Object sender, EventArgs e)
{
Exception ex = Server.GetLastError().GetBaseException();
string err = "Hata Oluştu !"
+ System.Environment.NewLine
+ "Hata: " + Request.Url.ToString()
+ System.Environment.NewLine
+ "Hata Mesajı: " + ex.Message.ToString()
+ System.Environment.NewLine
+ "Stack Trace: " + ex.StackTrace.ToString();
// Server.ClearError();
System.Web.Mail.MailMessage mm = new System.Web.Mail.MailMessage();
mm.To = "mgedik@verivizyon.com";
mm.From = " mgedik@verivizyon.com ";
mm.Subject = "Sistemde Hata !";
mm.Body = err;
try
{
System.Web.Mail.SmtpMail.SmtpServer = "mail.verivizyon.com";
System.Web.Mail.SmtpMail.Send(mm);
}
catch
{
}
}
“TextBox’a Girilen Değerin Rakam Olduğunu Garantileyin”
Bir TextBox nesneniz var ve siz bu alana sadece rakam girilebilmesini istiyorsunuz. O zaman aşağıdaki vbscipt kodu işinize çok yarayacaktır.
[script language="vbscript"]
function ParseInt(StringM)
dim Reg, MatchInt, IntMatch, ParsedString
Set Reg = CreateObject("VBScript.RegExp")
Reg.Global = True
Reg.IgnoreCase = True
Reg.Multiline = True
Reg.Pattern = "\d"
set MatchInt = Reg.Execute(StringM)
for each IntMatch in MatchInt
ParsedString = ParsedString & IntMatch.value
next
ParseInt = ParsedString
end function
‘Bu fonksiyonu şu şekilde çağırabiliriz.
‘(tbSayi nesnesinin “onkeyup” event’ında Validate()’i çağırmalısınız.)
function Validate()
Form1.tbSayi.value = ParseInt(Form1.tbSayi.value)
end function
[/script]
“Komut Satırı Uygulamalarını Gizlice Çalıştırarak Çıktısını Ekrana Yazdırın”
Komut satırı uygulamalarını gizli bir şekilde çalıştırarak, çıktısını web tarayıcısında göstermek gibi bir ihtiyacınız doğarsa ASP .NET size bu konuda da yardımcı oluyor. Belki çıktıyı web tarayıcıda göstermek çok işe yaramayabilir ama bunu bir string değişkenine atayıp, üzerinde biraz çalışarak işinize yarayabilecek verilere erişebilirsiniz.
public string ExecuteApp(string cmd)
{
string result = "";
string output = "";
string errors = "";
// çıktı ve hata mesajları için tempfilecollection oluşturuluyor
System.CodeDom.Compiler.TempFileCollection tf = new System.CodeDom.Compiler.TempFileCollection();
// komut çalıştırılıyor
System.CodeDom.Compiler.Executor.ExecWaitWithCapture(cmd, tf, ref output, ref errors);
// komutun çalışması sonucu dönen içerik okunuyor
System.IO.StreamReader sr = System.IO.File.OpenText(output);
result = sr.ReadToEnd();
sr.Close();
// geçici dosyalar siliniyor
System.IO.File.Delete(output);
System.IO.File.Delete(errors);
return result;
}
Bu metodu şu şekilde çağırabilirsiniz:
Response.Write(ExecuteApp("netstat -a -n"));
Response.Write(ExecuteApp("ipconfig"));
“Sunucu Taraflı Kodunuzda Nesnelerinize Focus’lanın”
Bildiğiniz gibi ASP .NET Code Behind’da istemci taraflı script kodlarımızı çalıştırabilmemize imkan sağlıyor. Bundan faydalanarak yazabileceğimiz basit bir metot ile sunucu taraflı kodumuzda nesnelerimize kolaylıkla konumlanabiliriz.
private void Page_Load(object sender, System.EventArgs e)
{
if(! IsPostBack) this.SetFocus(TextBox1);
}
private void SetFocus(System.Web.UI.Control ctrl)
{
string s = "[script language = Javascript]";
s += "document.getElementById('" + ctrl.ID + "').focus();";
s += "[/script]";
Page.RegisterStartupScript("Focus", s);
}
private void Button1_Click(object sender, System.EventArgs e)
{
SetFocus(TextBox2);
}
Comments