Posts Tagged ‘ASP.NET’

h1

Mengatasi “Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack” di ASP.NET

17 Februari 2011

Hal yang menggangu saya adalah kenapa beberapa kali muncul pesan kesalahan “Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack” ketika melakukan debug dengan menggunakan VS 2008.

Hal ini pada umumnya terjadi pada block try-catch dimana di dalam nya terdapat perintah Response.Redirect, Server.Transfer dan Response.End. Setelah mencari dari internet, berikut adalah pemecahan masalah yang saya dapat dari sini

Intinya karena perintah Response.End akan membuat baris setelahnya tidak di ekseskusi dan berganti ke event Application_EndRequest di application’s event pipeline. (Detail dari event ini saya masih belum paham).

Read the rest of this entry ?

Iklan
h1

Ajax “Instan” di ASP.NET bagai pedang bermata dua

31 Oktober 2009

Para developer  ASP.NET yang ingin mencoba mengurangi Postback seluruh halaman ASPX nya dapat menggunakan teknologi “AJAX” instan yang dikemas oleh Microsoft dalam ASP.NET AJAX server-side controls. Control yang digunakan adalah ScriptManager, UpdatePanel, dan  UpdateProgress yang dapat menambahkan perilaku render asinkron khas AJAX ke dalam ASP.NET tanpa menuliskan baris perintah javascript apapun! Sangat menarik khususnya bagi developer yang tidak mau berpusing ria dengan javascript, obyek XmlHttpRequest, Callback dan bergulat dengan proses dibaliknya.

asp-net-ajax

asp-net-ajax

Read the rest of this entry ?

h1

Disable Tombol Enter dalam TextBox untuk mencegah Postback di ASP.Net

28 Juli 2009

Secara default ketika tombol Enter di tekan dalam Control TextBox, maka halaman di ASP.NET akan mengalami PostBack. Hal ini tentu saja tidak diinginkan ketika developer ingin menghandle event Postback pada button Submit di form registrasi misalnya.

Ada beberapa cara yang penulis dapatkan dari sumber di Internet :

  1. Meletakkan baris control di Textbox pada halaman HTML
  2. TextBox ID="TextBox1" runat="server"
    onkeydown = "return (event.keyCode!=13);" >
    TextBoxt
    

    Dengan cara ini Visual Studio akan memberikan warning berupa garis bergelombang berwarna hijau. Namun demikian dapat diabaikan, Pesan tersebut muncul karena Visual Studio mencari event server side dan onkeydown tidak ada dalam daftar event. Read the rest of this entry ?

h1

Teknik pengiriman nilai antar page di ASP.NET (Part 3 -terakhir-)

14 Juli 2009

HTMLInputHidden

Ada cara lain untuk menyimpan nilai ketika sebuah halaman mengalami Postback. Yaitu dengan menggunakan HTML-standard hidden. Field hidden tidak akan ditampilkan pada halaman. Namun demikian Anda dapat menyimpan nilai ke dalam variabel hidden ini. Data yang disimpan akan tersimpan dalaman halaman aplikasi web Anda. Ketika sebuah halaman dikirimkan ke server, isi dari sebuah variabel hidden akan dikirimkan dalam HTTPForm collection. Sebagai catatan Anda harus menambahkan properti runat=”server” pada control HTMLInputHidden yang dibuat.

Berikut contoh penggunaannya :

if (Page.IsPostBack)
{
Label1.Text="Hidden Value: "+ Hidden1.Value;
}

Tambahkan baris berikut ini pada event Click dari control Button

Hidden1.Value=TextBox1.Text;

Isi textbox dengan suatu nilai, kemudian eksekusi dengan menekan control Button. Nilai dari TextBox1 akan disimpan dalam Hidden1. Saat halaman di load ulang nilai dari Hidden1 akan di tampilkan ke Label1. Yang menarik adalah ketika Anda menekan Button tanpa mengisi nilai dari TextBox, Label1 hanya akan menampilkan text “Hidden Value” tanpa ada tambahan text lain. Hal ini dikarenakan nilai dari TextBox1 selalu disimpan ke dalam variabel hidden. Berbeda ketika halaman di load untuk pertama kali, Page.IsPostBack akan mengembalikan false. Tentu saja text “Hidden Value” tidak akan ditampilkan.

Apabila Anda menggunakan variabel hidden, Anda harus men-submit halaman ke server dengan menggunakan method HTTP POST. Variabel hidden lebih ditujukan untuk menyimpan nilai – nilai dalam sebuah halaman ketika mengalamai postback.


QueryString

Mengirimkan nilai dengan menggunakan QueryString merupakan cara classic. Ketika Anda melihat URL dengan tanda tanya(?), ampersands (&)  dan beberapa nilai yang ditulis dibelakang nama page. Anda mengenal teknik ini sebagai teknik Get. Read the rest of this entry ?

h1

Teknik pengiriman nilai antar page di ASP.NET (Part 2)

10 Juli 2009

CONTEXT

Teknik yang jarang diketahui dalam pengiriman data antar page adalah menggunakan obyek Context. Sebuah instance dari obyek context dihubungkan dengan tiap instance dari halaman. Perlu diingat sebuah halaman dari ASP.NET merupakan sebuah instance class atau parsial class. Karena setiap instance halaman pada umumnya hanya “numpang” sejenak diserver (ketika dieksekusi dan dirender), data yang ada di dalam context hanya bertahan sebentar.

Dengan cara ini sebenarnya penyimpanan menjadi lebih efesien karena data akan secara otomatis dihapus dari memori bersamaan dengan dihapusnya obyek halaman tadi. Walaupun demikian data akan tetap ada di memori apabila ditransfer ke halaman yang lain.

Berikut adalah contoh kode program dimana pengguna menyimpan data di Page1 dan kemudian mengirimkannya ke Page2. Setelah itu obyek context akan dihapus dari memori server.

‘VB.NET

Context.Items("UserName") = TextBox1.Text 'Page1
Server.Transfer("Page2.aspx") 'Page1
Dim s As String = Context.Items("UserName").ToString 'Page2

//C#

Context.Items["UserName"] = TextBox1.Text; //Page1
Server.Transfer("Page2.aspx"); //Page1
string s = Context.Items["UserName"].ToString(); //Page2

Perlu diingat penggunaan obyek context harus menggunakan Server.Transfer. Context tidak dapat bekerja dengan Response.Redirect karena dengan Response.Redirect akan terjadi pengembalian obyek ke client, yang tentu saja akan menhapus instance dari context –ingat bahwa obyek context hanya “hidup” dalam memori server-. Berikut beberapa perbedaan antara Response.Redirect dengan Server.Transfer.

Read the rest of this entry ?

h1

Teknik pengiriman nilai antar page di ASP.NET

9 Juli 2009

Ketika penulis mulai bergelut dengan dunia web application – dimana penulis jarang menyentuhnya sejak kuliah dulu, tapi belakangan sangat menyenanginya – ada permasalahan yang sering penulis hadapi ketika mengirimkan nilai antar page di ASP.NET.

Penulis menemui beberapa cara untuk melakukan hal ini di ASP.NET. Artikel asli adalah ditulis oleh Steve C. Orr. Dengan judul “Data Passing Round-Up Compare Techniques for Passing Data between Web Pages: Which Are Best Under Diverse Circumstances?”

Disini penulis mencoba menuliskan dengan bahasa penulis dan pengalaman yang penulis alami.

Application State

HttpApplicationState adalah obyek classic ASP yang menyimpan nilai global atau obyek.

Sebagai contoh apabila Anda sering menggunakan obyek DataSet yang menyimpan data global, Anda dapat memilih menyimpannya dalam Application State. Penggunaannya sangat mudah, hanya dengan menuliskan baris perintah berikut :

C#

DataSet Source = (DataSet)(Application["MyDataSet"]);

VB.NET

Dim ds As DataSet = CType(Application("MyDataSet"), DataSet)

Cara mengambil nilainya pun mudah. Hal yang harus diperhatikan adalah Anda harus me-lock obyek Application sebelum menyimpan sebuah nilai dan me-unlock-nya setelah selesai. Hal ini memastikan tidak ada kejadian berupa thread yang mengupdate nilai dari Application State di saat yang sama. Hal ini juga digunakan untuk mencegah deadlocks.

‘VB.NET

Application.Lock()
Application("MyDataSet") = MyDataSet
Application.UnLock()

//C#

Application.Lock();
Application["MyDataSet"] = MyDataSet;
Application.UnLock();

Modifikasi obyek yang tersimpan dalam Application State tidak dapat secara otomatis dilakukan ke dalam Application State. Atau dengan kata lain saat Anda baru dapat memodifikasi DataSet setelah mengambil nilainya dari Application State, kemudian Anda harus menyimpannya kembali ke Application State.
Sebagai catatan penting, obyek Application State memiliki lingkup hanya untuk sebuah Web Application. Dengan kata lain, apabila Anda memiliki dua buah website ASP.NET di server, website kedua tidak dapat membaca nilai obyek Application State dari website pertama.
Cara ini jarang digunakan karena masalah manajemen memori yang belum dilakukan dengan baik. Disisi lain tidak diperlukan penyimpanan data secara global kecuali untuk string koneksi database, yang notabene dapat disimpan dalam registry, database itu sendiri ataupun menggunakan web.config.

Read the rest of this entry ?

h1

“Bug RegisterClientScriptBlock” di ASP.NET

7 Juli 2009

Beberapa menit setelah menulis tentang register tag javascript ke ASP.NET penulis menemukan artikel menarik mengenai penggunaan salah satu parameter di method RegisterClientScriptBlock. Intinya adalah jangan menggunakan this.GetType() tapi gunakan typeof (Class_name).

Berikut cuplikan artikelnya :

Read the rest of this entry ?