<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-10824654</id><updated>2011-07-28T11:00:53.744-07:00</updated><title type='text'>Kuliah Online</title><subtitle type='html'>Framework Pengembangan Aplikasi Internet</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default?start-index=101&amp;max-results=100'/><author><name>admin</name><uri>http://www.blogger.com/profile/12528571096161588077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>286</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10824654.post-111847952328956995</id><published>2005-06-11T01:43:00.000-07:00</published><updated>2005-06-11T01:45:23.290-07:00</updated><title type='text'>memassingkan paramater dari stored procedure</title><content type='html'>Dibawah ini adalah codenya menggunakan contoh sebuah button ketika diklik maka akan memasingkan paramater :&lt;br /&gt;&lt;br /&gt;Protected Sub Btn1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Btn1.Click&lt;br /&gt;  Dim sConnStr As String = {MyConnectionString}&lt;br /&gt;  Dim cnBKTest As New SqlConnection(sConnStr)&lt;br /&gt;  Dim cmdTest As New SqlCommand("Insert_Test", cnBKTest)&lt;br /&gt;  cmdTest.CommandType = Data.CommandType.StoredProcedure&lt;br /&gt;  cmdTest.Parameters.Add(New SqlParameter("@TestParam", Data.SqlDbType.VarChar, 10))&lt;br /&gt;  cmdTest.Parameters("@TestParam").Value = "Testing"&lt;br /&gt;  cnBKTest.Open()  cmdTest.ExecuteNonQuery()  cnBKTest.Close()&lt;br /&gt;End Sub&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111847952328956995?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111847952328956995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111847952328956995' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847952328956995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847952328956995'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/memassingkan-paramater-dari-stored.html' title='memassingkan paramater dari stored procedure'/><author><name>Great Tjeng - 201114335</name><uri>http://www.blogger.com/profile/07891899075237713060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111847953567118135</id><published>2005-06-10T23:43:00.000-07:00</published><updated>2005-06-11T01:45:35.673-07:00</updated><title type='text'>memassingkan paramater dari stored procedure</title><content type='html'>Dibawah ini adalah codenya menggunakan contoh sebuah button ketika diklik maka akan memasingkan paramater :&lt;br /&gt;&lt;br /&gt;Protected Sub Btn1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Btn1.Click&lt;br /&gt;  Dim sConnStr As String = {MyConnectionString}&lt;br /&gt;  Dim cnBKTest As New SqlConnection(sConnStr)&lt;br /&gt;  Dim cmdTest As New SqlCommand("Insert_Test", cnBKTest)&lt;br /&gt;  cmdTest.CommandType = Data.CommandType.StoredProcedure&lt;br /&gt;  cmdTest.Parameters.Add(New SqlParameter("@TestParam", Data.SqlDbType.VarChar, 10))&lt;br /&gt;  cmdTest.Parameters("@TestParam").Value = "Testing"&lt;br /&gt;  cnBKTest.Open()  cmdTest.ExecuteNonQuery()  cnBKTest.Close()&lt;br /&gt;End Sub&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111847953567118135?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111847953567118135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111847953567118135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847953567118135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847953567118135'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/memassingkan-paramater-dari-stored_10.html' title='memassingkan paramater dari stored procedure'/><author><name>Great Tjeng - 201114335</name><uri>http://www.blogger.com/profile/07891899075237713060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111847920255011975</id><published>2005-06-10T23:37:00.000-07:00</published><updated>2005-06-11T01:40:02.556-07:00</updated><title type='text'>Pengetahuan SQL !!!</title><content type='html'>&lt;p&gt;&lt;span style="font-family:verdana;"&gt;SQL Dibagi menjadi 8 subsets:&lt;br /&gt;&lt;br /&gt;1. DML – Data Manipulation Language dimana untuk insert, delete and update (table items).&lt;br /&gt;2. DDL – Data definition language dimana untuk mencari create, delete and update statements untuk tabel dan views.&lt;br /&gt;3. Triggers dan Advanced Integrity Constraints untuk memebuat actions yang akan ditrigger ketika&lt;br /&gt;database berubah.&lt;br /&gt;4. Embedded dan Dynamic SQL mengijinkan kita untuk memanggil SQL code dari host language seperti C and COBOL.&lt;br /&gt;5. Client-Server Execution dan Remote Database Access untuk dapat menggunakan commands yang mengontrol bagaimana sebuah client application program dapat connect ke SQL Server.&lt;br /&gt;6. Transaction Management.&lt;br /&gt;7. Keamanan untuk mengkontrol akses user ke data objects saeperti tables and views.&lt;br /&gt;8. Advanced features seperti data mining&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL Statement untuk membuat Products table:&lt;br /&gt;&lt;br /&gt;CREATE TABLE quality ( quality_name CHAR(10) PRIMARY KEY (quality_name)&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;CREATE TABLE products ( prod_id INTEGER,&lt;br /&gt;Prod_name CHAR(10), prod_quality CHAR(10) PRIMARY KEY (prod_id),&lt;br /&gt;FOREIGN KEY (prod_quality) REFERENCES quantity&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;Kita telah punya tabel product lalu kita dapat insert records menggunakan statements dibawah ini:&lt;br /&gt;&lt;br /&gt;SQL insert Statement:&lt;br /&gt;&lt;br /&gt;INSERT INTO quality (quality_name) values (‘excellent’)&lt;br /&gt;INSERT INTO quality (quality_name) values (‘good’)&lt;br /&gt;INSERT INTO quality (quality_name) values (‘normal’)&lt;br /&gt;INSERT INTO quality (quality_name) values (‘bad’)&lt;br /&gt;INSERT INTO products (prod_id,prod_name,prod_quality) values (1,‘product A’,‘bad’)&lt;br /&gt;&lt;br /&gt;Dalam kasus ini penginsertan data berhasil karena prod_quality value yang kita inginkan untuk di masukkan ada ditabel quality, tapi jika kita mencoba untuk memasukkan sebuah value yang tidak ada didalam tabel maka pesan eror akan mengembalikan nilai :&lt;br /&gt;&lt;br /&gt;Violation of PRIMARY KEY constraint 'PK_products'. Cannot insert duplicate key in object 'products'.&lt;br /&gt;&lt;br /&gt;Untuk menampilkan records yang telah kita masukkan kita butuh menggunakan select statement:&lt;br /&gt;&lt;br /&gt;SELECT * FROM PRODUCTS&lt;br /&gt;&lt;br /&gt;Atau&lt;br /&gt;&lt;br /&gt;SELECT prod_id,prod_name,prod_quality FROM PRODUCTS&lt;br /&gt;&lt;br /&gt;Jika ingin menampilkan sepesifik record :&lt;br /&gt;&lt;br /&gt;SELECT * FROM PRODUCTS WHERE prod_quality=’bad’&lt;br /&gt;&lt;br /&gt;Jika ingin mengupdate record :&lt;br /&gt;&lt;br /&gt;UPDATE products SET prod_name=’Product B’ WHERE prod_id=1&lt;br /&gt;&lt;br /&gt;Jika ingin mendelete record :&lt;br /&gt;&lt;br /&gt;DELETE products&lt;br /&gt;&lt;br /&gt;atau&lt;br /&gt;&lt;br /&gt;DELETE products WHERE prod_id=1&lt;br /&gt;&lt;br /&gt;The inner join statement digunakan untuk multiple query yang mempunyai hubungan record-record, ini satu contoh :&lt;br /&gt;&lt;br /&gt;SELECT * FROM products INNER JOIN quality ON products.prod_quality=quality._quality_name&lt;br /&gt;&lt;br /&gt;The nested statement is a statement that as another statement embedded within it, the embedded query is also called as subquery.&lt;br /&gt;&lt;br /&gt;SELECT prod_id,prod_name, (SELECT quality_name WHERE quality_name=products.prod_quality) AS prodquality FROM products&lt;br /&gt;&lt;br /&gt;Kesimpulan :&lt;br /&gt;&lt;br /&gt;SQL adalah bahasa yang sederhana yang mengijinkan kamu untuk operasi dengan tables, records dan database objects.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111847920255011975?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111847920255011975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111847920255011975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847920255011975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847920255011975'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/pengetahuan-sql.html' title='Pengetahuan SQL !!!'/><author><name>Great Tjeng - 201114335</name><uri>http://www.blogger.com/profile/07891899075237713060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111843402708187717</id><published>2005-06-10T13:07:00.000-07:00</published><updated>2005-06-10T13:07:07.083-07:00</updated><title type='text'>Kuliah Online</title><content type='html'>Menampilkan record secara ascending atau descending dapat dilakukan oleh user dengan cara:&lt;br /&gt;&lt;br /&gt;&lt;!--#INCLUDE VIRTUAL="/includes/connection.asp" --&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;First Name &lt;a href="usersort.asp?OB=f_a"&gt;ASC&lt;/a&gt; sort &lt;a href="usersort.asp?OB=f_d"&gt;DESC&lt;/a&gt;&lt;br&gt;&lt;br /&gt;Last Name &lt;a href="usersort.asp?OBt=l_a"&gt;ASC&lt;/a&gt; sort &lt;a href="usersort.asp?OB=l_d"&gt;DESC&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;DIM strOrderBy, tmpOrderBy&lt;br /&gt;strOrderBy = Request.QueryString("OB")&lt;br /&gt;Select Case strOrderBy&lt;br /&gt;Case "f_a"&lt;br /&gt;tmpOrderBy = "ORDER BY FirstName ASC"&lt;br /&gt;Case "fn_d"&lt;br /&gt;tmpOrderBy = "ORDER BY FirstName DESC"&lt;br /&gt;Case "l_a"&lt;br /&gt;tmpOrderBy = "ORDER BY LastName ASC"&lt;br /&gt;Case "l_d"&lt;br /&gt;tmpOrderBy = "ORDER BY LastName DESC"&lt;br /&gt;Case Else&lt;br /&gt;tmpOrderBy = "ORDER BY FirstName DESC"&lt;br /&gt;End Select&lt;br /&gt;&lt;br /&gt;DIM mySQL, objRS&lt;br /&gt;mySQL = "Select FirstName, LastName FROM tblUsers " &amp; tmpOrderBy&lt;br /&gt;Set objRS = Server.CreateObject("ADODB.Recordset")&lt;br /&gt;objRS.Open mySQL, objConn&lt;br /&gt;&lt;br /&gt;DO WHILE NOT objRS.EOF&lt;br /&gt;%&gt;&lt;br /&gt;&lt;br /&gt;&lt;%=objRS("FirstName")%&gt; &lt;%=objRS("LastName")%&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;objRS.MoveNext&lt;br /&gt;Loop&lt;br /&gt;&lt;br /&gt;objRS.Close&lt;br /&gt;Set objRS = Nothing&lt;br /&gt;objConn.Close&lt;br /&gt;Set objConn = Nothing&lt;br /&gt;%&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111843402708187717?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111843402708187717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111843402708187717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843402708187717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843402708187717'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/kuliah-online_111843402708187717.html' title='Kuliah Online'/><author><name>robby_willman(201114132)</name><uri>http://www.blogger.com/profile/09474781053814304766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111843389822120225</id><published>2005-06-10T13:04:00.000-07:00</published><updated>2005-06-10T13:04:58.223-07:00</updated><title type='text'>Kuliah Online</title><content type='html'>cara menampilkan 10 record terbaru adalah dengan :&lt;br /&gt;&lt;br /&gt;&lt;!--#INCLUDE VIRTUAL="/includes/connection.asp" --&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;DIM mySQL, objRS&lt;br /&gt;mySQL = "SELECT TOP 10 * FROM tblScripts ORDER BY DateEntered DESC" &lt;br /&gt;Set objRS = Server.CreateObject("ADODB.Recordset")&lt;br /&gt;objRS.Open mySQL, objConn&lt;br /&gt;%&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" width="100%"&gt;&lt;tr&gt;&lt;td align = "center"&gt;&lt;br /&gt;Our Latest Scripts&lt;br /&gt;&lt;/tr&gt;&lt;/td&gt; &lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;DIM iRecordCount&lt;br /&gt;iRecordCount = 0&lt;br /&gt;DO WHILE NOT objRS.EOFand iRecordCount &lt;&gt; 10&lt;br /&gt;%&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;%=objRS("Script")%&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;iRecordCount = iRecordCount + 1&lt;br /&gt;objRS.MoveNext&lt;br /&gt;Loop&lt;br /&gt;&lt;br /&gt;objRS.Close&lt;br /&gt;Set objRS = Nothing&lt;br /&gt;objConn.Close&lt;br /&gt;Set objConn = Nothing&lt;br /&gt;%&gt;&lt;br /&gt;&lt;/table&gt; &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111843389822120225?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111843389822120225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111843389822120225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843389822120225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843389822120225'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/kuliah-online_111843389822120225.html' title='Kuliah Online'/><author><name>robby_willman(201114132)</name><uri>http://www.blogger.com/profile/09474781053814304766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111843382682735696</id><published>2005-06-10T13:03:00.000-07:00</published><updated>2005-06-10T13:03:46.826-07:00</updated><title type='text'>Kuliah Online</title><content type='html'>menghitung jumlahdari record dengan do.. loop&lt;br /&gt;&lt;br /&gt;&lt;!--#INCLUDE VIRTUAL="/includes/connection.asp" --&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;DIM mySQL, objRS&lt;br /&gt;mySQL = "SELECT * FROM myTable" &lt;br /&gt;Set objRS = Server.CreateObject("ADODB.Recordset")&lt;br /&gt;objRS.Open mySQL, objConn&lt;br /&gt;&lt;br /&gt;' Count how many records exist&lt;br /&gt;DIM iRecordCount&lt;br /&gt;iRecordCount = 0&lt;br /&gt;DO WHILE NOT objRS.EOF&lt;br /&gt;iRecordCount = iRecordCount + 1&lt;br /&gt;objRS.MoveNext&lt;br /&gt;Loop&lt;br /&gt;&lt;br /&gt;' Display result&lt;br /&gt;Response.Write "(" &amp; iRecordCount &amp; ")"&lt;br /&gt;&lt;br /&gt;objRS.Close&lt;br /&gt;Set objRS = Nothing &lt;br /&gt;objConn.Close&lt;br /&gt;Set objConn = Nothing&lt;br /&gt;%&gt; &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Dengan menggunakan SQL COUNT method: &lt;br /&gt;&lt;br /&gt;&lt;!--#INCLUDE VIRTUAL="/includes/connection.asp" --&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;DIM mySQL, objRS&lt;br /&gt;mySQL = "SELECT Count(*) AS intTotal FROM myTable" &lt;br /&gt;Set objRS = Server.CreateObject("ADODB.Recordset")&lt;br /&gt;objRS.Open recSQL, objConn&lt;br /&gt;&lt;br /&gt;' Display result&lt;br /&gt;Response.Write objRS("intTotal")&lt;br /&gt;&lt;br /&gt;objRS.Close&lt;br /&gt;Set objRS = Nothing &lt;br /&gt;objConn.Close&lt;br /&gt;Set objConn = Nothing&lt;br /&gt;%&gt; &lt;br /&gt; &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111843382682735696?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111843382682735696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111843382682735696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843382682735696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843382682735696'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/kuliah-online_111843382682735696.html' title='Kuliah Online'/><author><name>robby_willman(201114132)</name><uri>http://www.blogger.com/profile/09474781053814304766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111843373050413735</id><published>2005-06-10T13:02:00.000-07:00</published><updated>2005-06-10T13:02:10.503-07:00</updated><title type='text'>Kuliah Online</title><content type='html'>Memberi warna pada row yang ditampilkan&lt;br /&gt;&lt;br /&gt;&lt;!--#INCLUDE VIRTUAL="/includes/connection.asp" --&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;DIM mySQL, objRS&lt;br /&gt;mySQL = "SELECT * FROM tblData" &lt;br /&gt;Set objRS = Server.CreateObject("ADODB.Recordset")&lt;br /&gt;objRS.Open mySQL, objConn, adOpenKeySet&lt;br /&gt;&lt;br /&gt;&lt;TABLE&gt;&lt;br /&gt;&lt;TR&gt;&lt;TD&gt;These are my database records.&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;&lt;%&lt;br /&gt;DIM iRecordCount&lt;br /&gt;iRecordCount = 0&lt;br /&gt;DO WHILE NOT objRS.EOF&lt;br /&gt;IF iRecordCount Mod 2 = 0 THEN&lt;br /&gt;%&gt;&lt;br /&gt;&lt;TR bgcolor="#CCCCCC"&gt;&lt;br /&gt;&lt;TD&gt; &lt;% objRS("Item") %&gt; &lt;/TD&gt; &lt;/TR&gt;&lt;br /&gt;&lt;% ELSE %&gt;&lt;br /&gt;&lt;TR bgcolor="white"&gt;&lt;br /&gt;&lt;TD&gt; &lt;% objRS("Item") %&gt; &lt;/TD&gt; &lt;/TR&gt;&lt;br /&gt;&lt;/TABLE&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;END IF&lt;br /&gt;iRecordCount = iRecordCount + 1&lt;br /&gt;objRS.MoveNext&lt;br /&gt;Loop&lt;br /&gt;&lt;br /&gt;objRS.Close&lt;br /&gt;Set objRS = Nothing&lt;br /&gt;objConn.Close&lt;br /&gt;Set objConn = Nothing&lt;br /&gt;%&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111843373050413735?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111843373050413735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111843373050413735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843373050413735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843373050413735'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/kuliah-online_111843373050413735.html' title='Kuliah Online'/><author><name>robby_willman(201114132)</name><uri>http://www.blogger.com/profile/09474781053814304766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111843363931062741</id><published>2005-06-10T13:00:00.000-07:00</published><updated>2005-06-10T13:00:39.316-07:00</updated><title type='text'>Kuliah Online</title><content type='html'>Contoh dari penggunaan DSN connection:&lt;br /&gt;&lt;%&lt;br /&gt;DIM objConn&lt;br /&gt;Set objConn = Server.CreateObject("ADODB.Connection")&lt;br /&gt;objConn.ConnectionString = "DSN=myCONNECTION.dsn"&lt;br /&gt;objConn.Open&lt;br /&gt;%&gt;&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;kita perlu mengisntal DSN di servernya&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;contoh dari penggunaan DSN-less connection:&lt;br /&gt;&lt;%&lt;br /&gt;DIM objConn&lt;br /&gt;Set objConn = Server.CreateObject("ADODB.Connection")&lt;br /&gt;objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; _&lt;br /&gt;Server.MapPath ("/mydatabase.mdb") &amp; ";"&lt;br /&gt;objConn.Open&lt;br /&gt;%&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111843363931062741?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111843363931062741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111843363931062741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843363931062741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843363931062741'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/kuliah-online_111843363931062741.html' title='Kuliah Online'/><author><name>robby_willman(201114132)</name><uri>http://www.blogger.com/profile/09474781053814304766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111843345318466537</id><published>2005-06-10T12:57:00.000-07:00</published><updated>2005-06-10T12:57:33.186-07:00</updated><title type='text'>Kuliah Online</title><content type='html'>salah satu cara yang paling populer adalah mengirim data dengan CDONTS email component. kita akan menggunakan CDONTS email component untuk mnegirm data dari text box dan a textarea box.&lt;br /&gt;&lt;br /&gt;isi dari formpage.asp adalah&lt;br /&gt;&lt;form name="YourFormName" method="Post" action="confirmation.asp"&gt;&lt;br /&gt;"&lt;table&gt;"&lt;br /&gt;"&lt;tr&gt;&lt;td&gt;Email: &lt;/td&gt;&lt;br /&gt;'&lt;td&gt;&lt;input type="text" name="Email" size="50"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;'&lt;tr&gt;&lt;td&gt;First Name: &lt;/td&gt;"&lt;br /&gt;"&lt;td&gt;&lt;input type="text" name="FirstName" size="50"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;"&lt;tr&gt;&lt;td&gt;Last Name: &lt;/td&gt;&lt;br /&gt;"&lt;td&gt;&lt;input type="text" name="LastName" size="50"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;"&lt;tr&gt;&lt;td&gt;Subject: &lt;/td&gt;&lt;br /&gt;"&lt;td&gt;&lt;input type="text" name="Subject" size="50"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;"&lt;tr&gt;&lt;td&gt;Comments: &lt;/td&gt;&lt;br /&gt;"&lt;td&gt;&lt;textarea name="Comments"&gt;&lt;/textarea&gt;&lt;/td&gt; &lt;br /&gt;"&lt;/table&gt;&lt;br /&gt;"&lt;input type="submit" name="Submit" value="Submit Form"&gt; &lt;br /&gt;"&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;isi dari resultspage.asp adalah&lt;br /&gt;&lt;%&lt;br /&gt;DIM strEmail, strName, strComments, mail, reply, objMail&lt;br /&gt;strEmail = request.form("Email")&lt;br /&gt;strName = request.form("Name")&lt;br /&gt;strComments = request.form("Comments")&lt;br /&gt;&lt;br /&gt;mail = "YOUR EMAIL ADDRESS HERE"&lt;br /&gt;reply = request.form("Email")&lt;br /&gt;Set objMail = Server.CreateObject("CDONTS.NewMail")&lt;br /&gt;objMail.From = reply&lt;br /&gt;objMail.Subject = "YOUR SUBJECT MESSAGE HERE"&lt;br /&gt;objMail.To = mail&lt;br /&gt;objMail.Body = "Email: " &amp; strEmail &amp; vbCrLf &amp; _&lt;br /&gt;"Name: " &amp; strName &amp; vbCrLf &amp; _&lt;br /&gt;"Comments: " &amp; vbCrLf &amp; strComments&lt;br /&gt;&lt;br /&gt;objMail.Send&lt;br /&gt;Set objMail = nothing&lt;br /&gt;%&gt;&lt;br /&gt;&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;%&lt;br /&gt;strName = request.form("Name")&lt;br /&gt;Response.Write strName&lt;br /&gt;%&gt;,&lt;/P&gt;&lt;br /&gt;&lt;br /&gt;&lt;P&gt;Thank you for emailing me.&lt;/P&gt;&lt;br /&gt;&lt;br /&gt;isi dari body adalah&lt;br /&gt;objMail.BodyFormat=0&lt;br /&gt;objMail.MailFormat=0&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111843345318466537?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111843345318466537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111843345318466537' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843345318466537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843345318466537'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/kuliah-online_10.html' title='Kuliah Online'/><author><name>robby_willman(201114132)</name><uri>http://www.blogger.com/profile/09474781053814304766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111843326331984621</id><published>2005-06-10T12:54:00.000-07:00</published><updated>2005-06-10T12:54:23.323-07:00</updated><title type='text'>Kuliah Online</title><content type='html'>Salah satu cara dalam mengupload adalah dengan ASPUpload component&lt;br /&gt;employment.asp isisnya:&lt;br /&gt;"&lt;FORM method="Post" action="resultspage.asp" name="Recruiter"&gt;&lt;br /&gt;"&lt;TABLE width="100%" border="0"&gt;&lt;br /&gt;"&lt;TR&gt;&lt;TD width="30%"&gt;&lt;div align="right"&gt;Email:&lt;/div&gt;&lt;/TD&gt;&lt;br /&gt;"&lt;TD width="70%"&gt;&lt;INPUT TYPE="text" name="Email" size="50"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;"&lt;TR&gt;&lt;TD width="30%"&gt;&lt;div align="right"&gt;First Name:&lt;/div&gt;&lt;/TD&gt;&lt;br /&gt;"&lt;TD width="70%"&gt;&lt;INPUT TYPE="text" name="FirstName" size="50"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;"&lt;TR&gt;&lt;TD width="30%"&gt;&lt;div align="right"&gt;Last Name:&lt;/div&gt;&lt;/TD&gt;&lt;br /&gt;"&lt;TD width="70%"&gt;&lt;INPUT TYPE="text" name="LastName" size="50"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;"&lt;TR&gt;&lt;TD width="30%"&gt;&lt;div align="right"&gt;Position APPlying For:&lt;/div&gt;&lt;/TD&gt;&lt;br /&gt;"&lt;TD width="70%"&gt;&lt;INPUT TYPE="text" name="Position" size="50"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;"&lt;TR&gt; &lt;TD width="30%"&gt;&lt;div align="right"&gt;Resume:&lt;/div&gt;&lt;/TD&gt;&lt;br /&gt;"&lt;TD width="70%"&gt;&lt;INPUT TYPE="file" name="Resume" size="35"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;"&lt;TR&gt;&lt;TD width="30%" valign="top"&gt;&lt;div align="right"&gt;Comments:&lt;/div&gt;&lt;/TD&gt;&lt;br /&gt;"&lt;TD width="70%"&gt;&lt;textarea name="Comments" cols="50" rows="5"&gt;&lt;/textarea&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;"&lt;/TABLE&gt;&lt;br /&gt;"&lt;P&gt; &lt;br /&gt;"&lt;INPUT TYPE="submit" name="Submit" value="Submit"&gt;&lt;br /&gt;"&lt;INPUT TYPE="reset" name="Reset" value="Reset"&gt;&lt;br /&gt;"&lt;/P&gt;&lt;br /&gt;"&lt;/FORM&gt;"&lt;br /&gt;&lt;br /&gt;resultspage.asp isinya&lt;br /&gt;&lt;br /&gt;&lt;!--#INCLUDE VIRTUAL="/includes/connection.asp" --&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;DIM objRSr, File, Upload, Count, Ext&lt;br /&gt;DIM Mail, strMsgHeader&lt;br /&gt;Set Upload = Server.CreateObject("Persits.Upload.1")&lt;br /&gt;Count = Upload.SaveVirtual("/contactus/hr/upload/")&lt;br /&gt;&lt;br /&gt;IF NOT Count=0 THEN&lt;br /&gt;FOR EACH File IN Upload.Files&lt;br /&gt;Ext = UCase(Right(File.Path, 3))&lt;br /&gt;IF Ext &lt;&gt; "TXT" AND Ext &lt;&gt; "DOC" THEN&lt;br /&gt;Response.Write Upload.Form("FirstName") &amp; ",&lt;br&gt;&lt;br&gt;"&lt;br /&gt;Response.Write "Sorry, your resume " &amp; File.Path &amp; " is not in a .DOC or .TXT format and has not been delivered through our system. Please save your resume in one of these formats and resubmit it."&lt;br /&gt;File.Delete&lt;br /&gt;ELSE&lt;br /&gt;&lt;br /&gt;Set objRSr = Server.CreateObject("ADODB.Recordset")&lt;br /&gt;objRSr.Open "tblContact", objConn, , adLockOptimistic, adCmdTable&lt;br /&gt;&lt;br /&gt;objRSr.AddNew&lt;br /&gt;objRSr("Data") = "Resumes"&lt;br /&gt;objRSr("Email") = Upload.Form("Email")&lt;br /&gt;objRSr("FirstName") = Upload.Form("FirstName")&lt;br /&gt;objRSr("LastName") = Upload.Form("LastName")&lt;br /&gt;objRSr("Position") = Upload.Form("Position")&lt;br /&gt;objRSr("Comments") = Upload.Form("Comments")&lt;br /&gt;objRSr("DateSubmitted") = Date()&lt;br /&gt;Set File = Upload.Files("fResume")&lt;br /&gt;If Not File Is Nothing Then objRSr("fResume").Value = File.Binary&lt;br /&gt;objRSr.Update&lt;br /&gt;&lt;br /&gt;objRSr.Close&lt;br /&gt;Set objRSr = Nothing&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Set Mail = Server.CreateObject("Persits.MailSender")&lt;br /&gt;Mail.Host = "mail.YOUR_DOMAIN_NAME_HERE.com"&lt;br /&gt;Mail.From = Upload.Form("Email")&lt;br /&gt;Mail.AddAddress "YOUR_EMAIL_ADDRESS_HERE"&lt;br /&gt;Mail.Subject = "Resume"&lt;br /&gt;strMsgHeader = "This email was delivered from your website." &amp; vbCrLf &amp; vbCrLf&lt;br /&gt;Mail.Body = strMsgHeader &amp; "Email: " &amp; Upload.Form("Email") &amp; vbCrLf &amp; "First Name: " &amp; Upload.Form("FirstName") &amp; vbCrLf &amp; "Last Name: " &amp; Upload.Form("LastName") &amp; vbCrLf &amp; "Position: " &amp; Upload.Form("Position") &amp; vbCrLf &amp; vbCrLf &amp; "Comments: " &amp; Upload.Form("Comments")&lt;br /&gt;&lt;br /&gt;IF Count &gt; 0 THEN&lt;br /&gt;Mail.AddAttachment Upload.Files(1).Path&lt;br /&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;Mail.Send&lt;br /&gt;IF Err &lt;&gt; 0 THEN&lt;br /&gt;Response.Write "There was an error sending your message. Please visit our Contact Us page and send a message to our Webmaster to report this error: &lt;B&gt;" &amp; Err.Description &amp; "&lt;/B&gt;"&lt;br /&gt;ELSE&lt;br /&gt;Response.Write Upload.Form("FirstName") &amp; ","&lt;br /&gt;Response.Write "&lt;p&gt;Thank you for contacting our recruiter. Your resume has been received and will be reviewed shortly. If we have a position is available that matches your skills, we will contact you to schedule an interview. We keep all resumes on file for a period of 6 months, please feel free to resubmit your resume after this time for future consideration.&lt;/p&gt;"&lt;br /&gt;File.Delete&lt;br /&gt;END IF&lt;br /&gt;END IF&lt;br /&gt;END IF&lt;br /&gt;&lt;br /&gt;NEXT&lt;br /&gt;%&gt; &lt;br /&gt;&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;%&lt;br /&gt;' This is a nice way to Personalize your FORM.&lt;br /&gt;' It disPlays the Persons name before your message.&lt;br /&gt;strName = Request.Form("FirstName")&lt;br /&gt;Response.Write strFirstName&lt;br /&gt;%&gt;,&lt;/P&gt;&lt;br /&gt;&lt;br /&gt;&lt;P&gt;Thank you for emailing us your resume.&lt;/P&gt;&lt;br /&gt; &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111843326331984621?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111843326331984621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111843326331984621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843326331984621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111843326331984621'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/kuliah-online.html' title='Kuliah Online'/><author><name>robby_willman(201114132)</name><uri>http://www.blogger.com/profile/09474781053814304766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111842268377494924</id><published>2005-06-10T09:54:00.000-07:00</published><updated>2005-06-10T09:58:03.780-07:00</updated><title type='text'>Membuat Error Log File Sederhana menggunakan ASP.NET dan C#</title><content type='html'>Pada project ini, ide utamanya adalah menciptakan sebuah class CreateLogFile, yang akan menciptakan sebuah direktori khusus dari web. Class ini menggunakan 2 namespace:&lt;br /&gt;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;private string sLogFormat;&lt;br /&gt;private string sErrorTime;&lt;br /&gt;&lt;br /&gt;public CreateLogFiles()&lt;br /&gt;{&lt;br /&gt;    //sLogFormat used to create log files format :&lt;br /&gt;    // dd/mm/yyyy hh:mm:ss AM/PM ==&amp;gt; Log Message&lt;br /&gt;    sLogFormat = DateTime.Now.ToShortDateString().ToString()+" "+DateTime.Now.ToLongTimeString().ToString()+" ==&amp;gt; ";&lt;br /&gt;           &lt;br /&gt;    //this variable used to create log filename format "&lt;br /&gt;    //for example filename : ErrorLogYYYYMMDD&lt;br /&gt;    string sYear    = DateTime.Now.Year.ToString();&lt;br /&gt;    string sMonth    = DateTime.Now.Month.ToString();&lt;br /&gt;    string sDay    = DateTime.Now.Day.ToString();&lt;br /&gt;    sErrorTime = sYear+sMonth+sDay;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Ini adalah contoh deklarasi variabel yang digunakan:&lt;br /&gt;&lt;br /&gt;private string sLogFormat;&lt;br /&gt;private string sErrorTime;&lt;br /&gt;&lt;br /&gt;public CreateLogFiles()&lt;br /&gt;{&lt;br /&gt;    //sLogFormat used to create log files format :&lt;br /&gt;    // dd/mm/yyyy hh:mm:ss AM/PM ==&amp;gt; Log Message&lt;br /&gt;    sLogFormat = DateTime.Now.ToShortDateString().ToString()+" "+DateTime.Now.ToLongTimeString().ToString()+" ==&amp;gt; ";&lt;br /&gt;           &lt;br /&gt;    //this variable used to create log filename format "&lt;br /&gt;    //for example filename : ErrorLogYYYYMMDD&lt;br /&gt;    string sYear    = DateTime.Now.Year.ToString();&lt;br /&gt;    string sMonth    = DateTime.Now.Month.ToString();&lt;br /&gt;    string sDay    = DateTime.Now.Day.ToString();&lt;br /&gt;    sErrorTime = sYear+sMonth+sDay;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Ini adalah function yang menciptakan error file:&lt;br /&gt;&lt;br /&gt;public void ErrorLog(string sPathName, string sErrMsg)&lt;br /&gt;{&lt;br /&gt;    StreamWriter sw = new StreamWriter(sPathName+sErrorTime,true);&lt;br /&gt;    sw.WriteLine(sLogFormat + sErrMsg);&lt;br /&gt;    sw.Flush();&lt;br /&gt;    sw.Close();&lt;br /&gt;}&lt;br /&gt;Untuk menggunakan class ini, diciptakan sebuah contoh web form yang disebut: CreateLogFiles&lt;br /&gt;Kita memanggil function Errorlog dari class kita ketika button search diklik.&lt;br /&gt;&lt;br /&gt;private void BtnFind_Click(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;        StreamReader sr = new StreamReader(this.TxtFilename.Text);&lt;br /&gt;        sr.Read();&lt;br /&gt;        sr.Close();&lt;br /&gt;        Msg.Visible = true;&lt;br /&gt;        Msg.Text = "File "+ this.TxtFilename.Text +" was found";&lt;br /&gt;    }&lt;br /&gt;    catch(Exception ex)&lt;br /&gt;    {&lt;br /&gt;        CreateLogFiles Err = new CreateLogFiles();&lt;br /&gt;        Err.ErrorLog(Server.MapPath("Logs/ErrorLog"),ex.Message);&lt;br /&gt;        Msg.Visible = true;&lt;br /&gt;        Msg.Text = "Fatal error : "+ ex.Message + ", please find a complete error at ErrorLog file";&lt;br /&gt;    }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111842268377494924?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111842268377494924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111842268377494924' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842268377494924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842268377494924'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/membuat-error-log-file-sederhana.html' title='Membuat Error Log File Sederhana menggunakan ASP.NET dan C#'/><author><name>inge_as (202114594)</name><uri>http://www.blogger.com/profile/06101207009058987811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111842265428713375</id><published>2005-06-10T09:42:00.000-07:00</published><updated>2005-06-10T09:57:34.293-07:00</updated><title type='text'>Struktur Tree pada ASP.NET dan SQL Server</title><content type='html'>Tree adalah cara mudah untuk mengatur informasi dalam jumlah yang besar. Kita menggunakannya dimana saja, dari directory pada file system dan kategori pada web directoru hingga hirarki di organisasi dan family tree :)&lt;br /&gt;&lt;br /&gt;XML menangani hirarki dengan baik, tetapi bila kita memiliki database yang penuh dengan data, kita ingin mengasosiasikan dengan tree, misalkan tabel yang penuh dengan artikel, memecah data store antara XML dan SQL Server bukanlah pilihan yang tepat. Relational SQL tidak mempermudah penyimpanan dibandingkan dengan operasi yang efisien pada tree.&lt;br /&gt;&lt;br /&gt;Representasi tree pada .NET&lt;br /&gt;Setiap elemen pada tree adalah node, dan yang paling atas yang tidak memiliki parent adalah root. Kita membuat class sederhana untuk merepresentasikan setiap node pada tree&lt;br /&gt;1.UniqueId&lt;br /&gt;  Data Type : int&lt;br /&gt;  Fungsi : identifier unik untuk node dalam tree&lt;br /&gt;2.ParentID&lt;br /&gt;  Data Type : int&lt;br /&gt;  Fungsi : untuk mengidentifikasi node parent dari object ini&lt;br /&gt;3. Name&lt;br /&gt;   Data Type : string&lt;br /&gt;   Fungsi : Teks value, tidak harus unik, akan diasosiasikan dengan node ini&lt;br /&gt;4. Children&lt;br /&gt;   Data Type : ArrayList&amp;lt;TreeNode&amp;gt;&lt;br /&gt;   Fungsi : collection dari object-object TreeNode&lt;br /&gt;&lt;br /&gt;Contoh class yang digunakan&lt;br /&gt;[Serializable]&lt;br /&gt;public class TreeNode&lt;br /&gt;{&lt;br /&gt;    private int _uniqueID;&lt;br /&gt;    private string _name;&lt;br /&gt;    private int _parentID;&lt;br /&gt;    private int _depth;&lt;br /&gt;    private ArrayList _children;&lt;br /&gt;    public TreeNode() { }&lt;br /&gt;    public TreeNode(string name, int parentID) : this(0,name,parentID,-1)&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;    public TreeNode(int uniqueID, string name, int parentID, int depth)&lt;br /&gt;    {&lt;br /&gt;        _uniqueID = uniqueID;&lt;br /&gt;        _name = name;&lt;br /&gt;        _parentID = parentID;&lt;br /&gt;        _depth = depth;&lt;br /&gt;    }&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// Mengambil atau menentukan ID unik yang berhubungan dengan kategori ini&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    /// &amp;lt;remarks&amp;gt;jika non-zero ID sudah di set maka tidak boleh diganti.&amp;lt;/remarks&amp;gt;&lt;br /&gt;    public int UniqueID&lt;br /&gt;    {&lt;br /&gt;        get { return _uniqueID; }&lt;br /&gt;        set&lt;br /&gt;        {&lt;br /&gt;            if (_uniqueID == 0)&lt;br /&gt;                _uniqueID = value;&lt;br /&gt;            else&lt;br /&gt;                throw new Exception("The UniqueID property cannot be modified once it has a non-zero value");&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    public int Depth&lt;br /&gt;    {&lt;br /&gt;        get { return _depth; }&lt;br /&gt;    }&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// Mengambil atau menentukan label untuk node ini&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    public string Name&lt;br /&gt;    {&lt;br /&gt;        get { return _name; }&lt;br /&gt;        set { _name = value; }&lt;br /&gt;    }&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// ID dari node Parent&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    public int ParentID&lt;br /&gt;    {&lt;br /&gt;        get { return _parentID; }&lt;br /&gt;        set { _parentID = value; }&lt;br /&gt;    }&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// Gets the children TreeNode objects for this category&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    /// &amp;lt;remarks&amp;gt;Pada .NET 2.0, ini dapat dimodifikasi sehingga menggunakan generics, and dengan tipe ArrayList&amp;lt;TreeNode&amp;gt;&amp;lt;/remarks&amp;gt;&lt;br /&gt;    public ArrayList Children&lt;br /&gt;    {&lt;br /&gt;        get { return _children; }&lt;br /&gt;        set { _children = value; }&lt;br /&gt;    }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111842265428713375?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111842265428713375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111842265428713375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842265428713375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842265428713375'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/struktur-tree-pada-aspnet-dan-sql.html' title='Struktur Tree pada ASP.NET dan SQL Server'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111842175160514217</id><published>2005-06-10T09:39:00.000-07:00</published><updated>2005-06-10T09:42:31.616-07:00</updated><title type='text'>Menambahkan sebuah kalender poppup pada datagrid ASP.NET</title><content type='html'>Kita dapat menambahkan sebuah kalender popup pada textbox datagrid ketika pada mode edit&lt;br /&gt;&lt;br /&gt;Pada program yang akan ditunjuklan terlihat bahwa kita akan menggunakan templatecolums dan pada edititemtemplate yang terdapat pada templatecolumn untuk field orderdate telah ditambahkan sebuah linkbutton untuk menunjukkan sebuah gambar kalender kecil ketika berada pada mode edit.&lt;br /&gt;&lt;br /&gt;Hanya itu yang perlu kita lakukan pada halaman aspx kita untuk membuat datagrid kita siap untuk kalender popup. Program sebenarnya untuk mengimplementasikan&lt;br /&gt;kalender popup berada pada file codebehind.&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ Page Language="vb" AutoEventWireup="false" Codebehind="DGPopupCal.aspx.vb" Inherits="DotNetJohn.DGPopupCal"% &amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" &amp;gt;&lt;br /&gt;&amp;lt;html &amp;gt;&lt;br /&gt;&amp;lt;head &amp;gt;&lt;br /&gt;&amp;lt;title &amp;gt; DGPopupCal&amp;lt;/title &amp;gt;&lt;br /&gt;&amp;lt;meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1" &amp;gt;&lt;br /&gt;&amp;lt;meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1" &amp;gt;&lt;br /&gt;&amp;lt;meta name=vs_defaultClientScript content="JavaScript" &amp;gt;&lt;br /&gt;&amp;lt;meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5" &amp;gt;&lt;br /&gt;&amp;lt;/head &amp;gt;&lt;br /&gt;&amp;lt;body MS_POSITIONING="GridLayout" &amp;gt;&lt;br /&gt;&amp;lt;form id="Form1" method="post" runat="server" &amp;gt;&lt;br /&gt;&amp;lt;asp:datagrid id="dtgOrders"&lt;br /&gt;              runat="server"&lt;br /&gt;              BorderStyle="Ridge"&lt;br /&gt;              BorderColor="LightGray"&lt;br /&gt;              BorderWidth="1px"&lt;br /&gt;              DataKeyField="OrderID"&lt;br /&gt;              AutoGenerateColumns="False"&lt;br /&gt;              HeaderStyle-Wrap="false"&lt;br /&gt;              HeaderStyle-Font-Bold="True"&lt;br /&gt;              HeaderStyle-BackColor="LightGrey"&lt;br /&gt;              AlternatingItemStyle-BackColor="LightGrey"&lt;br /&gt;              CellPadding="2"&lt;br /&gt;              GridLines="Horizontal"&lt;br /&gt;              Width="500px" &amp;gt;&lt;br /&gt;  &amp;lt;EditItemStyle BackColor="Coral" &amp;gt; &amp;lt;/EditItemStyle &amp;gt;&lt;br /&gt;  &amp;lt;HeaderStyle Font-Bold="True" Wrap="False" BackColor="LightGray" &amp;gt; &amp;lt;/HeaderStyle &amp;gt;&lt;br /&gt;  &amp;lt;Columns &amp;gt;&lt;br /&gt;    &amp;lt;asp:TemplateColumn HeaderText="Customer ID" &amp;gt;&lt;br /&gt;      &amp;lt;ItemStyle HorizontalAlign="Left" &amp;gt; &amp;lt;/ItemStyle &amp;gt;&lt;br /&gt;      &amp;lt;ItemTemplate &amp;gt;&lt;br /&gt;        &amp;lt;asp:Label id="lblCustomerID" runat="server" Text='&amp;lt;%# DataBinder.Eval(Container, "DataItem.CustomerID", "") % &amp;gt; ' &amp;gt;&lt;br /&gt;        &amp;lt;/asp:Label &amp;gt;&lt;br /&gt;      &amp;lt;/ItemTemplate &amp;gt;&lt;br /&gt;      &amp;lt;EditItemTemplate &amp;gt;&lt;br /&gt;        &amp;lt;asp:TextBox id="tbCustomerID" runat="server" Width="65px" Text='&amp;lt;%# DataBinder.Eval(Container, "DataItem.CustomerID", "") % &amp;gt; ' &amp;gt;&lt;br /&gt;        &amp;lt;/asp:TextBox &amp;gt;&lt;br /&gt;      &amp;lt;/EditItemTemplate &amp;gt;&lt;br /&gt;    &amp;lt;/asp:TemplateColumn &amp;gt;&lt;br /&gt;    &amp;lt;asp:TemplateColumn HeaderText="Employee ID" &amp;gt;&lt;br /&gt;      &amp;lt;ItemStyle HorizontalAlign="Left" &amp;gt; &amp;lt;/ItemStyle &amp;gt;&lt;br /&gt;      &amp;lt;ItemTemplate &amp;gt;&lt;br /&gt;        &amp;lt;asp:Label id="lblEmployeeID" runat="server" Text='&amp;lt;%# DataBinder.Eval(Container, "DataItem.EmployeeID", "") % &amp;gt; ' &amp;gt;&lt;br /&gt;        &amp;lt;/asp:Label &amp;gt;&lt;br /&gt;      &amp;lt;/ItemTemplate &amp;gt;&lt;br /&gt;      &amp;lt;EditItemTemplate &amp;gt;&lt;br /&gt;        &amp;lt;asp:TextBox id="txtEmployeeID" runat="server" Width="65px" Text='&amp;lt;%# DataBinder.Eval(Container, "DataItem.EmployeeID", "") % &amp;gt; ' &amp;gt;&lt;br /&gt;        &amp;lt;/asp:TextBox &amp;gt;&lt;br /&gt;      &amp;lt;/EditItemTemplate &amp;gt;&lt;br /&gt;    &amp;lt;/asp:TemplateColumn &amp;gt;&lt;br /&gt;    &amp;lt;asp:TemplateColumn HeaderText="Order Date" &amp;gt;&lt;br /&gt;      &amp;lt;ItemTemplate &amp;gt;&lt;br /&gt;        &amp;lt;asp:Label id="lblOrderDate" runat="server" Text='&amp;lt;%# DataBinder.Eval(Container, "DataItem.OrderDate", "{0:d}") % &amp;gt; ' &amp;gt;&lt;br /&gt;        &amp;lt;/asp:Label &amp;gt;&lt;br /&gt;      &amp;lt;/ItemTemplate &amp;gt;&lt;br /&gt;      &amp;lt;EditItemTemplate &amp;gt;&lt;br /&gt;        &amp;lt;asp:TextBox id="txtOrderDate" runat="server" Width="75px" Text='&amp;lt;%# DataBinder.Eval(Container, "DataItem.OrderDate", "{0:d}") % &amp;gt; ' ReadOnly="True" &amp;gt;&lt;br /&gt;        &amp;lt;/asp:TextBox &amp;gt; &lt;br /&gt;        &amp;lt;asp:HyperLink id="lbtnCalendar" runat="server" ImageUrl="images/smallcalendar.gif" &amp;gt; &amp;lt;/asp:HyperLink &amp;gt;&lt;br /&gt;      &amp;lt;/EditItemTemplate &amp;gt;&lt;br /&gt;    &amp;lt;/asp:TemplateColumn &amp;gt;&lt;br /&gt;    &amp;lt;asp:TemplateColumn &amp;gt;&lt;br /&gt;      &amp;lt;ItemTemplate &amp;gt;&lt;br /&gt;        &amp;lt;asp:LinkButton id="lbtnEdit" runat="server" Text="&amp;lt;img border=0 src=images/dtg_edit.gif alt=edit &amp;gt; " CommandName="Edit" &amp;gt; &amp;lt;/asp:LinkButton &amp;gt;&lt;br /&gt;      &amp;lt;/ItemTemplate &amp;gt;&lt;br /&gt;      &amp;lt;EditItemTemplate &amp;gt;&lt;br /&gt;        &amp;lt;asp:LinkButton id="lbtnUpdate" runat="server" Text="&amp;lt;img border=0 src=images/dtg_update.gif alt=save/update &amp;gt; " CommandName="Update" &amp;gt; &amp;lt;/asp:LinkButton &amp;gt; &lt;br /&gt;        &amp;lt;asp:LinkButton id="lbtnCancel" runat="server" Text="&amp;lt;img border=0 src=images/dtg_cancel.gif alt=cancel &amp;gt; " CommandName="Cancel" &amp;gt; &amp;lt;/asp:LinkButton &amp;gt;&lt;br /&gt;      &amp;lt;/EditItemTemplate &amp;gt;&lt;br /&gt;    &amp;lt;/asp:TemplateColumn &amp;gt;&lt;br /&gt;  &amp;lt;/Columns &amp;gt;&lt;br /&gt;&amp;lt;/asp:datagrid &amp;gt; &amp;lt;/P &amp;gt;&lt;br /&gt;&amp;lt;/form &amp;gt;&lt;br /&gt;&amp;lt;/body &amp;gt;&lt;br /&gt;&amp;lt;/html &amp;gt; &lt;br /&gt;&lt;br /&gt;File codebehind ditunjukkan pada bagian setelah ini.&lt;br /&gt;Yang harus diperhatikan adalah event itemdatabound (subrutin terakhir pada program). Pada event ini terdapat pemanggilan terhadap kalender yang terdapat pada DGCal.aspx dengan&lt;br /&gt;menggunakan java script&lt;br /&gt;&lt;br /&gt;Imports System.Data.SqlClient&lt;br /&gt;Imports System.Configuration&lt;br /&gt;&lt;br /&gt;Public Class DGPopupCal&lt;br /&gt;  Inherits System.Web.UI.Page&lt;br /&gt;  Protected WithEvents dtgOrders As System.Web.UI.WebControls.DataGrid&lt;br /&gt;&lt;br /&gt;  Dim dataSet As dataSet&lt;br /&gt;&lt;br /&gt;  ' " Web Form Designer Generated Code " Omitted&lt;br /&gt;&lt;br /&gt;  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;    If Not IsPostBack Then&lt;br /&gt;      GetData()&lt;br /&gt;    End If&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Private Sub GetData()&lt;br /&gt;    Dim objConn As New SqlConnection(ConfigurationSettings.AppSettings("NorthwindConnection"))&lt;br /&gt;    Dim objCmd As New SqlCommand&lt;br /&gt;    Dim dataAdapter As SqlDataAdapter&lt;br /&gt;&lt;br /&gt;    objCmd.Connection = objConn&lt;br /&gt;    objCmd.CommandType = CommandType.Text&lt;br /&gt;    objCmd.CommandText = "SELECT Top 10 OrderID, CustomerID, EmployeeID, OrderDate FROM Orders"&lt;br /&gt;&lt;br /&gt;    objConn.Open()&lt;br /&gt;&lt;br /&gt;    dataAdapter = New SqlDataAdapter&lt;br /&gt;    dataAdapter.TableMappings.Add("Table", "Orders")&lt;br /&gt;    dataAdapter.SelectCommand = objCmd&lt;br /&gt;&lt;br /&gt;    dataSet = New DataSet("Orders")&lt;br /&gt;    dataAdapter.Fill(dataSet)&lt;br /&gt;    dtgOrders.DataSource = dataSet&lt;br /&gt;    dtgOrders.DataBind()&lt;br /&gt;&lt;br /&gt;    objConn.Dispose()&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Sub dtgOrders_Edit(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Handles dtgOrders.EditCommand&lt;br /&gt;    dtgOrders.EditItemIndex = CInt(e.Item.ItemIndex)&lt;br /&gt;    GetData()&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Sub dtgOrders_Cancel(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Handles dtgOrders.CancelCommand&lt;br /&gt;    dtgOrders.EditItemIndex = -1&lt;br /&gt;    GetData()&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Sub dtgOrders_Update(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Handles dtgOrders.UpdateCommand&lt;br /&gt;    Dim OrderID As Int32&lt;br /&gt;    Dim CustomerID As String&lt;br /&gt;    Dim EmployeeID As Int32&lt;br /&gt;    Dim OrderDate As String&lt;br /&gt;&lt;br /&gt;    OrderID = Convert.ToInt32(dtgOrders.DataKeys(CInt(e.Item.ItemIndex)))&lt;br /&gt;    CustomerID = Convert.ToString(CType(e.Item.FindControl("tbCustomerID"), TextBox).Text)&lt;br /&gt;    OrderDate = Convert.ToString(CType(e.Item.FindControl("txtOrderDate"), TextBox).Text)&lt;br /&gt;    EmployeeID = Convert.ToInt32(CType(e.Item.FindControl("txtEmployeeID"), TextBox).Text)&lt;br /&gt;&lt;br /&gt;    Dim strSQL As String&lt;br /&gt;    strSQL = "UPDATE Orders SET " _&lt;br /&gt;          &amp; "CustomerID='" &amp;amp; CustomerID &amp; "', " _&lt;br /&gt;          &amp; "EmployeeID=" &amp;amp; EmployeeID &amp; ", " _&lt;br /&gt;          &amp; "OrderDate='" &amp;amp; OrderDate &amp; "' " _&lt;br /&gt;          &amp; "WHERE OrderID=" &amp;amp; OrderID&lt;br /&gt;&lt;br /&gt;    'Dim objConn As New SqlConnection(ConfigurationSettings.AppSettings("NorthwindConnection"))&lt;br /&gt;    'Dim objCmd As New SqlCommand&lt;br /&gt;&lt;br /&gt;    'objCmd.Connection = objConn&lt;br /&gt;    'objCmd.CommandType = CommandType.Text&lt;br /&gt;    'objCmd.CommandText = strSQL&lt;br /&gt;&lt;br /&gt;    'objConn.Open()&lt;br /&gt;&lt;br /&gt;    'objCmd.ExecuteNonQuery()&lt;br /&gt;&lt;br /&gt;    'objConn.Dispose()&lt;br /&gt;&lt;br /&gt;    dtgOrders.EditItemIndex = -1&lt;br /&gt;    GetData()&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Private Sub dtgOrders_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dtgOrders.ItemDataBound&lt;br /&gt;&lt;br /&gt;    If e.Item.ItemType = ListItemType.EditItem Then&lt;br /&gt;      Dim strTextBoxName As String = e.Item.Cells(0).FindControl("txtOrderDate").ClientID()&lt;br /&gt;      CType(e.Item.FindControl("lbtnCalendar"), HyperLink).NavigateUrl = "javascript:calendar_window=window.open('DGCal.aspx?formname=Form1." &amp; strTextBoxName &amp;amp; "','DatePicker','width=250,height=190,left=360,top=180');calendar_window.focus();"&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;Berikut adalah isi dari file DGCal.aspx&lt;br /&gt;&amp;lt;%@ Page Language="vb" AutoEventWireup="false" Codebehind="DGCal.aspx.vb" Inherits="DotNetJohn.DGCal" % &amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" &amp;gt;&lt;br /&gt;&amp;lt;HTML &amp;gt;&lt;br /&gt;    &amp;lt;HEAD &amp;gt;&lt;br /&gt;        &amp;lt;title &amp;gt; DGCal&amp;lt;/title &amp;gt;&lt;br /&gt;        &amp;lt;META http-equiv="Content-Type" content="text/html; charset=Windows-1252" &amp;gt;&lt;br /&gt;        &amp;lt;meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0" &amp;gt;&lt;br /&gt;        &amp;lt;meta name="CODE_LANGUAGE" content="Visual Basic 7.0" &amp;gt;&lt;br /&gt;        &amp;lt;meta name="vs_defaultClientScript" content="JavaScript" &amp;gt;&lt;br /&gt;        &amp;lt;meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" &amp;gt;&lt;br /&gt;        &amp;lt;LINK href="styles.css" type="text/css" rel="stylesheet" &amp;gt;&lt;br /&gt;    &amp;lt;/HEAD &amp;gt;&lt;br /&gt;    &amp;lt;body MS_POSITIONING="FlowLayout" bottomMargin="2" leftMargin="2" topMargin="2" rightMargin="2" &amp;gt;&lt;br /&gt;        &amp;lt;form id="Form1" method="post" runat="server" &amp;gt;&lt;br /&gt;            &amp;lt;asp:Calendar id="Calendar1"&lt;br /&gt;                          runat="server"&lt;br /&gt;                          OnSelectionChanged="Calendar1_SelectionChanged" &amp;gt;&lt;br /&gt;                &amp;lt;TodayDayStyle BorderWidth="1px" BorderStyle="Solid" BackColor="Linen" &amp;gt; &amp;lt;/TodayDayStyle &amp;gt;&lt;br /&gt;                &amp;lt;NextPrevStyle ForeColor="White" BackColor="Navy" &amp;gt; &amp;lt;/NextPrevStyle &amp;gt;&lt;br /&gt;                &amp;lt;TitleStyle ForeColor="White" BackColor="Navy" &amp;gt; &amp;lt;/TitleStyle &amp;gt;&lt;br /&gt;                &amp;lt;OtherMonthDayStyle ForeColor="Silver" &amp;gt; &amp;lt;/OtherMonthDayStyle &amp;gt;&lt;br /&gt;            &amp;lt;/asp:Calendar &amp;gt; &amp;lt;BR &amp;gt;&lt;br /&gt;            &amp;lt;asp:Literal id="Literal1" runat="server" &amp;gt; &amp;lt;/asp:Literal &amp;gt;&lt;br /&gt;        &amp;lt;/form &amp;gt;&lt;br /&gt;    &amp;lt;/body &amp;gt;&lt;br /&gt;&amp;lt;/HTML &amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111842175160514217?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111842175160514217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111842175160514217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842175160514217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842175160514217'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/menambahkan-sebuah-kalender-poppup.html' title='Menambahkan sebuah kalender poppup pada datagrid ASP.NET'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111842166502084558</id><published>2005-06-10T09:37:00.000-07:00</published><updated>2005-06-10T09:41:05.026-07:00</updated><title type='text'>Loading ASP.NET Template secara Dinamik(contoh:memformat data-bound control)</title><content type='html'>Pada artikel ini, akan diciptakan sebuah dataset pada memory dan akan menggunakan Dataset untuk mengisi control Datalist. Code yang terdapat pada listing 1 yang menunjukkan DB class. Method GetDataSet dari class ini menciptakan dan mengembalikan objek dataset&lt;br /&gt;&lt;br /&gt;Listing 1. The DB class&lt;br /&gt;&lt;br /&gt;public class DB&lt;br /&gt;{&lt;br /&gt;public DB()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;/// &amp;lt;summary&amp;gt;&lt;br /&gt;/// Method mengembalikan objek DataSet yang diisi dengan data&lt;br /&gt;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;public static DataSet GetDataSet()&lt;br /&gt;{&lt;br /&gt;// Buat sebuah DataSet dan sebuah DataTable&lt;br /&gt;DataSet ds = new DataSet();&lt;br /&gt;DataTable table = new DataTable("Records");&lt;br /&gt;DataColumn col;&lt;br /&gt;// Buat &amp; Tambahkan DataTable columns&lt;br /&gt;col = new DataColumn();&lt;br /&gt;col.DataType = System.Type.GetType("System.Int32");&lt;br /&gt;col.ColumnName = "ID";&lt;br /&gt;col.ReadOnly = true;&lt;br /&gt;col.Unique = true;&lt;br /&gt;table.Columns.Add(col);&lt;br /&gt;col = new DataColumn();&lt;br /&gt;col.DataType = System.Type.GetType("System.String");&lt;br /&gt;col.ColumnName = "Name";&lt;br /&gt;col.AutoIncrement = false;&lt;br /&gt;col.Caption = "Name";&lt;br /&gt;col.ReadOnly = false;&lt;br /&gt;col.Unique = false;&lt;br /&gt;table.Columns.Add(col);&lt;br /&gt;col = new DataColumn();&lt;br /&gt;col.DataType = System.Type.GetType("System.String");&lt;br /&gt;col.ColumnName = "Address";&lt;br /&gt;col.AutoIncrement = false;&lt;br /&gt;col.Caption = "Address";&lt;br /&gt;col.ReadOnly = false;&lt;br /&gt;col.Unique = false;&lt;br /&gt;table.Columns.Add(col);&lt;br /&gt;// Buat &amp; Tambah DataTable rows&lt;br /&gt;DataRow row = table.NewRow();&lt;br /&gt;row["ID"] = 1001;&lt;br /&gt;row["Name"] = "Melanie Giard";&lt;br /&gt;row["Address"] = "23rd Street, Park Road, NY City, NY";&lt;br /&gt;table.Rows.Add(row);&lt;br /&gt;row = table.NewRow();&lt;br /&gt;row["ID"] = 1002;&lt;br /&gt;row["Name"] = "Puneet Nehra";&lt;br /&gt;row["Address"] = "3rd Blvd, Ashok Vihar, New Delhi";&lt;br /&gt;table.Rows.Add(row);&lt;br /&gt;row = table.NewRow();&lt;br /&gt;row["ID"] = 1003;&lt;br /&gt;row["Name"] = "Raj Mehta";&lt;br /&gt;row["Address"] = "Nagrath Chowk, Jabalpur";&lt;br /&gt;table.Rows.Add(row);&lt;br /&gt;row = table.NewRow();&lt;br /&gt;row["ID"] = 1004;&lt;br /&gt;row["Name"] = "Max Muller";&lt;br /&gt;row["Address"] = "25 North Street, Hernigton, Russia";&lt;br /&gt;table.Rows.Add(row);&lt;br /&gt;// Tambahkan DataTable pada DataSet&lt;br /&gt;ds.Tables.Add(table);&lt;br /&gt;// Return DataSet&lt;br /&gt;return ds;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Listing 2. Item template secara tipikal&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ Language = "VB" %&amp;gt;&lt;br /&gt;&amp;lt;FONT face="verdana" color="red" size="2"&amp;gt;&amp;lt;b&amp;gt;ID: &amp;lt;/b&amp;gt;&lt;br /&gt;      &amp;lt;%# DataBinder.Eval(CType(Container, DataListItem).DataItem, "ID") %&amp;gt;&lt;br /&gt;      &amp;lt;b&amp;gt;Name: &amp;lt;/b&amp;gt;&lt;br /&gt;      &amp;lt;%# DataBinder.Eval(CType(Container, DataListItem).DataItem, "Name") %&amp;gt;&lt;br /&gt;      &amp;lt;br&amp;gt;&lt;br /&gt;      &amp;lt;b&amp;gt;Address: &amp;lt;/b&amp;gt;&lt;br /&gt;      &amp;lt;%# DataBinder.Eval(CType(Container, DataListItem).DataItem, "Address") %&amp;gt;&lt;br /&gt;      &amp;lt;p&amp;gt;&lt;br /&gt;&amp;lt;/FONT&amp;gt;&lt;br /&gt;&lt;br /&gt;Listing 3. The BindDataGrid method &lt;br /&gt;&lt;br /&gt;// method ini bind sebuah DataSet menjadi DataGrid&lt;br /&gt;private void BindDataGrid()&lt;br /&gt;{&lt;br /&gt;// DB.GetDataSet mengembalikan sebuah DataSet dengan sebuah tabel&lt;br /&gt;// disebut 'Records' dengan tiga kolom - ID, Name and Address&lt;br /&gt;dtSet = DB.GetDataSet();&lt;br /&gt;DataList1.DataSource = dtSet.Tables[0].DefaultView;&lt;br /&gt;DataList1.DataBind();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Kita memanggil method ini pada event page load seperti berikut:&lt;br /&gt;&lt;br /&gt;private void Page_Load(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;if(!IsPostBack)&lt;br /&gt;{&lt;br /&gt;BindDataGrid();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Pada langkah terakhir artikel ini, kita tambahkan code pada 2 event handler button click. Pada kedua button ini kita akan menampilkan 2 template yang berbeda. Secagai contoh pada code ini, property DataList AlternatingItemTemplate, ItemTemplate, HeaderTemplate, and FooterTemplate  di-set dengan menggunakan method Page.LoadTemplate &lt;br /&gt;&lt;br /&gt;private void Button1_Click(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;// Load template&lt;br /&gt;DataList1.AlternatingItemTemplate = Page.LoadTemplate("AltItemTempate.ascx");&lt;br /&gt;DataList1.ItemTemplate =Page.LoadTemplate("ItemTemplate.ascx");&lt;br /&gt;DataList1.HeaderTemplate =Page.LoadTemplate("HeadTemplate.ascx");&lt;br /&gt;DataList1.FooterTemplate = Page.LoadTemplate("FootTemplate.ascx");&lt;br /&gt;BindDataGrid();&lt;br /&gt;}&lt;br /&gt;private void Button2_Click(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;// Load template&lt;br /&gt;DataList1.AlternatingItemTemplate =&lt;br /&gt;Page.LoadTemplate("AltItemTempate2.ascx");&lt;br /&gt;DataList1.ItemTemplate = Page.LoadTemplate("ItemTemplate2.ascx");&lt;br /&gt;DataList1.HeaderTemplate = Page.LoadTemplate("HeadTemplate2.ascx");&lt;br /&gt;DataList1.FooterTemplate = Page.LoadTemplate("FootTemplate2.ascx");&lt;br /&gt;BindDataGrid();&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111842166502084558?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111842166502084558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111842166502084558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842166502084558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842166502084558'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/loading-aspnet-template-secara.html' title='Loading ASP.NET Template secara Dinamik(contoh:memformat data-bound control)'/><author><name>inge_as (202114594)</name><uri>http://www.blogger.com/profile/06101207009058987811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111842146078847410</id><published>2005-06-10T09:22:00.000-07:00</published><updated>2005-06-10T09:37:40.790-07:00</updated><title type='text'>Highlight Rows dalam ASP.NET DataGrid</title><content type='html'>Artikel ini akan membahas tampilan highlight baris saat user scroll mouse naik dan turun pada grid. Efek ini dapat diperoleh dengan menggunakan beberapa baris client-side JavaScript, tetapi hal ini tidak perlu dilakukaan karena dengan .NET lebih mudah yaitu dengan mengimplementasikan ItemDataBound event handler dan menambahkan atribut OnMouseOver dan OnMouseOut untuk menangani perubahan warna.&lt;br /&gt;&lt;br /&gt;Kode untuk membuatnya terbagi atas dua, halaman aspx untuk mendefinisikan datagrid beserta atributnya. Sedangkan .vb untuk mengimplementasikan aktivitas database dan menangani metode ItemDataBound.&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;Halaman .aspx&lt;/span&gt;&lt;br /&gt;&amp;lt; %@ Page Language="vb" Src="HighlightDataGrid.aspx.vb" Inherits="HighlightDataGrid" % &amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt; html &amp;gt;&lt;br /&gt;&amp;lt; head &amp;gt;&lt;br /&gt;&amp;lt; title &amp;gt;Mouseover Highlighting of DataGrid Rows&amp;lt; /title &amp;gt;&lt;br /&gt;&amp;lt; /head &amp;gt;&lt;br /&gt;&amp;lt; body &amp;gt;&lt;br /&gt;&amp;lt; form runat="server" ID="Form1" &amp;gt;&lt;br /&gt;&amp;lt; asp:DataGrid id="dtgCustomers"&lt;br /&gt;              runat="server"&lt;br /&gt;              OnItemDataBound="dtgCustomers_ItemDataBound"&lt;br /&gt;              CellPadding="4"&lt;br /&gt;              BackColor="White"&lt;br /&gt;              BorderWidth="1px"&lt;br /&gt;              BorderStyle="None"&lt;br /&gt;              BorderColor="Indigo"&lt;br /&gt;              AllowPaging="True"&lt;br /&gt;              PageSize="10"&lt;br /&gt;              OnPageIndexChanged="dtgCustomers_PageIndexChanged"&lt;br /&gt;              PagerStyle-Mode="NumericPages"&lt;br /&gt;              EnableViewState="False"&lt;br /&gt;              AutoGenerateColumns="True" &amp;gt;&lt;br /&gt;  &amp;lt; SelectedItemStyle font-bold="True"&lt;br /&gt;                     forecolor="#663399"&lt;br /&gt;                     backcolor="#FFCC66" &amp;gt;&lt;br /&gt;  &amp;lt; /SelectedItemStyle &amp;gt;&lt;br /&gt;  &amp;lt; ItemStyle forecolor="Navy"&lt;br /&gt;             backcolor="White" &amp;gt;&lt;br /&gt;  &amp;lt; /ItemStyle &amp;gt;&lt;br /&gt;  &amp;lt; AlternatingItemStyle ForeColor="Navy"&lt;br /&gt;                        BackColor="Yellow" &amp;gt;&lt;br /&gt;  &amp;lt; /AlternatingItemStyle &amp;gt;&lt;br /&gt;  &amp;lt; HeaderStyle font-bold="True"&lt;br /&gt;               forecolor="Navy"&lt;br /&gt;               backcolor="LightYellow" &amp;gt;&lt;br /&gt;  &amp;lt; /HeaderStyle &amp;gt;&lt;br /&gt;  &amp;lt; PagerStyle horizontalalign="Center"&lt;br /&gt;              forecolor="Navy"&lt;br /&gt;              backcolor="LightYellow" &amp;gt;&lt;br /&gt;  &amp;lt; /PagerStyle &amp;gt;&lt;br /&gt;&amp;lt; /asp:DataGrid &amp;gt;&lt;br /&gt;&amp;lt; /form &amp;gt;&lt;br /&gt;&amp;lt; /body &amp;gt;&lt;br /&gt;&amp;lt; /html &amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Berikutnya adalah file .vb nya&lt;/span&gt;&lt;br /&gt;Imports System&lt;br /&gt;Imports System.Web.UI&lt;br /&gt;Imports System.Web.UI.WebControls&lt;br /&gt;Imports System.Data.SqlClient&lt;br /&gt;Imports System.Data&lt;br /&gt;&lt;br /&gt;Public Class HighlightDataGrid : Inherits Page&lt;br /&gt;&lt;br /&gt;  Protected dtgCustomers As DataGrid&lt;br /&gt;&lt;br /&gt;  Sub Page_Load(Sender As Object, E As System.EventArgs)&lt;br /&gt;    BindTheGrid()&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Sub BindTheGrid()&lt;br /&gt;    Dim sqlConn As New SqlConnection( _&lt;br /&gt;      "server=localhost;database=NorthWind;uid=sa;pwd=secret")&lt;br /&gt;    Dim dtaCustomers As New SqlDataAdapter( _&lt;br /&gt;        "Select CustomerID, CompanyName, ContactName, Phone " _&lt;br /&gt;        &amp; "From Customers", sqlConn)&lt;br /&gt;    Dim dsCustomers As DataSet&lt;br /&gt;&lt;br /&gt;    Try&lt;br /&gt;      dsCustomers = New DataSet()&lt;br /&gt;      dtaCustomers.Fill(dsCustomers)&lt;br /&gt;      dtgCustomers.DataSource = dsCustomers&lt;br /&gt;      dtgCustomers.DataBind()&lt;br /&gt;    Catch SQLEx As SqlException&lt;br /&gt;      Response.Write(SQLEx.Message.ToString())&lt;br /&gt;    Catch Ex As Exception&lt;br /&gt;      Response.Write(Ex.Message.ToString())&lt;br /&gt;    Finally&lt;br /&gt;      sqlConn.Close()&lt;br /&gt;    End Try&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;Kode berikutnya adalah yang secara langsung mengatur highlighting&lt;br /&gt; Sub dtgCustomers_ItemDataBound(sender As Object, e As DataGridItemEventArgs)&lt;br /&gt;    If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType =   &lt;br /&gt;               ListItemType.AlternatingItem Then&lt;br /&gt;      e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='Silver'")&lt;br /&gt;    End If&lt;br /&gt;    If e.Item.ItemType = ListItemType.Item Then&lt;br /&gt;      e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='White'")&lt;br /&gt;    Else&lt;br /&gt;      e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='Yellow'")&lt;br /&gt;    End If&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Sub dtgCustomers_PageIndexChanged(sender As Object, e As DataGridPageChangedEventArgs)&lt;br /&gt;    dtgCustomers.CurrentPageIndex = e.NewPageIndex&lt;br /&gt;    BindTheGrid()&lt;br /&gt;  End Sub&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;Baris dalam blok if pertama menambakan atribut OnMouseOver pada Item dengan mengganti warna background apakan pada ItemTemplate atau AlternatingItemTemplate.&lt;br /&gt;Blok If-Then-Else digunakan untuk melihat apakah ItemTemplate atau AlternatingItemTemplate dan menggunakan atribut OnMouseOut untuk mengganti warna background baris kembali ke setting awal&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111842146078847410?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111842146078847410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111842146078847410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842146078847410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842146078847410'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/highlight-rows-dalam-aspnet-datagrid.html' title='Highlight Rows dalam ASP.NET DataGrid'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841978673233792</id><published>2005-06-10T09:07:00.000-07:00</published><updated>2005-06-10T09:10:45.643-07:00</updated><title type='text'>Bagaimana cara untuk membangun sistem rating yang membolehkan user untuk memberikan rating pada artikel onlinemu dan menampilkan rating secara grafik</title><content type='html'>Interface yang digunakan dalam sistem rating adalah sebagai berikut :&lt;br /&gt;&lt;br /&gt;&amp;lt;table width="0%" border="0" class="basic11pt"&amp;gt;&lt;br /&gt; &amp;lt;tr&amp;gt;&lt;br /&gt;  &amp;lt;td colspan="4"&amp;gt;Rating:&lt;br /&gt;   &amp;lt;asp:image ID="imgRatingApproval" runat="server"&amp;gt;&amp;lt;/asp:image&amp;gt;&lt;br /&gt;   &amp;lt;asp:image ID="imgRatingBlank" runat="server"&amp;gt;&amp;lt;/asp:image&amp;gt;&lt;br /&gt;   &amp;lt;asp:label ID="lblRatingCount" runat="server"&amp;gt;&amp;lt;/asp:label&amp;gt;&lt;br /&gt;    &amp;lt;/td&amp;gt;&lt;br /&gt; &amp;lt;/tr&amp;gt;&lt;br /&gt; &amp;lt;tr&amp;gt;&lt;br /&gt;  &amp;lt;td&amp;gt;poor&amp;lt;/td&amp;gt;&lt;br /&gt;  &amp;lt;td&amp;gt;&amp;lt;asp:radiobuttonlist RepeatLayout="Flow"&lt;br /&gt;  RepeatDirection="Horizontal"&lt;br /&gt;  ID="rblRating"&lt;br /&gt;  runat="server"&amp;gt;&lt;br /&gt;   &amp;lt;asp:listitem Value="1"&amp;gt;1&amp;lt;/asp:listitem&amp;gt;&lt;br /&gt;   &amp;lt;asp:listitem Value="2"&amp;gt;2&amp;lt;/asp:listitem&amp;gt;&lt;br /&gt;   &amp;lt;asp:listitem Value="3" selected="True"&amp;gt;3&amp;lt;/asp:listitem&amp;gt;&lt;br /&gt;   &amp;lt;asp:listitem Value="4"&amp;gt;4&amp;lt;/asp:listitem&amp;gt;&lt;br /&gt;   &amp;lt;asp:listitem Value="5"&amp;gt;5&amp;lt;/asp:listitem&amp;gt;&lt;br /&gt;   &amp;lt;/asp:radiobuttonlist&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;  &amp;lt;td&amp;gt; great&amp;lt;/td&amp;gt;&lt;br /&gt;  &amp;lt;td&amp;gt; &amp;lt;asp:button ID="btnRating"&lt;br /&gt;      OnClick="btnRating_Click"&lt;br /&gt;      runat="server"&lt;br /&gt;      Text="Rate It!" /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt; &amp;lt;/tr&amp;gt;&lt;br /&gt; &amp;lt;tr&amp;gt;&lt;br /&gt;  &amp;lt;td colspan="4"&amp;gt;&amp;lt;asp:label ID="lblRating" runat="server"&amp;gt;&amp;lt;/asp:label&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;Pada event Page_Load definisikan variabelmu dan implementasikan data logic-mu sebagai berikut:&lt;br /&gt; &lt;br /&gt;&amp;lt;script runat="server"&amp;gt;&lt;br /&gt; Private intPageID As Long = [your article ID here]&lt;br /&gt; Sub Page_Load(Src As Object, E As EventArgs)&lt;br /&gt;  Dim intApprovalWidth, intBlankWidth as Integer&lt;br /&gt;  Dim strQuery as string&lt;br /&gt;  Dim strCon As String&lt;br /&gt;  Dim conMyConnection as New System.Data.SqlClient.sqlConnection()&lt;br /&gt;  Dim cmdMyCommand as New System.Data.SqlClient.SqlCommand()&lt;br /&gt;  Dim dtrMyDataReader as System.Data.SqlClient.sqlDataReader&lt;br /&gt;  If Not IsPostback Then&lt;br /&gt;   strCon = System.Configuration.ConfigurationSettings.AppSettings("MyConnectionString")&lt;br /&gt;   conMyConnection.ConnectionString = strCon&lt;br /&gt;   strQuery  = "SELECT SUM(rating) As RatingSum, COUNT(*) As RatingCount "&lt;br /&gt;   strQuery += "FROM tblMyRatings WHERE Itemid=" &amp; intArticleID&lt;br /&gt;   conMyConnection.Open()&lt;br /&gt;   cmdMyCommand.Connection  = conSb&lt;br /&gt;   cmdMyCommand.CommandType = System.Data.CommandType.Text&lt;br /&gt;   cmdMyCommand.CommandText = strQuery&lt;br /&gt;   dtrMyDataReader = cmdMyCommand.ExecuteReader()&lt;br /&gt;   dtrMyDataReader.Read()&lt;br /&gt;   [code for building rating display goes here]&lt;br /&gt;   dtrMyDataReader.Close()&lt;br /&gt;   conMyConnection.Close()&lt;br /&gt;  End If&lt;br /&gt; End Sub&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;Pada event on_click button rating code-nya sebagai berikut:  &lt;br /&gt;&lt;br /&gt; Sub btnRating_Click(Src As Object, E As EventArgs)&lt;br /&gt;  'Variable declarations...&lt;br /&gt;  Dim intApprovalWidth, intBlankWidth as Integer&lt;br /&gt;  Dim strSelectQuery, strInsertQuery as string&lt;br /&gt;  Dim strCon As String&lt;br /&gt;  Dim conMyConnection as New System.Data.SqlClient.sqlConnection()&lt;br /&gt;  Dim cmdMyCommand as New System.Data.SqlClient.SqlCommand()&lt;br /&gt;  Dim dtrMyDataReader as System.Data.SqlClient.sqlDataReader&lt;br /&gt;  Dim MyHttpAppObject As System.Web.HttpContext = System.Web.HttpContext.Current&lt;br /&gt;  Dim strRemoteAddress as String&lt;br /&gt;  Dim intSelectedRating, intCount As Integer&lt;br /&gt;  'Get the user's ip address and cast its type to string...&lt;br /&gt;  strRemoteAddress = Cstr(MyHttpApp.Request.UserHostAddress)&lt;br /&gt;  'Build the query string...&lt;br /&gt;  strSelectQuery  = "SELECT COUNT(*) As RatingCount "&lt;br /&gt;  strSelectQuery += "FROM tbl_Rating WHERE Itemid=" &amp; intArticleID "&lt;br /&gt;  strSelectQuery += " AND ip = '" &amp; strRemoteAddress &amp; "'"&lt;br /&gt;  'Open the connection, and execute the query...&lt;br /&gt;  strCon = System.Configuration.ConfigurationSettings.AppSettings("MyConnectionString")&lt;br /&gt;  conMyConnection.ConnectionString = strCon&lt;br /&gt;  conMyConnection.Open()&lt;br /&gt;  cmdMyCommand.Connection  = conMyConnection&lt;br /&gt;  cmdMyCommand.CommandType = System.Data.CommandType.Text&lt;br /&gt;  cmdMyCommand.CommandText = strSelectQuery&lt;br /&gt;  intCount= cmdMyCommand.ExecuteScalar()&lt;br /&gt;  conMyConnection.Close()'Close the connection to release these resources...&lt;br /&gt;  If intCount = 0 Then 'The user hasn't rated the article before, so perform the insert...&lt;br /&gt;   strInsertQuery  = "INSERT INTO tbl_rating (rating, ip, itemID) "&lt;br /&gt;   strInsertQuery += "VALUES ("&lt;br /&gt;   strInsertQuery += intSelectedRating &amp; ", '"&lt;br /&gt;   strInsertQuery += strRemoteAddress &amp; "', "&lt;br /&gt;   strInsertQuery += intArticleID &amp; "); "&lt;br /&gt;   cmdMyCommand.CommandText = strInsertQuery&lt;br /&gt;   conMyConnection.Open()&lt;br /&gt;   cmdMyCommand.ExecuteNonQuery()&lt;br /&gt;   conMyConnection.Close()&lt;br /&gt;  Else 'The user has rated the article before, so display a message...&lt;br /&gt;   lblRating.Text = "You've already rated this article"&lt;br /&gt;  End If&lt;br /&gt;  strSelectQuery  = "SELECT SUM(rating) As RatingSum, COUNT(*) As RatingCount "&lt;br /&gt;  strSelectQuery += "FROM tbl_Rating WHERE Itemid=" &amp; intPageID&lt;br /&gt;  conMyConnection.Open()&lt;br /&gt;  cmdMyCommand.CommandText = strSelectQuery&lt;br /&gt;  dtrMyDataReader = cmdMyCommand.ExecuteReader()&lt;br /&gt;  dtrMyDataReader.Read()&lt;br /&gt;  lblRatingCount.Text = " / " &amp; dtrKb("RatingCount")&lt;br /&gt;  intApprovalWidth = dtrKb("RatingSum")/dtrKb("RatingCount")*15&lt;br /&gt;  dtrMyDataReader.Close()&lt;br /&gt;  conMyConnection.Close()&lt;br /&gt;  intBlankWidth = 75 - intApprovalWidth&lt;br /&gt;  imgRatingApproval.Width = System.web.ui.webcontrols.unit.pixel(intApprovalWidth)&lt;br /&gt;  imgRatingBlank.Width = System.web.ui.webcontrols.unit.pixel(intBlankWidth)&lt;br /&gt; End Sub&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841978673233792?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841978673233792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841978673233792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841978673233792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841978673233792'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/bagaimana-cara-untuk-membangun-sistem.html' title='Bagaimana cara untuk membangun sistem rating yang membolehkan user untuk memberikan rating pada artikel onlinemu dan menampilkan rating secara grafik'/><author><name>inge_as (202114594)</name><uri>http://www.blogger.com/profile/06101207009058987811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841845805616153</id><published>2005-06-10T08:30:00.000-07:00</published><updated>2005-06-10T08:47:38.063-07:00</updated><title type='text'>Enkripsi Cookies untuk mencegah pembobolan</title><content type='html'>Salah satu solusi untuk mencegah hacker dalam membobol cookies adalah sebagai berikut:&lt;br /&gt;&lt;br /&gt;Bekerja dengan HttpCookieEncryption&lt;br /&gt;&lt;br /&gt;Secara dasar referensikan dll atau termasuk code pada projectmu. Tipe HttpCookieEncryption diturunkan dari &lt;br /&gt;System.Web namespace, sehingga tidak ada extra "usings" atau "imports" yang tidak dipunyai secara default pada project ASP.NET. &lt;br /&gt;&lt;br /&gt;Secara sederhana buat call ke HttpCookieEncryption.Encrypt untuk enkripsi cookie yang dispesifikasikan. &lt;br /&gt;Catat overload yang kedua untuk enkripsi yang sebenarnya memodifikasi response. &lt;br /&gt;&lt;br /&gt;Pada permintaan berikutnya, kamu dapat dekripsi cookie yang dienkripsi dengan memanggil HttpCookieEncryption.Decrypt(). Ini akan menerima cookie yang dispesifikasi dan mengembalikan instance baru dengan nilai dekripsi.&lt;br /&gt;&lt;br /&gt;void Page_Load(object sender,EventArgs e)&lt;br /&gt;{&lt;br /&gt;    HttpCookie myEncryptedCookie =&lt;br /&gt;      HttpCookieEncryption.Decrypt(this.Context,"myEncryptedCookie");&lt;br /&gt;    if(myEncryptedCookie==null)&lt;br /&gt;    {&lt;br /&gt;        //cookie tidak ada, mungkin permintaan pertama,&lt;br /&gt;        // ini secara normal sebuah login redirect atau sesuatu&lt;br /&gt;        HttpCookie test = Response.Cookies["myEncryptedCookie"];&lt;br /&gt;        //always returns an instance&lt;br /&gt;&lt;br /&gt;        test["key1"]="value1";&lt;br /&gt;        test["key2"]="value2";&lt;br /&gt;&lt;br /&gt;        HttpCookieEncryption.Encrypt(this.Context,"myEncryptedCookie");&lt;br /&gt;        //update Response, sehingga panggilan berikutnya untuk nilai cookie akan menghasilkan hex string yang dienkripsi &lt;br /&gt;        //sehingga jika kamu kehilangan referensi ke instance yang didekripsi, hanya panggil HttpCookieEncryption.Decrypt &lt;br /&gt;        HttpCookie decrypted = HttpCookieEncryption.Decrypt(this.Context,&lt;br /&gt;                                                    "myEncryptedCookie");&lt;br /&gt;        //catat bahwa dekripsi tidak pernah update Response Cookie pada memory.&lt;br /&gt;&lt;br /&gt;        if(test["key1"].Equals(decrypted["key1"]) &amp;&amp;&lt;br /&gt;                        test["key2"].Equals(decrypted["key2"]))&lt;br /&gt;            //symmetric algorithm magic&lt;br /&gt;        else&lt;br /&gt;            //should never happen.&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Bagaimana kerjanya&lt;br /&gt;&lt;br /&gt;Bagian paling penting adalah penggunaan ASP.NET yang dibuat pada property MachineKey untuk enkripsi cookie. Property ini digunakan untuk mengurutkan ViewState dan juga digunakan oleh FormsAuthentication.Encrypt untuk enkripsi FormsAuthenticationTicket&lt;br /&gt; &lt;br /&gt;Reflection API  digunakan untuk mendapatkan pointer untuk mengunci method yang digunakan secara internal oleh System.Web API. Class penolong, yang disebut MachineKeyWrapper diciptakan untuk menangani pekerjaan ini seperti yang tampak di bawah ini:&lt;br /&gt;&lt;br /&gt;private static MethodInfo _encOrDecData;&lt;br /&gt;private static MethodInfo _hexStringToByteArray;&lt;br /&gt;private static MethodInfo _byteArrayToHexString;&lt;br /&gt;&lt;br /&gt;static MachineKeyWrapper()&lt;br /&gt;{&lt;br /&gt;    object config = HttpContext.Current.GetConfig("system.web/machineKey");&lt;br /&gt;    Type configType = config.GetType();&lt;br /&gt;&lt;br /&gt;    Type machineKeyType =&lt;br /&gt;         configType.Assembly.GetType("System.Web.Configuration.MachineKey");&lt;br /&gt;    if (machineKeyType == null)&lt;br /&gt;    {&lt;br /&gt;        machineKeyType =&lt;br /&gt;         configType.Assembly.GetType("System.Web.Configuration.MachineKeySection");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    BindingFlags bf = BindingFlags.NonPublic | BindingFlags.Static;&lt;br /&gt;&lt;br /&gt;    _encOrDecData = machineKeyType.GetMethod("EncryptOrDecryptData", bf);&lt;br /&gt;    _hexStringToByteArray = machineKeyType.GetMethod("HexStringToByteArray", bf);&lt;br /&gt;    _byteArrayToHexString = machineKeyType.GetMethod("ByteArrayToHexString", bf);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    if( _encOrDecData==null ||&lt;br /&gt;        _hexStringToByteArray==null || _byteArrayToHexString==null )&lt;br /&gt;    {&lt;br /&gt;        throw new&lt;br /&gt;          InvalidOperationException("Unable to get the methods to invoke.");&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The MachineKeyWrapper then mimics the internal System.Web.MachineKey class:&lt;br /&gt;&lt;br /&gt;public static byte[] HexStringToByteArray(string str)&lt;br /&gt;{&lt;br /&gt;    return (byte[]) _hexStringToByteArray.Invoke(null,&lt;br /&gt;                                new object[] { str });&lt;br /&gt;}&lt;br /&gt;public static string ByteArrayToHexString(byte[] array, int length)&lt;br /&gt;{&lt;br /&gt;    return (string) _byteArrayToHexString.Invoke(null,&lt;br /&gt;                      new object[] { array, length });&lt;br /&gt;}&lt;br /&gt;public static byte[] EncryptOrDecryptData(bool encrypting,&lt;br /&gt;           byte[] data, byte[] mod, int index, int length)&lt;br /&gt;{&lt;br /&gt;    return (byte[])_encOrDecData.Invoke(null,&lt;br /&gt;            new object[] { encrypting, data, mod, index, length });&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841845805616153?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841845805616153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841845805616153' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841845805616153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841845805616153'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/enkripsi-cookies-untuk-mencegah.html' title='Enkripsi Cookies untuk mencegah pembobolan'/><author><name>inge_as (202114594)</name><uri>http://www.blogger.com/profile/06101207009058987811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841679948394302</id><published>2005-06-10T08:11:00.000-07:00</published><updated>2005-06-10T08:19:59.490-07:00</updated><title type='text'>Galeri Foto Dinamik pada ASP.NET and C#</title><content type='html'>Ini adalah dynamic photo galeri. Ini mengijinkanmu untuk membuat galerimu tanpa database, tetapi mendapatkan file dari directory dan mengikat mereka pada data list atau data grid setelah menciptakan thumbnail, popup membaca nama image dan ada file XML dimana deskripsi dapat dibaca untuk setiap image.&lt;br /&gt;Code-nya adalah sebagai berikut (disimpan menjadi showimages.aspx): &lt;br /&gt;&lt;br /&gt;&amp;lt;%@ Page Language="c#" %&amp;gt;&lt;br /&gt;&amp;lt;%@ import Namespace="System.Data" %&amp;gt;&lt;br /&gt;&amp;lt;%@ import Namespace="System.Xml" %&amp;gt;&lt;br /&gt;&amp;lt;%@ Register TagPrefix="mbsp" Namespace="MetaBuilders.WebControls" Assembly="MetaBuilders.WebControls.ScrollingPanel" %&amp;gt;&lt;br /&gt;&amp;lt;script runat="server"&amp;gt;&lt;br /&gt;DataSet m_dsPictures_Sections;&lt;br /&gt;private void Page_Load(Object sender, EventArgs E) {&lt;br /&gt;m_dsPictures_Sections=(DataSet)Cache["Picture_Cache"];&lt;br /&gt;if(m_dsPictures_Sections==null)&lt;br /&gt;{&lt;br /&gt;m_dsPictures_Sections= new DataSet();&lt;br /&gt;m_dsPictures_Sections.ReadXml(Server.MapPath("Pictures.xml"));&lt;br /&gt;Cache.Insert("Picture_Cache",m_dsPictures_Sections,new CacheDependency(Server.MapPath("Pictures.xml")));&lt;br /&gt;}&lt;br /&gt;if (adminFeatures()==true) {adminPanel.Visible=true;}&lt;br /&gt;&lt;br /&gt;GenerateFilmStrip();&lt;br /&gt;}&lt;br /&gt;public void GenerateFilmStrip()&lt;br /&gt;{&lt;br /&gt;string m_strTableName, m_strFileName, m_strEvent, m_strYear;&lt;br /&gt;m_strTableName=Request.QueryString["event_images"].ToString();&lt;br /&gt;m_strYear=m_strTableName.Substring(m_strTableName.Length-4, 4);&lt;br /&gt;m_strEvent=m_strTableName.Substring(0, m_strTableName.LastIndexOf("-"));&lt;br /&gt;&lt;br /&gt;for (int i=0; m_dsPictures_Sections.Tables[m_strTableName].Rows.Count-1&amp;gt;=i; i++)&lt;br /&gt;{&lt;br /&gt;m_strFileName=m_dsPictures_Sections.Tables[m_strTableName].Rows[i]["Filename"].ToString();&lt;br /&gt;m_strFileName=(m_strFileName.Substring(0, m_strFileName.LastIndexOf('.')))+"_t"+&lt;br /&gt;(m_strFileName.Substring(m_strFileName.LastIndexOf('.'),&lt;br /&gt;(m_strFileName.Length-m_strFileName.LastIndexOf('.'))));&lt;br /&gt;&lt;br /&gt;ImageButton m_cImage=new ImageButton();&lt;br /&gt;&lt;br /&gt;m_cImage.ImageUrl="./Images/"+m_strYear+"/"+m_strEvent+"/"+m_strFileName;&lt;br /&gt;m_cImage.Click+= new System.Web.UI.ImageClickEventHandler(Thumbnail_Click);&lt;br /&gt;m_cPanel.Controls.Add(m_cImage);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void Thumbnail_Click(object sender, System.Web.UI.ImageClickEventArgs e)&lt;br /&gt;{&lt;br /&gt; string m_strRealFilename, strRef, m_strTableName, m_strCommentTmp, m_strCmt, m_strComments_Storage;&lt;br /&gt; &lt;br /&gt; m_strTableName=m_strTableName=Request.QueryString["event_images"].ToString();&lt;br /&gt; m_strRealFilename=((ImageButton)sender).ImageUrl;&lt;br /&gt; m_strRealFilename=m_strRealFilename.Substring(0,m_strRealFilename.LastIndexOf('_'))+m_strRealFilename.Substring(m_strRealFilename.LastIndexOf('.'),m_strRealFilename.Length-m_strRealFilename.LastIndexOf('.'));&lt;br /&gt; strRef=m_strRealFilename.Substring(m_strRealFilename.LastIndexOf("/"),m_strRealFilename.Length-m_strRealFilename.LastIndexOf("/"));&lt;br /&gt; strRef=strRef.Substring(1,strRef.Length-1);&lt;br /&gt; m_strAuthor.Text=strRef;&lt;br /&gt; for (int i=0; m_dsPictures_Sections.Tables[m_strTableName].Rows.Count-1&amp;gt;=i; i++)&lt;br /&gt; {&lt;br /&gt;if (m_dsPictures_Sections.Tables[m_strTableName].Rows[i]["Filename"].ToString()==strRef)&lt;br /&gt;{&lt;br /&gt;m_strAuthor.Text=m_dsPictures_Sections.Tables[m_strTableName].Rows[i]["Author"].ToString();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;if (sInfo.GetUserInfo("strName",Context.User.Identity.Name)==m_strAuthor.Text)&lt;br /&gt;{&lt;br /&gt;adminPanel.Visible=true;&lt;br /&gt;}&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;m_strMain_Image.ImageUrl=m_strRealFilename;&lt;br /&gt;string tmpStr=((ImageButton)sender).ImageUrl;&lt;br /&gt;tmpStr=tmpStr.Replace("_t.",".");&lt;br /&gt;m_cAdminDel.CommandName=tmpStr.Substring(tmpStr.LastIndexOf("/")+1,tmpStr.Length-1-tmpStr.LastIndexOf("/"));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;string GetXML(string sTag, string eTag, string Contents)&lt;br /&gt;{&lt;br /&gt;int nStart=Contents.IndexOf(sTag,0);&lt;br /&gt;nStart+=(sTag.Length-1)+1;&lt;br /&gt;int nEnd=Contents.IndexOf(eTag,nStart);&lt;br /&gt;return Contents.Substring(nStart, nEnd-nStart);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected bool adminFeatures()&lt;br /&gt;{&lt;br /&gt;if (ACCESS=="admin")&lt;br /&gt;return true;&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void adminDel(object sender, System.Web.UI.ImageClickEventArgs e)&lt;br /&gt;{&lt;br /&gt;string m_strTableName;&lt;br /&gt;m_strTableName=m_strTableName=Request.QueryString["event_images"].ToString();&lt;br /&gt;for (int i=0; m_dsPictures_Sections.Tables[m_strTableName].Rows.Count-1&amp;gt;=i; i++)&lt;br /&gt;{&lt;br /&gt;if (m_dsPictures_Sections.Tables[m_strTableName].Rows[i]["Filename"].ToString()==((ImageButton)sender).CommandName)&lt;br /&gt;{&lt;br /&gt;string fName=Server.MapPath(m_strMain_Image.ImageUrl);&lt;br /&gt;&lt;br /&gt;System.IO.File.Delete(fName);&lt;br /&gt;System.IO.File.Delete(fName.Replace(".", "_t."));&lt;br /&gt;m_dsPictures_Sections.Tables[m_strTableName].Rows[i].Delete();&lt;br /&gt;m_dsPictures_Sections.Tables[m_strTableName].AcceptChanges();&lt;br /&gt;m_dsPictures_Sections.WriteXml(Server.MapPath("Pictures.xml"));&lt;br /&gt;Response.Redirect("ShowImages.aspx?event_images="+m_strTableName);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;void LogOut(Object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;    FormsAuthentication.SignOut();&lt;br /&gt;    Response.Redirect("Default.aspx");&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;NCCUMC Youth Conference: View Images&amp;lt;/title&amp;gt;&amp;lt;LINK href="global.css" type="text/css" rel="StyleSheet"&amp;gt;&lt;br /&gt;&amp;lt;META name="keywords" content="View Images"&amp;gt;&lt;br /&gt;&amp;lt;META name="description" content="UMYFEvents.com: View Images"&amp;gt;&lt;br /&gt;&amp;lt;meta name="author" content="Steven Hicks, support@404Browser.com"&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;form enctype="multipart/form-data" runat="server"&amp;gt;&lt;br /&gt;&amp;lt;div align="center"&amp;gt;&lt;br /&gt;&amp;lt;asp:Image id="m_strMain_Image" runat="server" /&amp;gt;&lt;br /&gt;&amp;lt;asp:Panel ID="adminPanel" Runat="server" Visible="False"&amp;gt;&lt;br /&gt;&amp;lt;asp:ImageButton ID="m_cAdminDel" ImageUrl="./Images/adminDel.png" OnClick="adminDel" Runat="server"&amp;gt;&amp;lt;/asp:ImageButton&amp;gt;&lt;br /&gt;&amp;lt;/asp:Panel&amp;gt;&lt;br /&gt;&amp;lt;br&amp;gt;&lt;br /&gt;Submited By:&lt;br /&gt;&amp;lt;asp:Label ID="m_strAuthor" Runat="server"&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;mbsp:ScrollingPanel ScrollbarVisibility="Visible" Width="600" id="m_cPanel" wrap="False" runat="server" /&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841679948394302?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841679948394302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841679948394302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841679948394302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841679948394302'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/galeri-foto-dinamik-pada-aspnet-and-c.html' title='Galeri Foto Dinamik pada ASP.NET and C#'/><author><name>inge_as (202114594)</name><uri>http://www.blogger.com/profile/06101207009058987811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111842143366741309</id><published>2005-06-10T07:58:00.001-07:00</published><updated>2005-06-10T09:37:13.673-07:00</updated><title type='text'>Mengembalikan multiple resultset dengan data reader</title><content type='html'>Misalkan kita hendak membuat halaman entry dengan 35 kolom, 10 diantaranya adalah dropdownlist. Maka akan sangat tidak efisien karena terlalu banyak coding, ke database 10 kali untuk mendapatkan nilai untuk DropDownList.&lt;br /&gt;&lt;br /&gt;Ada metode untuk dataReader yaitu NextResult, yang memungkinkan untuk melakukan batch query (multiple SELECT statement dalam satu string), yang membutuhkan hanya sekali jalan ke database, kemudian dengan NextResult mengakses setiap result set untuk mengambil data.&lt;br /&gt;&lt;br /&gt;Untuk memperjelas teknik ini, diberikan contoh dengan select dari empat buah tabel yang berbeda pada database Northwind.&lt;br /&gt;&lt;br /&gt;Berikut adalah .aspx nya :&lt;br /&gt;&amp;lt;%@ Page Language="vb" Src="ManyResults.aspx.vb" Inherits="DotNetJohn.ManyResults"% &amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" &amp;gt;&lt;br /&gt;&amp;lt;html &amp;gt;&lt;br /&gt;&amp;lt;head &amp;gt;&lt;br /&gt;&amp;lt;title &amp;gt;ManyResults&amp;lt;/title &amp;gt;&lt;br /&gt;&amp;lt;meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0" &amp;gt;&lt;br /&gt;&amp;lt;meta name="CODE_LANGUAGE" content="Visual Basic 7.0" &amp;gt;&lt;br /&gt;&amp;lt;meta name=vs_defaultClientScript content="JavaScript" &amp;gt;&lt;br /&gt;&amp;lt;meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5" &amp;gt;&lt;br /&gt;&amp;lt;/head &amp;gt;&lt;br /&gt;&amp;lt;body &amp;gt;&lt;br /&gt;&amp;lt;form id="Form1" method="post" runat="server" &amp;gt;&lt;br /&gt;&amp;lt;table &amp;gt;&lt;br /&gt;   &amp;lt;tr &amp;gt;&lt;br /&gt;     &amp;lt;td bgcolor="#EEEEEE" align="right" &amp;gt;Category Name:&amp;lt;/td &amp;gt;&lt;br /&gt;     &amp;lt;td &amp;gt;&amp;lt;asp:DropDownList ID="ddlCategoryName" Runat="server" / &amp;gt;&amp;lt;/td &amp;gt;&lt;br /&gt;   &amp;lt;/tr &amp;gt;&lt;br /&gt;   &amp;lt;tr &amp;gt;&lt;br /&gt;     &amp;lt;td bgcolor="#EEEEEE" align="right" &amp;gt;Company Name:&amp;lt;/td &amp;gt;&lt;br /&gt;     &amp;lt;td &amp;gt;&amp;lt;asp:DropDownList ID="ddlCompanyName" Runat="server" / &amp;gt;&amp;lt;/td &amp;gt;&lt;br /&gt;   &amp;lt;/tr &amp;gt;&lt;br /&gt;   &amp;lt;tr &amp;gt;&lt;br /&gt;     &amp;lt;td bgcolor="#EEEEEE" align="right" &amp;gt;Last Name:&amp;lt;/td &amp;gt;&lt;br /&gt;     &amp;lt;td &amp;gt;&amp;lt;asp:DropDownList ID="ddlLastName" Runat="server" / &amp;gt;&amp;lt;/td &amp;gt;&lt;br /&gt;   &amp;lt;/tr &amp;gt;&lt;br /&gt;   &amp;lt;tr &amp;gt;&lt;br /&gt;     &amp;lt;td bgcolor="#EEEEEE" align="right" &amp;gt;Product Name:&amp;lt;/td &amp;gt;&lt;br /&gt;     &amp;lt;td &amp;gt;&amp;lt;asp:DropDownList ID="ddlProductName" Runat="server" / &amp;gt;&amp;lt;/td &amp;gt;&lt;br /&gt;   &amp;lt;/tr &amp;gt;&lt;br /&gt;&amp;lt;/table &amp;gt;&lt;br /&gt;&amp;lt;/form &amp;gt;&lt;br /&gt;&amp;lt;/body &amp;gt;&lt;br /&gt;&amp;lt;/html &amp;gt;&lt;br /&gt;&lt;br /&gt;Berikut adalah kode class nya :&lt;br /&gt;Imports System&lt;br /&gt;Imports System.Web.UI.WebControls&lt;br /&gt;Imports System.Data&lt;br /&gt;Imports System.Data.SqlClient&lt;br /&gt;Imports System.Configuration&lt;br /&gt;&lt;br /&gt;NameSpace DotNetJohn&lt;br /&gt;&lt;br /&gt;   Public Class ManyResults : Inherits System.Web.UI.Page&lt;br /&gt;&lt;br /&gt;     Protected ddlCategoryName As DropDownList&lt;br /&gt;     Protected ddlCompanyName As DropDownList&lt;br /&gt;     Protected ddlLastName As DropDownList&lt;br /&gt;     Protected ddlProductName As DropDownList&lt;br /&gt;&lt;br /&gt;     Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load&lt;br /&gt;&lt;br /&gt;       Dim objConn As SqlConnection&lt;br /&gt;       Dim objCmd As SqlCommand&lt;br /&gt;       Dim dataReader As SqlDataReader&lt;br /&gt;       Dim strSql As String&lt;br /&gt;&lt;br /&gt;       objConn = New SqlConnection(ConfigurationSettings.AppSettings.Get("ConnectionString"))&lt;br /&gt;       strSql = _&lt;br /&gt;         "SELECT CategoryName FROM Categories ORDER BY CategoryName;" _&lt;br /&gt;       &amp; "SELECT Top 10 CompanyName FROM Customers ORDER BY CompanyName;" _&lt;br /&gt;       &amp; "SELECT LastName FROM Employees ORDER BY LastName;" _&lt;br /&gt;       &amp; "SELECT Top 10 ProductName FROM Products ORDER BY ProductName;"&lt;br /&gt;&lt;br /&gt;       objCmd = New SqlCommand(strSql, objConn)&lt;br /&gt;       Try&lt;br /&gt;         objConn.Open()&lt;br /&gt;         dataReader = objCmd.ExecuteReader()&lt;br /&gt;         'CategoryName&lt;br /&gt;         With ddlCategoryName&lt;br /&gt;           .DataSource = dataReader&lt;br /&gt;           .DataTextField = "CategoryName"&lt;br /&gt;           .DataValueField = "CategoryName"&lt;br /&gt;           .DataBind()&lt;br /&gt;         End With&lt;br /&gt;         'CompanyName&lt;br /&gt;         dataReader.NextResult()&lt;br /&gt;         With ddlCompanyName&lt;br /&gt;           .DataSource = dataReader&lt;br /&gt;           .DataTextField = "CompanyName"&lt;br /&gt;           .DataValueField = "CompanyName"&lt;br /&gt;           .DataBind()&lt;br /&gt;         End With&lt;br /&gt;         'LastName&lt;br /&gt;         dataReader.NextResult()&lt;br /&gt;         With ddlLastName&lt;br /&gt;           .DataSource = dataReader&lt;br /&gt;           .DataTextField = "LastName"&lt;br /&gt;           .DataValueField = "LastName"&lt;br /&gt;           .DataBind()&lt;br /&gt;         End With&lt;br /&gt;         'ProductName&lt;br /&gt;         &lt;span style="color: rgb(51, 102, 255);"&gt;dataReader.NextResult()&lt;/span&gt;&lt;br /&gt;         With ddlProductName&lt;br /&gt;           .DataSource = dataReader&lt;br /&gt;           .DataTextField = "ProductName"&lt;br /&gt;           .DataValueField = "ProductName"&lt;br /&gt;           .DataBind()&lt;br /&gt;         End With&lt;br /&gt;       Catch exc As Exception&lt;br /&gt;         Response.Write(exc)&lt;br /&gt;       Finally&lt;br /&gt;         If Not dataReader Is Nothing Then&lt;br /&gt;           dataReader.Close()&lt;br /&gt;         End If&lt;br /&gt;         objCmd = Nothing&lt;br /&gt;         If objConn.State = ConnectionState.Open Then&lt;br /&gt;           objConn.Close()&lt;br /&gt;         End If&lt;br /&gt;         objConn.Dispose()&lt;br /&gt;       End Try&lt;br /&gt;&lt;br /&gt;     End Sub&lt;br /&gt;&lt;br /&gt;   End Class&lt;br /&gt;&lt;br /&gt;End NameSpace&lt;br /&gt;&lt;br /&gt;Tampak begitu mudah dan sederhana untuk memperoleh beberapa resultset sekali jalan ke server database dan mengakses resultset satu persatu untuk memperoleh data yang diperlukan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111842143366741309?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111842143366741309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111842143366741309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842143366741309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842143366741309'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/mengembalikan-multiple-res_111842143366741309.html' title='Mengembalikan multiple resultset dengan data reader'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111842068702612774</id><published>2005-06-10T07:58:00.000-07:00</published><updated>2005-06-10T09:24:47.033-07:00</updated><title type='text'>Mengembalikan multiple resultset dengan data reader</title><content type='html'>Misalkan kita hendak membuat halaman entry dengan 35 kolom, 10 diantaranya adalah dropdownlist. Maka akan sangat tidak efisien karena terlalu banyak coding, ke database 10 kali untuk mendapatkan nilai untuk DropDownList.&lt;br /&gt;&lt;br /&gt;Ada metode untuk dataReader yaitu NextResult, yang memungkinkan untuk melakukan batch query (multiple SELECT statement dalam satu string), yang membutuhkan hanya sekali jalan ke database, kemudian dengan NextResult mengakses setiap result set untuk mengambil data.&lt;br /&gt;&lt;br /&gt;Untuk memperjelas teknik ini, diberikan contoh dengan select dari empat buah tabel yang berbeda pada database Northwind.&lt;br /&gt;&lt;br /&gt;Berikut adalah .aspx nya :&lt;br /&gt;&amp;lt;%@ Page Language="vb" Src="ManyResults.aspx.vb" Inherits="DotNetJohn.ManyResults"% &amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" &amp;gt;&lt;br /&gt;&amp;lt;html &amp;gt;&lt;br /&gt;&amp;lt;head &amp;gt;&lt;br /&gt;&amp;lt;title &amp;gt;ManyResults&amp;lt;/title &amp;gt;&lt;br /&gt;&amp;lt;meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0" &amp;gt;&lt;br /&gt;&amp;lt;meta name="CODE_LANGUAGE" content="Visual Basic 7.0" &amp;gt;&lt;br /&gt;&amp;lt;meta name=vs_defaultClientScript content="JavaScript" &amp;gt;&lt;br /&gt;&amp;lt;meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5" &amp;gt;&lt;br /&gt;&amp;lt;/head &amp;gt;&lt;br /&gt;&amp;lt;body &amp;gt;&lt;br /&gt;&amp;lt;form id="Form1" method="post" runat="server" &amp;gt;&lt;br /&gt;&amp;lt;table &amp;gt;&lt;br /&gt;   &amp;lt;tr &amp;gt;&lt;br /&gt;     &amp;lt;td bgcolor="#EEEEEE" align="right" &amp;gt;Category Name:&amp;lt;/td &amp;gt;&lt;br /&gt;     &amp;lt;td &amp;gt;&amp;lt;asp:DropDownList ID="ddlCategoryName" Runat="server" / &amp;gt;&amp;lt;/td &amp;gt;&lt;br /&gt;   &amp;lt;/tr &amp;gt;&lt;br /&gt;   &amp;lt;tr &amp;gt;&lt;br /&gt;     &amp;lt;td bgcolor="#EEEEEE" align="right" &amp;gt;Company Name:&amp;lt;/td &amp;gt;&lt;br /&gt;     &amp;lt;td &amp;gt;&amp;lt;asp:DropDownList ID="ddlCompanyName" Runat="server" / &amp;gt;&amp;lt;/td &amp;gt;&lt;br /&gt;   &amp;lt;/tr &amp;gt;&lt;br /&gt;   &amp;lt;tr &amp;gt;&lt;br /&gt;     &amp;lt;td bgcolor="#EEEEEE" align="right" &amp;gt;Last Name:&amp;lt;/td &amp;gt;&lt;br /&gt;     &amp;lt;td &amp;gt;&amp;lt;asp:DropDownList ID="ddlLastName" Runat="server" / &amp;gt;&amp;lt;/td &amp;gt;&lt;br /&gt;   &amp;lt;/tr &amp;gt;&lt;br /&gt;   &amp;lt;tr &amp;gt;&lt;br /&gt;     &amp;lt;td bgcolor="#EEEEEE" align="right" &amp;gt;Product Name:&amp;lt;/td &amp;gt;&lt;br /&gt;     &amp;lt;td &amp;gt;&amp;lt;asp:DropDownList ID="ddlProductName" Runat="server" / &amp;gt;&amp;lt;/td &amp;gt;&lt;br /&gt;   &amp;lt;/tr &amp;gt;&lt;br /&gt;&amp;lt;/table &amp;gt;&lt;br /&gt;&amp;lt;/form &amp;gt;&lt;br /&gt;&amp;lt;/body &amp;gt;&lt;br /&gt;&amp;lt;/html &amp;gt;&lt;br /&gt;&lt;br /&gt;Berikut adalah kode class nya :&lt;br /&gt;Imports System&lt;br /&gt;Imports System.Web.UI.WebControls&lt;br /&gt;Imports System.Data&lt;br /&gt;Imports System.Data.SqlClient&lt;br /&gt;Imports System.Configuration&lt;br /&gt;&lt;br /&gt;NameSpace DotNetJohn&lt;br /&gt;&lt;br /&gt;   Public Class ManyResults : Inherits System.Web.UI.Page&lt;br /&gt;&lt;br /&gt;     Protected ddlCategoryName As DropDownList&lt;br /&gt;     Protected ddlCompanyName As DropDownList&lt;br /&gt;     Protected ddlLastName As DropDownList&lt;br /&gt;     Protected ddlProductName As DropDownList&lt;br /&gt;&lt;br /&gt;     Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load&lt;br /&gt;&lt;br /&gt;       Dim objConn As SqlConnection&lt;br /&gt;       Dim objCmd As SqlCommand&lt;br /&gt;       Dim dataReader As SqlDataReader&lt;br /&gt;       Dim strSql As String&lt;br /&gt;&lt;br /&gt;       objConn = New SqlConnection(ConfigurationSettings.AppSettings.Get("ConnectionString"))&lt;br /&gt;       strSql = _&lt;br /&gt;         "SELECT CategoryName FROM Categories ORDER BY CategoryName;" _&lt;br /&gt;       &amp; "SELECT Top 10 CompanyName FROM Customers ORDER BY CompanyName;" _&lt;br /&gt;       &amp; "SELECT LastName FROM Employees ORDER BY LastName;" _&lt;br /&gt;       &amp; "SELECT Top 10 ProductName FROM Products ORDER BY ProductName;"&lt;br /&gt;&lt;br /&gt;       objCmd = New SqlCommand(strSql, objConn)&lt;br /&gt;       Try&lt;br /&gt;         objConn.Open()&lt;br /&gt;         dataReader = objCmd.ExecuteReader()&lt;br /&gt;         'CategoryName&lt;br /&gt;         With ddlCategoryName&lt;br /&gt;           .DataSource = dataReader&lt;br /&gt;           .DataTextField = "CategoryName"&lt;br /&gt;           .DataValueField = "CategoryName"&lt;br /&gt;           .DataBind()&lt;br /&gt;         End With&lt;br /&gt;         'CompanyName&lt;br /&gt;         dataReader.NextResult()&lt;br /&gt;         With ddlCompanyName&lt;br /&gt;           .DataSource = dataReader&lt;br /&gt;           .DataTextField = "CompanyName"&lt;br /&gt;           .DataValueField = "CompanyName"&lt;br /&gt;           .DataBind()&lt;br /&gt;         End With&lt;br /&gt;         'LastName&lt;br /&gt;         dataReader.NextResult()&lt;br /&gt;         With ddlLastName&lt;br /&gt;           .DataSource = dataReader&lt;br /&gt;           .DataTextField = "LastName"&lt;br /&gt;           .DataValueField = "LastName"&lt;br /&gt;           .DataBind()&lt;br /&gt;         End With&lt;br /&gt;         'ProductName&lt;br /&gt;         &lt;span style="color: rgb(51, 102, 255);"&gt;dataReader.NextResult()&lt;/span&gt;&lt;br /&gt;         With ddlProductName&lt;br /&gt;           .DataSource = dataReader&lt;br /&gt;           .DataTextField = "ProductName"&lt;br /&gt;           .DataValueField = "ProductName"&lt;br /&gt;           .DataBind()&lt;br /&gt;         End With&lt;br /&gt;       Catch exc As Exception&lt;br /&gt;         Response.Write(exc)&lt;br /&gt;       Finally&lt;br /&gt;         If Not dataReader Is Nothing Then&lt;br /&gt;           dataReader.Close()&lt;br /&gt;         End If&lt;br /&gt;         objCmd = Nothing&lt;br /&gt;         If objConn.State = ConnectionState.Open Then&lt;br /&gt;           objConn.Close()&lt;br /&gt;         End If&lt;br /&gt;         objConn.Dispose()&lt;br /&gt;       End Try&lt;br /&gt;&lt;br /&gt;     End Sub&lt;br /&gt;&lt;br /&gt;   End Class&lt;br /&gt;&lt;br /&gt;End NameSpace&lt;br /&gt;&lt;br /&gt;Tampak begitu mudah dan sederhana untuk memperoleh beberapa resultset sekali jalan ke server database dan mengakses resultset satu persatu untuk memperoleh data yang diperlukan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111842068702612774?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111842068702612774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111842068702612774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842068702612774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111842068702612774'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/mengembalikan-multiple-resultset.html' title='Mengembalikan multiple resultset dengan data reader'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841545584308248</id><published>2005-06-10T07:53:00.000-07:00</published><updated>2005-06-10T07:57:35.850-07:00</updated><title type='text'>Debugging ASP.NET dengan Notepad</title><content type='html'>Cara paling sederhana untuk debugging adalah set Debug="True" yaitu dengan&lt;br /&gt;&amp;lt; @ Page Debug="True" % &amp;gt;&lt;br /&gt;&lt;br /&gt;Tracing menyediakan banyak informasi tentang bagaimana halaman diproses dan apa yang terjadi selama pemrosesan.&lt;br /&gt;Beberapa informasi yang ditampilkan :&lt;br /&gt;1.Request Details&lt;br /&gt;  Bagaimana request dikirimkan (secara GET/POST)&lt;br /&gt;2.Trace Information&lt;br /&gt;  Menampilkan setiap event yang terjadi pada halaman dan berapa lama event itu berlangsung.&lt;br /&gt;3.Control Tree&lt;br /&gt;  Menampilkan semua control di halaman, apa saja dan ukurannya, serta jumlah viewstate yang dipakai&lt;br /&gt;4.Cookies Collection&lt;br /&gt;  Cookie apapun, nilai dan ukurannya&lt;br /&gt;5.Headers Collection&lt;br /&gt;  Header yang ditampilkan beserta halaman&lt;br /&gt;6.Server Variables&lt;br /&gt;  Semua variabel server, yang dapat digunakan untuk informasi nama server, port&lt;br /&gt;7.Form Collection&lt;br /&gt;  Daftar variabel POST yang dikirimkan maupun diterima&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;Trace.Write&lt;/span&gt;&lt;br /&gt;  Gunakan metode ini untuk menuliskan informasi pada trace log&lt;br /&gt;    Trace.Write ("Quick Ref","Test Trace")&lt;br /&gt;&lt;br /&gt;  Ini juga dapat digunakan untuk dengan cepat mencetak nilai string&lt;br /&gt;&lt;br /&gt;  Sub page_load(sender as object, e as EventArgs)&lt;br /&gt;    ds.ReadXML(Server.MapPath("bind.xml"))&lt;br /&gt;    dg.DataSource = ds.Tables(0)&lt;br /&gt;    Trace.Write("Page_Load", "Datagrid datasource - " &amp; dg.DataSource.ToString)&lt;br /&gt;    dg.DataBind()&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Sub dg_itemcreate(sender as object, e as DataGridItemEventArgs)&lt;br /&gt;  If e.item.itemtype = ListItemType.Item OR&lt;br /&gt;&lt;br /&gt;    e.item.itemtype = ListItemType.AlternatingItem Then&lt;br /&gt;    Dim dv as new DataView(ds.Tables(2))&lt;br /&gt;    Dim lbltxt As ListBox = CType(e.Item.FindControl("lbltxt"), ListBox)&lt;br /&gt;    dv.RowFilter = "developers_Id = '" &amp;&lt;br /&gt;&lt;br /&gt;    ds.Tables(0).Rows(e.item.itemindex)(2).ToString &amp; "'"&lt;br /&gt;    lbltxt.DataSource = dv&lt;br /&gt;    lbltxt.DataTextField = "developer_Text"&lt;br /&gt;    lbltxt.DataBind()&lt;br /&gt;    Trace.Write("DG", "Listbox Created")&lt;br /&gt;  End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;Menuliskan string&lt;/span&gt;&lt;br /&gt;Terkadang cara paling efektif untuk debug adalah mencetak string yang mungkin menyebabkan error,kita semua pasti pernah ya :)&lt;br /&gt;Ini termasuk cara efektif, tanpa harus menyalakan Trace dan mencetak Trace Log&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CLR Debugger&lt;/span&gt;&lt;br /&gt;CLR Debugger terletak  [.NET Framework install path]\FrameworkSDK\GuiDebug yang tampak seperti ini&lt;br /&gt;l:\program files\Microsoft.NET\FrameworkSDK\GuiDebug&lt;br /&gt;Untuk melakukannya, load debugger dan buka file yang akan di-debug.&lt;br /&gt;&lt;br /&gt;Goto -&lt;br /&gt;&lt;br /&gt;Tools -&gt; Debug Process&lt;br /&gt;Kemudian cari proses aspnet_wp.exe dan attach&lt;br /&gt;Kemudian tentukan Breakpoint dalam kode dan jalankan&lt;br /&gt;&lt;br /&gt;Tool ini sepert lite-VS.NET Debugger. Fitur lain yang dapat digunakan dialog Exceptions, dimana kita dapat memilih exception yang mau di-baypass&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841545584308248?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841545584308248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841545584308248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841545584308248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841545584308248'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/debugging-aspnet-dengan-notepad.html' title='Debugging ASP.NET dengan Notepad'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841536096546204</id><published>2005-06-10T07:41:00.000-07:00</published><updated>2005-06-10T07:56:00.973-07:00</updated><title type='text'>Enchanced List Box</title><content type='html'>&lt;span style="color:#3366ff;"&gt;Method ini digunakan untuk memindahkan semua items dari listbox sumber ke listbox tujuan&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;private void AddRemoveAll(ListBox aSource, ListBox aTarget)&lt;br /&gt; {&lt;br /&gt;  try&lt;br /&gt;  {&lt;br /&gt;   foreach(ListItem item in aSource.Items)&lt;br /&gt;   aTarget.Items.Add(item);&lt;br /&gt;   aSource.Items.Clear();&lt;br /&gt;  }&lt;br /&gt;  catch(Exception expException)&lt;br /&gt;  {&lt;br /&gt;    Response.Write(expException.Message);&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;Method ini digunakan untuk memindahkan item tertentu dari listbox sumber ke listbox tujuan&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;private void AddRemoveItem(ListBox aSource, ListBox aTarget)&lt;br /&gt; {&lt;br /&gt;  ListItemCollection licCollection;&lt;br /&gt;  try&lt;br /&gt;  {&lt;br /&gt;     licCollection = new ListItemCollection();&lt;br /&gt;  for(int intCount=0;intCount &lt; aSource.Items.Count;intCount++)&lt;br /&gt;     {&lt;br /&gt;        if(aSource.Items[intCount].Selected==true)&lt;br /&gt;     licCollection.Add(aSource.Items[intCount]);&lt;br /&gt;   }&lt;br /&gt;   for(int intCount=0;intCount &lt; licCollection.Count;intCount++)&lt;br /&gt;   {&lt;br /&gt;        aSource.Items.Remove(licCollection[intCount]);&lt;br /&gt;     aTarget.Items.Add(licCollection[intCount]);&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  catch(Exception expException)&lt;br /&gt;  {&lt;br /&gt;     Response.Write(expException.Message);&lt;br /&gt;  }&lt;br /&gt;  finally&lt;br /&gt;  {&lt;br /&gt;     licCollection = null;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;Method ini digunakan untuk menggeser posisi item ke atas&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;private void private void MoveUp(ListBox lstBox)&lt;br /&gt; {&lt;br /&gt;  int   iIndex, iCount, iOffset, iInsertAt,iIndexSelectedMarker = -1;&lt;br /&gt;  string lItemData,lItemval;&lt;br /&gt;&lt;br /&gt;  try&lt;br /&gt;   {&lt;br /&gt;  // Get the count of items in the list control&lt;br /&gt;  iCount = lstBox.Items.Count;&lt;br /&gt;      &lt;br /&gt;  // Set the base loop index and the increment/decrement value based&lt;br /&gt;  // on the direction the item are being moved (up or down).&lt;br /&gt;  iIndex = 0;&lt;br /&gt;  iOffset = -1;&lt;br /&gt;  // Loop through all of the items in the list.&lt;br /&gt;  while(iIndex &lt; iCount)&lt;br /&gt;   {&lt;br /&gt;    // Check if this item is selected.&lt;br /&gt;    if(lstBox.SelectedIndex &gt; 0)&lt;br /&gt;    {&lt;br /&gt;    // Get the item data for this item&lt;br /&gt;     lItemval =lstBox.SelectedItem.Value.ToString();&lt;br /&gt;    lItemData = lstBox.SelectedItem.Text.ToString() ;&lt;br /&gt;    iIndexSelectedMarker=lstBox.SelectedIndex;&lt;br /&gt;     &lt;br /&gt;    // Don't move selected items past other selected items&lt;br /&gt;       if(-1 != iIndexSelectedMarker)&lt;br /&gt;       {&lt;br /&gt;         for(int iIndex2 = 0; iIndex2 &lt; iCount; ++iIndex2)&lt;br /&gt;      {&lt;br /&gt;        // Find the index of this item in enabled list&lt;br /&gt;            if(lItemval == lstBox.Items[iIndex2].Value.ToString())&lt;br /&gt;         {&lt;br /&gt;          &lt;br /&gt;          // Remove the item from its current position&lt;br /&gt;             lstBox.Items.RemoveAt(iIndex2); &lt;br /&gt;            &lt;br /&gt;      // Reinsert the item in the array one space higher&lt;br /&gt;             // than its previous position&lt;br /&gt;             iInsertAt=(iIndex2 + iOffset)&lt;0?0:iIndex2+iOffset;&lt;br /&gt;             ListItem li= new ListItem(lItemData,lItemval);&lt;br /&gt;          lstBox.Items.Insert(iInsertAt,li);&lt;br /&gt;          break;&lt;br /&gt;         }&lt;br /&gt;        }&lt;br /&gt;        }&lt;br /&gt;     }&lt;br /&gt;           &lt;br /&gt;     // If this item wasn't selected save the index so we can check&lt;br /&gt;        // it later so we don't move past the any selected items.&lt;br /&gt;        else if(-1 == iIndexSelectedMarker)&lt;br /&gt;        {&lt;br /&gt;         iIndexSelectedMarker = iIndex; &lt;br /&gt;       break;&lt;br /&gt;     }&lt;br /&gt;      iIndex = iIndex + 1;&lt;br /&gt;    }&lt;br /&gt;    if(iIndexSelectedMarker==0)&lt;br /&gt;      lstBox.SelectedIndex=iIndexSelectedMarker;&lt;br /&gt;    else&lt;br /&gt;      lstBox.SelectedIndex=iIndexSelectedMarker-1;&lt;br /&gt;   }&lt;br /&gt;   catch(Exception expException)&lt;br /&gt;   {&lt;br /&gt;    Response.Write(expException.Message);&lt;br /&gt;   }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;Method ini digunakan untuk menggeser posisi item ke bawah&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;private void MoveDown(ListBox lstBox)&lt;br /&gt; {&lt;br /&gt;   try&lt;br /&gt;    {&lt;br /&gt;      int   iIndex, iCount, iOffset, InsertAt,iIndexSelectedMarker = -1;&lt;br /&gt;    string  lItemData;&lt;br /&gt;     string  lItemval;&lt;br /&gt;         &lt;br /&gt;    // Get the count of items in the list control&lt;br /&gt;    iCount = lstBox.Items.Count;&lt;br /&gt;       &lt;br /&gt;    // Set the base loop index and the increment/decrement value based on&lt;br /&gt;    // the direction the item are being moved (up or down).&lt;br /&gt;    iIndex = iCount - 1;&lt;br /&gt;    iOffset = 1;&lt;br /&gt;         &lt;br /&gt;    // Loop through all of the items in the list.&lt;br /&gt;    while(iIndex &gt;= 0)&lt;br /&gt;     {&lt;br /&gt;         &lt;br /&gt;    // Check if this item is selected.&lt;br /&gt;    if(lstBox.SelectedIndex &gt;= 0)&lt;br /&gt;      {&lt;br /&gt;           &lt;br /&gt;        // Get the item data for this item&lt;br /&gt;        lItemData = lstBox.SelectedItem.Text.ToString();&lt;br /&gt;        lItemval =lstBox.SelectedItem.Value.ToString();&lt;br /&gt;        iIndexSelectedMarker=lstBox.SelectedIndex;&lt;br /&gt;           &lt;br /&gt;        // Don't move selected items past other selected items&lt;br /&gt;           if(-1 != iIndexSelectedMarker)&lt;br /&gt;           {&lt;br /&gt;              for(int iIndex2 = 0; iIndex2 &lt; iCount-1; ++iIndex2)&lt;br /&gt;            {&lt;br /&gt;              // Find the index of this item in enabled list&lt;br /&gt;              if( lItemval == lstBox.Items[iIndex2].Value.ToString())&lt;br /&gt;           {&lt;br /&gt;                  // Remove the item from its current position&lt;br /&gt;               lstBox.Items.RemoveAt(iIndex2);&lt;br /&gt;                  // Reinsert the item in the array one space lower&lt;br /&gt;             // than its previous position&lt;br /&gt;                  iInsertAt=(iIndex2+iOffset) &lt; 0?0:iIndex2+iOffset;&lt;br /&gt;                  ListItem li = new ListItem(lItemData,lItemval);&lt;br /&gt;               lstBox.Items.Insert(iInsertAt,li);&lt;br /&gt;                  break;&lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;       iIndex = iIndex - 1;&lt;br /&gt;      }&lt;br /&gt;      if(iIndexSelectedMarker==lstBox.Items.Count-1)&lt;br /&gt;        lstBox.SelectedIndex=iIndexSelectedMarker;&lt;br /&gt;      else&lt;br /&gt;      lstBox.SelectedIndex=iIndexSelectedMarker+1;&lt;br /&gt;   }&lt;br /&gt;   catch(Exception expException)&lt;br /&gt;     {&lt;br /&gt;      Response.Write(expException.Message);&lt;br /&gt;     }&lt;br /&gt; }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841536096546204?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841536096546204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841536096546204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841536096546204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841536096546204'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/enchanced-list-box.html' title='Enchanced List Box'/><author><name>Daniel Christian S. (202114517)</name><uri>http://www.blogger.com/profile/17584114995494287721</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841421943486432</id><published>2005-06-10T07:33:00.000-07:00</published><updated>2005-06-10T07:36:59.443-07:00</updated><title type='text'>Solusi Kompresi SQL server report (Zip format)</title><content type='html'>Artikel ini mendokumentasikan solusi untuk mengatasi timeout SQL server reporting service, untuk menampilkan report dengan  tanggal besar. Solusinya adalah untuk mengkompresi report dengan menggunakan format zip dan mengijinkan user untuk download  zip file. &lt;br /&gt;Syarat-syarat:&lt;br /&gt;1.SharpZipLib – sebuah Open Source .Net zip library (Download URL:  http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx) &lt;br /&gt;2.Sebuah kontrol akses penuh pada folder Temp project pada server dimana aplikasi berada.&lt;br /&gt;&lt;br /&gt;Procedure yang dijalankan di bawah ini akan dapat digunakan jika data pada report besar &lt;br /&gt;&lt;br /&gt;1.Dapatkan data report pada form array byte melalui reporting web service&lt;br /&gt;2.Cek panjang array byte, jika itu melebihi limit/batas yang dispesifikasikan maka report harus dikompres&lt;br /&gt;3.Spesifikasikan nama file dan ekstensi untuk report yang akan disimpan pada Temp folder&lt;br /&gt;4. Ciptakan/Buatlah file report pada temp folder&lt;br /&gt;5. Zip report yang disimpan dalam temp folder dan hapus file report&lt;br /&gt;6. Ijinkan user untuk men-download file zip yang disimpan melalui browser&lt;br /&gt;7. Kosongkan temp folder secara periodik melalui procedure thread terpisah &lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;ReportingService objReportService = new ReportService.ReportingService();&amp;lt;SPAN style="mso-tab-count: 4"&amp;gt;    &lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;NetworkCredential objCredentials = new NetworkCredential("","","");&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;objReportService.Credentials =  objCredentials;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="mso-tab-count: 5"&amp;gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="mso-tab-count: 5"&amp;gt;&amp;lt;SPAN style="FONT-SIZE:  9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;string strDSNPath = "" // Report DSN path ;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;string strReportFolderName = "" // Report folder name;&lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;o:p&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT- FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;string strDataSourceName&amp;lt;SPAN  style="mso-spacerun: yes"&amp;gt;  = "" // DataSourceName;&amp;lt;o:p&amp;gt;&amp;lt;/o:p&amp;gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;ReportService.DataSourceReference  objDataSourceReference = new ReportService.DataSourceReference();&amp;lt;o:p&amp;gt;&amp;lt;/o:p&amp;gt;&lt;br /&gt;&amp;lt;/o:p&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT- FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;objDataSourceReference.Reference  = "\"+ strDSNPath;&amp;lt;o:p&amp;gt;&amp;lt;/o:p&amp;gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;objArrDataSources = new ReportService.DataSource[1];&amp;lt;o:p&amp;gt;&amp;lt;/o:p&amp;gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;objDataSources = new ReportService.DataSource();&lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;objDataSources.Item = (ReportService.DataSourceDefinitionOrReference) objDataSourceReference;&amp;lt;o:p&amp;gt;&amp;lt;/o:p&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR:  gray; FONT-FAMILY: 'Courier New'"&amp;gt;objDataSources.Name = strDataSourceName;&amp;lt;o:p&amp;gt;&amp;lt;/o:p&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;o:p&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT- FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;objArrDataSources[0] =  objDataSources; &lt;br /&gt;&amp;lt;/o:p&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;objReportService.SetReportDataSources(strReportName.Trim(), objArrDataSources);&lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR:  gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT- SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;//Device Information settings....Section attribute made to zero to show  all the results.&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;//if this is made to 1 shows the first report only.&lt;br /&gt;&lt;br /&gt;strDeviceInfo="&amp;lt;DeviceInfo&amp;gt;&amp;lt;HTMLFragment&amp;gt;True&amp;lt;/HTMLFragment&amp;gt;&amp;lt;Section&amp;gt;0&amp;lt;/Section&amp;gt;&amp;lt;/DeviceInfo&amp;gt;";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR:  gray; FONT-FAMILY: 'Courier New'"&amp;gt;//Passing parameters to report&lt;br /&gt;arrParameters = new ReportService.ParameterValue[intHTCount];&lt;br /&gt;if (objHTParameters !=null)&lt;br /&gt;{&lt;br /&gt;    intHTCount=objHTParameters.Count;&lt;br /&gt;    arrParameters = new ReportService.ParameterValue[intHTCount];&lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR:  gray; FONT-FAMILY: 'Courier New'"&amp;gt;    IDictionaryEnumerator enumParameterList = objHTParameters.GetEnumerator();&lt;br /&gt;    while ( enumParameterList.MoveNext() )&lt;br /&gt;    {&lt;br /&gt;    arrParameters[intParameterCount]=new ReportService.ParameterValue();&lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR:  gray; FONT-FAMILY: 'Courier New'"&amp;gt;    arrParameters[intParameterCount].Name = enumParameterList.Key.ToString();&lt;br /&gt;    arrParameters[intParameterCount].Value =  enumParameterList.Value.ToString();&lt;br /&gt;    intParameterCount=intParameterCount+1;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;objReportService.Timeout = -1;   &lt;br /&gt;//Mendapatkan report dari web service berupa byte&lt;br /&gt;byteResultStream = objReportService.Render(strReportName, strReportType, strHistoryID,strDeviceInfo,arrParameters,&lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR:  gray; FONT-FAMILY: 'Courier New'"&amp;gt;objDataSourceCredentials,strShowHideToggle,out strEncoding,out strMimeType,out  objParametersUsed,out objWarnings,&lt;br /&gt;&lt;br /&gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR:  gray; FONT-FAMILY: 'Courier New'"&amp;gt;out strArrStreamIdentifiers);&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY:  'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR:  gray; FONT-FAMILY: 'Courier New'"&amp;gt;&amp;lt;SPAN style="FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: 'Courier New'"&amp;gt;&lt;br /&gt;&lt;br /&gt;Dua Method Private yang digunakan: &lt;br /&gt;&lt;br /&gt;A. WriteFile: method ini digunakan untuk menulis report pada the temp folder. Di bawah ini adalah codenya.&lt;br /&gt;&lt;br /&gt;Parameter:&lt;br /&gt;&lt;br /&gt;strpath –string yang menahan path di mana report file disimpan.&lt;br /&gt;&lt;br /&gt;strFileNameWithExt – String yang menahan nama report file dengan ekstensi (.html, .pdf, .xls etc).&lt;br /&gt;&lt;br /&gt;byteResultStream – byte array yang menahan data report pada form bytes.&lt;br /&gt;&lt;br /&gt;Method:&lt;br /&gt;&lt;br /&gt;private int WriteFile (string strPath, string strFileNameWithExt,byte[] byteResultStream)&lt;br /&gt;{&lt;br /&gt;I int intResult = 0;&lt;br /&gt;  &lt;br /&gt;    &lt;br /&gt;  FileStream stream = File.OpenWrite(@strPath+strFileNameWithExt);&lt;br /&gt;  stream.Write(byteResultStream, 0, byteResultStream.Length);&lt;br /&gt;  stream.Close();&lt;br /&gt;  intResult = ”1”;&lt;br /&gt; &lt;br /&gt;  return intResult;&lt;br /&gt;&lt;br /&gt;  #endregion&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;B. CreateZip: method ini digunakan digunakan untuk zip report file yang disimpan. &lt;br /&gt;&lt;br /&gt;Parameter:&lt;br /&gt;&lt;br /&gt;strFileName – string yang menahan nama file tanpa ekstensi &lt;br /&gt;&lt;br /&gt;strFileNameWithExt – string yang menahan nama file dengan ekstensi&lt;br /&gt;&lt;br /&gt;Method :&lt;br /&gt;&lt;br /&gt;private string CreateZip(string strFileName,string strFileNameWithExt)&lt;br /&gt;  {&lt;br /&gt; string strZipFileName = string.Empty;&lt;br /&gt; Crc32 objCrc32 = null;&lt;br /&gt; ZipOutputStream objZipOutputStream = null;&lt;br /&gt; ZipEntry objZipEntry = null; &lt;br /&gt; string strPath = string.Empty;&lt;br /&gt; #endregion&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;strPath = HttpContext.Current.Server.MapPath(“\Temp”);&lt;br /&gt;if (File.Exists(strPath+strFileNameWithExt))&lt;br /&gt;{&lt;br /&gt;strZipFileName = strPath+strFileName+”.zip”;&lt;br /&gt;objCrc32 = new Crc32();&lt;br /&gt;objZipOutputStream = new ZipOutputStream(File.Create(strZipFileName));&lt;br /&gt;objZipOutputStream.SetLevel(6);&lt;br /&gt;FileStream objFileStream = File.OpenRead(strPath+strFileNameWithExt);&lt;br /&gt;Byte[] abyBuffer = new Byte[objFileStream.Length];&lt;br /&gt;objFileStream.Read(abyBuffer, 0, abyBuffer.Length);&lt;br /&gt;objZipEntry = new ZipEntry(strFileNameWithExt);&lt;br /&gt;objZipEntry.DateTime = DateTime.Now;&lt;br /&gt;objZipEntry.Size = objFileStream.Length;&lt;br /&gt;objFileStream.Close();&lt;br /&gt;objCrc32.Reset();&lt;br /&gt;objCrc32.Update(abyBuffer);&lt;br /&gt;objZipEntry.Crc = objCrc32.Value;&lt;br /&gt;objZipOutputStream.PutNextEntry(objZipEntry);&lt;br /&gt;objZipOutputStream.Write(abyBuffer, 0, abyBuffer.Length);&lt;br /&gt;objZipOutputStream.Finish();&lt;br /&gt;objZipOutputStream.Close(); &lt;br /&gt;strZipFileName = strFileName+”.zip”;&lt;br /&gt;    &lt;br /&gt;return strZipFileName;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841421943486432?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841421943486432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841421943486432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841421943486432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841421943486432'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/solusi-kompresi-sql-server-report-zip.html' title='Solusi Kompresi SQL server report (Zip format)'/><author><name>inge_as (202114594)</name><uri>http://www.blogger.com/profile/06101207009058987811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841378986220757</id><published>2005-06-10T07:27:00.000-07:00</published><updated>2005-06-10T07:29:49.870-07:00</updated><title type='text'>Membuat status bar dalam aplikasi web</title><content type='html'>Jika ada proses yang membutuhkan waktu lebih dari 20 detik, maka perkembangan proses perlu ditunjukkan sehingga user bisa tahu status dari proses, misalkan bila user menekan tombol untuk mengirimkan email ke 50 orang, maka perlu ditampilkan di layar email apa saja yang keluar sehingga dia bisa tahu proses apa saja yang terjadi&lt;br /&gt;&lt;br /&gt;Permasalahannya adalah aplikasi web tidak bekerja secara run time, tetapi server menyelesaikan proses baru mengirimkan kode ke client. Tetapi dengan sedikit JavaScript, kemampuan untuk menulis dan membaca teks file, kemampuan untuk include file, maka bisa dibuat proses sederhana untuk terus menginformasikan ke user status dari proses.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;StatusBar.aspx&lt;/span&gt;&lt;br /&gt;-----------------------------&lt;br /&gt;&amp;lt; %@ Page Language="C#" Debug="true" % &amp;gt;&lt;br /&gt;&amp;lt; %@ import Namespace="System.IO" % &amp;gt;&lt;br /&gt;&amp;lt; %@ import Namespace="System.Threading" % &amp;gt;&lt;br /&gt;&amp;lt; script runat="server" &amp;gt;&lt;br /&gt;    const int NUMBER_OF_ITEMS_TO_PROCESS = 10;&lt;br /&gt;   &lt;br /&gt;    void Page_Load(Object sender, EventArgs e) {   &lt;br /&gt;        //Thread.Sleep(1000);&lt;br /&gt;        UpdateStatus(GetCounter());&lt;br /&gt;        SetCounter(GetCounter() + 1);&lt;br /&gt;        if(GetCounter()  &amp;gt; NUMBER_OF_ITEMS_TO_PROCESS) {&lt;br /&gt;            Response.Redirect("Finished.aspx");&lt;br /&gt;        }&lt;br /&gt;    }  &lt;br /&gt;    private void UpdateStatus(int counter) {&lt;br /&gt;        FileInfo fi = new FileInfo(HttpContext.Current.Server.MapPath("status.htm"));&lt;br /&gt;        StreamWriter sw = fi.AppendText();&lt;br /&gt;        if(counter &amp;lt;  NUMBER_OF_ITEMS_TO_PROCESS) {&lt;br /&gt;            sw.WriteLine(counter + ", ");&lt;br /&gt;        } else {&lt;br /&gt;            sw.WriteLine(counter + ".");&lt;br /&gt;        }&lt;br /&gt;        sw.Flush();&lt;br /&gt;        sw.Close();&lt;br /&gt;    }  &lt;br /&gt;    public void SetCounter(int counter) {&lt;br /&gt;        FileInfo fi = new FileInfo(HttpContext.Current.Server.MapPath("Counter.txt"));&lt;br /&gt;        StreamWriter sw = fi.CreateText();&lt;br /&gt;        sw.WriteLine(counter.ToString());&lt;br /&gt;        sw.Flush();&lt;br /&gt;        sw.Close();&lt;br /&gt;    }&lt;br /&gt;    public int GetCounter() {&lt;br /&gt;        FileInfo file = new FileInfo(HttpContext.Current.Server.MapPath("Counter.txt"));&lt;br /&gt;        StreamReader sr = file.OpenText();&lt;br /&gt;        int counter = Int32.Parse(sr.ReadLine());&lt;br /&gt;        sr.Close();&lt;br /&gt;        return counter;&lt;br /&gt;    }&lt;br /&gt;&amp;lt; /script &amp;gt;&lt;br /&gt;&amp;lt; html &amp;gt;&lt;br /&gt;    &amp;lt; head &amp;gt;&lt;br /&gt;        &amp;lt; meta http-equiv="refresh" content=".1" &amp;gt;&lt;br /&gt;    &amp;lt; /head &amp;gt;&lt;br /&gt;    &amp;lt; body &amp;gt;&lt;br /&gt;    &amp;lt; /body &amp;gt;&lt;br /&gt;&amp;lt; /html &amp;gt;&lt;br /&gt;&amp;lt; !--#include file="status.htm" -- &amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;StartProcess.aspx&lt;/span&gt;&lt;br /&gt;-------------------------------------------------&lt;br /&gt;&amp;lt; %@ Page Language="C#" % &amp;gt;&lt;br /&gt;&amp;lt; %@ import Namespace="System.IO" % &amp;gt;&lt;br /&gt;&amp;lt; script runat="server" &amp;gt;&lt;br /&gt;    void Page_Load(Object sender, EventArgs e) {&lt;br /&gt;        ClearStatus();&lt;br /&gt;        SetCounter(1);&lt;br /&gt;        Response.Redirect("StatusBar.aspx");&lt;br /&gt;    }   &lt;br /&gt;    private void ClearStatus() {&lt;br /&gt;        FileInfo fi = new FileInfo(HttpContext.Current.Server.MapPath("status.htm"));&lt;br /&gt;        StreamWriter sw = fi.CreateText();&lt;br /&gt;        sw.WriteLine("Processing 10 Records...&amp;lt; br &amp;gt;&amp;lt; br &amp;gt;");&lt;br /&gt;        sw.Flush();&lt;br /&gt;        sw.Close();&lt;br /&gt;    }&lt;br /&gt;    public void SetCounter(int counter) {&lt;br /&gt;        FileInfo fi = new FileInfo(HttpContext.Current.Server.MapPath("Counter.txt"));&lt;br /&gt;        StreamWriter sw = fi.CreateText();&lt;br /&gt;        sw.WriteLine(counter.ToString());&lt;br /&gt;        sw.Flush();&lt;br /&gt;        sw.Close();&lt;br /&gt;    }&lt;br /&gt;&amp;lt; /script &amp;gt;&lt;br /&gt;&amp;lt; html &amp;gt;&lt;br /&gt;    &amp;lt; head &amp;gt;&lt;br /&gt;    &amp;lt; /head &amp;gt;&lt;br /&gt;    &amp;lt; body &amp;gt;&lt;br /&gt;        &amp;lt; form runat="server" &amp;gt;&lt;br /&gt;            &amp;lt; !--#include file="status.htm" -- &amp;gt;&lt;br /&gt;            &amp;lt; br &amp;gt;&lt;br /&gt;            Process is finished.&amp;lt; br &amp;gt;&lt;br /&gt;            &amp;lt; br &amp;gt;&lt;br /&gt;            &amp;lt; a href="StartProcess.aspx" &amp;gt;Start process again&amp;lt; /a &amp;gt;.&lt;br /&gt;        &amp;lt; /form &amp;gt;&lt;br /&gt;    &amp;lt; /body &amp;gt;&lt;br /&gt;&amp;lt; /html &amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Finished.aspx&lt;/span&gt;&lt;br /&gt;--------------------------------------------&lt;br /&gt;&amp;lt; %@ Page Language="C#" % &amp;gt;&lt;br /&gt;&amp;lt; %@ import Namespace="System.IO" % &amp;gt;&lt;br /&gt;&amp;lt; html &amp;gt;&lt;br /&gt;    &amp;lt; head &amp;gt;&lt;br /&gt;    &amp;lt; /head &amp;gt;&lt;br /&gt;    &amp;lt; body &amp;gt;&lt;br /&gt;        &amp;lt; form runat="server" &amp;gt;&lt;br /&gt;            &amp;lt; !--#include file="status.htm" -- &amp;gt;&lt;br /&gt;            &amp;lt; br &amp;gt;&lt;br /&gt;            Process is finished.&amp;lt; br &amp;gt;&lt;br /&gt;            &amp;lt; br &amp;gt;&lt;br /&gt;            &amp;lt; a href="StartProcess.aspx" &amp;gt;Start process again&amp;lt; /a &amp;gt;.&lt;br /&gt;        &amp;lt; /form &amp;gt;&lt;br /&gt;    &amp;lt; /body &amp;gt;&lt;br /&gt;&amp;lt; /html &amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Counter.txt&lt;/span&gt;&lt;br /&gt;-----------------------------&lt;br /&gt;1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841378986220757?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841378986220757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841378986220757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841378986220757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841378986220757'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/membuat-status-bar-dalam-aplikasi-web.html' title='Membuat status bar dalam aplikasi web'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841410648213952</id><published>2005-06-10T07:24:00.000-07:00</published><updated>2005-06-10T07:35:06.486-07:00</updated><title type='text'>Please Wait Button</title><content type='html'>&lt;span style="color:#3366ff;"&gt;Contoh program yang menggunakan PleaseWaitText, PleaseWaitImage, PleaseWaitType&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;%@ Page language="C#" %&gt;&lt;br /&gt;&lt;%@ Register TagPrefix="cc1" Namespace="JavaScriptControls"&lt;br /&gt;                             Assembly="PleaseWaitButton" %&gt;&lt;br /&gt;&lt;br /&gt;&lt;script runat="server"&gt;&lt;br /&gt;    private void PleaseWaitButton1_Click(object sender, System.EventArgs e)&lt;br /&gt;    {&lt;br /&gt;       // Server-side Click event handler;&lt;br /&gt;&lt;br /&gt;       // simulate something that could take a long time,&lt;br /&gt;       // like a file upload or time-consuming server processing&lt;br /&gt;&lt;br /&gt;       DateTime dt = DateTime.Now.AddSeconds(5);&lt;br /&gt;       while (DateTime.Now &lt; dt)&lt;br /&gt;       {&lt;br /&gt;         // do nothing; simulate a 5-second pause&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       // at the end of the loop display a success message&lt;br /&gt;       // and hide the submit form&lt;br /&gt;       panelSuccess.Visible = true;&lt;br /&gt;       PleaseWaitButton1.Visible = false;&lt;br /&gt;    }&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;html&gt;&lt;br /&gt;    &lt;head&gt;&lt;br /&gt;        &lt;title&gt;Testing PleaseWaitButton&lt;/title&gt;&lt;br /&gt;    &lt;/head&gt;&lt;br /&gt;    &lt;body&gt;&lt;br /&gt;        &lt;form id="Form1" method="post" runat = "server"&gt;&lt;br /&gt;&lt;br /&gt;            &lt;p&gt;Testing the PleaseWaitButton control.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;            &lt;cc1:PleaseWaitButton id="PleaseWaitButton1" runat = "server"&lt;br /&gt;                     Text="Click me to start a time-consuming process"&lt;br /&gt;                     PleaseWaitText="Please Wait... "&lt;br /&gt;                     PleaseWaitImage="pleaseWait.gif"&lt;br /&gt;                     OnClick="PleaseWaitButton1_Click" /&gt;&lt;br /&gt;&lt;br /&gt;            &lt;asp:Panel id="panelSuccess" runat="server"&lt;br /&gt;                       visible="false"&gt;&lt;br /&gt;                Thank you for submitting this form.  You are truly&lt;br /&gt;                the coolest user I've ever had the pleasure of serving.&lt;br /&gt;                No, really, I mean it.  There have been others, sure,&lt;br /&gt;                but you are really in a class by yourself. &lt;br /&gt;            &lt;/asp:Panel&gt;&lt;br /&gt; &lt;br /&gt;        &lt;/form&gt;&lt;br /&gt;    &lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;Method ini digunakan untuk me-render HTMLTextWriter&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;protected override void Render(HtmlTextWriter output)&lt;br /&gt;{&lt;br /&gt;    // Output the button's html (with attributes)&lt;br /&gt;    // to a dummy HtmlTextWriter&lt;br /&gt;    StringWriter sw = new StringWriter();&lt;br /&gt;    HtmlTextWriter wr = new HtmlTextWriter(sw);&lt;br /&gt;    base.Render(wr);&lt;br /&gt;    string sButtonHtml = sw.ToString();&lt;br /&gt;    wr.Close();&lt;br /&gt;    sw.Close();&lt;br /&gt;    // now modify the code to include an "onclick" handler&lt;br /&gt;    // with our PleaseWait() function called appropriately&lt;br /&gt;    // after any client-side validation.&lt;br /&gt;    sButtonHtml = ModifyJavaScriptOnClick(sButtonHtml);&lt;br /&gt;   &lt;br /&gt;    // before rendering the button, output an empty &lt;div&gt;&lt;br /&gt;    // that will be populated client-side via javascript&lt;br /&gt;    // with a "please wait" message"&lt;br /&gt;    output.Write(string.Format("&lt;div id="'pleaseWaitButtonDiv2_{0}'"&gt;",&lt;br /&gt;                                this.ClientID));&lt;br /&gt;    output.Write("&lt;/div&gt;");&lt;br /&gt;&lt;br /&gt;    // render the button in an encapsulating &lt;div&gt; tag of its own&lt;br /&gt;    output.Write(string.Format("&lt;div id="'pleaseWaitButtonDiv_{0}'"&gt;",&lt;br /&gt;                                this.ClientID));&lt;br /&gt;    output.Write(sButtonHtml);&lt;br /&gt;    output.Write("&lt;/div&gt;");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;info lebih lengkap dapat dilihat di&lt;br /&gt;&lt;a href="http://www.codeproject.com/aspnet/PleaseWaitButton.asp"&gt;http://www.codeproject.com/aspnet/PleaseWaitButton.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841410648213952?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841410648213952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841410648213952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841410648213952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841410648213952'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/please-wait-button_10.html' title='Please Wait Button'/><author><name>Daniel Christian S. (202114517)</name><uri>http://www.blogger.com/profile/17584114995494287721</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841312948393827</id><published>2005-06-10T07:02:00.000-07:00</published><updated>2008-02-28T04:23:38.990-08:00</updated><title type='text'>Implementing a Dialog Box in ASP.NET Based Web Application</title><content type='html'>Menggunakan dialog box dalam berbagai aplikasi sangat penting agar terjadi komunikasi yg lebih baik antara user dengan aplikasi tersebut. Dialog antara user dan aplikasi ini bisa meningkatkan usability dari suatu aplikasi.&lt;br /&gt;Dialog box bisa digunakan untuk memberikan beberapa feedback kepada user atau untuk mendapatkan beberapa input dari user ataupun keduanya. Misalnya :&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Dim fChild As New frmChild&lt;br /&gt;frmChild.Show vbModal&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Dalam teknik berikut ini akan mengimplementasikan dialog box dalam suatu web based application.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Simple Dialog Box&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Teknik pertana dan biasa digunakan untuk mengimplementasikan dialog box adalah dengan meletakkan javascript untuk event tertentu (biasanya event click) dari suatu kontrol. Caranya sebenarnya sangat mudah jika aplikasi kita sudah mengetahui waktu membuka dialog box di saat page diload ke browser.&lt;br /&gt;&lt;br /&gt;Contoh berikut ini adalah untuk meletakkan button form control ke web page dengan menginsertkan kode berikut.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;btnOpen1.Attributes.Add("onclick", "alert('GOT IT?');")&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Cukup satu baris perintah yg digunakan untuk membangkitkan alert message ke user.&lt;br /&gt;&lt;br /&gt;Dengan cara yg sama, jika kita menginginkan aplikasi membuka sebuah box dialog konfirmasi dari tempat dimana user bisa memilih optionnya. Misalnya, jika ingin membuka confirmation dialog box pada waktu user mengklik button delete dari suatu page :&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;btnDelete.Attributes.Add("onclick", "if(confirm('Are you sure to delete?')){}else{return false}")&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Code itu akan membangkitkan kode javascript kecil ke browser. Jika user memilih "No" dari confirmation dialog box, maka akan mengembalikan nilai false, artinya tidak terjadi apa-apa. Dan jika user memilih "Yes", maka akan mengembalikan true dan akan melakukan post halaman tersebut.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Open Dialog Box with Another Web Form&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Jika ingin membuka web page yg lain sebagai sebuah dialog box, maka bisa menggunakan perintah berikut ini yg sedikit berbeda dari sebelumnya :&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;btnOpen2.Attributes.Add("onclick", "window.open ('child.aspx')")&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;btnOpen merupakan web form control dan pada waktu user mengklik button tersebut, akan membuka instance browser yg lain dengan page "child.aspx".&lt;br /&gt;&lt;br /&gt;Untuk membuka sebuah halaman dalam browser yg sama dengan menggunakan modal dialog box, maka bisa mengikuti contoh perintah di bawah ini :&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;btnOpen3.Attributes.Add("onclick", "window.showModalDialog('child.aspx', null,'status:no;dialogWidth:370px;dialogHeight:220px;dialogHide:true;help:no;scroll:no');")&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Untuk kode diatas sebenarnya tidak melakukan sesuatu. Dia hanya membuatkan kode javascript sederhana dan meletakkan even click dari kontrol ke script tersebut. Jika kita melihat source code html dari page tersebut, maka bisa kita temukan bahwa html code dari page ini yg dibuat dengan popup dialog box diatas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Returning value from the dialog box&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Untuk mengembalikan semua nilai ke parent window dari child dialog box, javascript menyediakan satu atribut dari objek window, yaitu window.returnValue. Untuk memahami  cara kerjanya, berikut ini diberikan contoh web project kecil dengan 2 web form, yaitu parent.aspx dan child.aspx .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Parent web form ini akan mempunyai 1 textbox dan 1 button.&lt;br /&gt;&lt;strong&gt;parent.aspx&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;form id="Form1" method="post" runat="server"&gt; &lt;br /&gt;&lt;asp:textbox id="txtValue" style="z-index: 101; left: 16px; position: absolute; top: 24px;" runat="server"&gt;&lt;/asp:textbox&gt; &lt;br /&gt;&lt;asp:button id="btnOpen" style="z-index: 102; left: 176px; position: absolute; top: 24px;" runat="server" text="Open..."&gt;&lt;/asp:button&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;parent.aspx.vb&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;btnOpen.Attributes.Add("onclick", "var strReturn; strReturn=window.showModalDialog('child2.aspx',null,'status:no;dialogWidth:370px;dialogHeight:220px;dialogHide:true;help:no;scroll:no');if (strReturn != null) document.getElementById('txtValue').value=strReturn;")&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Dan, child web form berikut ini akan mempunyai 1 textbox and 2 button.&lt;br /&gt;&lt;strong&gt;child2.aspx&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;form id="Form1" method="post" runat="server"&gt; &lt;br /&gt;&lt;asp:textbox id="txtValue" style="z-index: 101; left: 16px; position: absolute; top: 24px;" runat="server"&gt;&lt;/asp:textbox&gt; &lt;br /&gt;&lt;asp:button id="btnOK" style="z-index: 103; left: 48px; position: absolute; top: 56px;" runat="server" text="Ok" width="56px"&gt;&lt;/asp:button&gt; &lt;br /&gt;&lt;asp:button id="btnCancel" style="z-index: 102; left: 112px; position: absolute; top: 56px;" runat="server" text="Cancel"&gt;&lt;/asp:button&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;child2.aspx.vb&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;btnOK.Attributes.Add("onclick", "window.returnValue = document.getElementById('txtValue').value; window.close();")  btnCancel.Attributes.Add("onclick", "window.close();")&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Adapun tujuan dari modul kecil ini adalah bahwa pd waktu user mengklik button dari form parent, maka akan membuka file child.aspx dalam dialog box. Dalam form child, user akan memasukkan beberapa nilai dalam textbox dan jika button OK diklik maka akan mengembalikan nilai ke form parent. Dengan cara itu, akan mengupdate isi textbox dari form parent. Sebaliknya, jika mengklik button Cancel, akan menutup child dialog box tanpa melakukan sesuatu apapun.&lt;br /&gt;&lt;br /&gt;Dari semua kasus diatas, tidak ada yg tidak dapat dilakukan dengan ASP.NET. Semua hal sebenarnya ditangani oleh javascript. Berikut ini kode javascript dari child web form.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dalam child web form, suatu nilai yg dikembalikan diberikan ke window.returnValue. Dana return value tersebut diberikan ke sebuah variabel dalam parent web form. Kemudian, setelah itu diberikan ke textbox.&lt;br /&gt;&lt;br /&gt;Dalam hal ini, window.returnValue mengembalikan beberapa nilai dari child window  ke parent window, dan setelah itu kita bisa melakukan apa saja dengan nilai yg telah dikembalikan tersebut. Kita bisa mempassing ke VB code menggunakan parameter dari query string dari suatu document action.&lt;br /&gt;Tidak ada batasan dalam menggunakan method pengembalian nilai dari suatu dialog box tersebut. Batasan yg ada adalah bahwa kita hanya bisa mengembalikan 1 value ke parent window.&lt;br /&gt;Dalam contoh berikut ini, akan membangkitkan alert message yg sederhana ke user (dalam VB).&lt;br /&gt;&lt;br /&gt;Private Sub btnOpen5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen5.Click&lt;br /&gt;Dim strScript As String = ""&lt;br /&gt;strScript = "&lt;script&gt;" &lt;br /&gt;strScript = strScript &amp; "alert('Simple alter message!!!!');" &lt;br /&gt;strScript = strScript &amp; "&lt;/script&gt;"&lt;br /&gt;Response.Write(strScript)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Jika ingin menampilkan beberapa variabel sekaligus dalam sekali tampil,&lt;br /&gt;&lt;br /&gt;Private Sub btnOpen6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen6.Click&lt;br /&gt;Dim strScript As String = ""&lt;br /&gt;Dim intSum As Integer&lt;br /&gt;strScript = "&lt;script&gt;"  intSum = 344 + 233 &lt;br /&gt;strScript = strScript &amp; "alert('SUM : " &amp;amp; intSum &amp; "');" &lt;br /&gt;strScript = strScript &amp; "&lt;/script&gt;"&lt;br /&gt;Response.Write(strScript)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Kesimpulan:&lt;br /&gt;Mengimplementasikan dialog box dalam web based application membuat aplikasi kita lebih usable. Karena hal itu memungkinkan aplikasi kita untuk berkomunikasi lebih dekat dengan user.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841312948393827?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841312948393827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841312948393827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841312948393827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841312948393827'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/implementing-dialog-box-in-aspnet.html' title='Implementing a Dialog Box in ASP.NET Based Web Application'/><author><name>Yulina Jamal (201114219)</name><uri>http://www.blogger.com/profile/08423561022928569448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841217739054968</id><published>2005-06-10T07:00:00.000-07:00</published><updated>2005-06-10T07:02:57.396-07:00</updated><title type='text'>Tracing web application dengan ASP.NET</title><content type='html'>Method tracing ada 2 yaitu:&lt;br /&gt;1. Pada page&lt;br /&gt;   Ketika method ini digunakan, output trace ditampilkan pada page yang    dijalankan.&lt;br /&gt;2. Di luar page&lt;br /&gt;   Pada metode ini, hasil trace tidak akan ditampilkan pada page tetapi disimpan    dalam web server dan pada folder root  aplikasi pada sebuah file diberi nama    trace.axd. Setelah mengeksekusi page, file ini dapat ditampilkan di browser.     Sebagai contoh, http://yourApplicationroot/trace.axd.&lt;br /&gt;&lt;br /&gt;Bagaimana cara melakukan tracing&lt;br /&gt;&lt;br /&gt;Tracing dapat dilakukan pada 2 bagian yaitu:&lt;br /&gt;1. Page Level&lt;br /&gt;2. Application Level&lt;br /&gt;Keterangan:&lt;br /&gt;1.Bekerja dengan Page Level Tracing&lt;br /&gt;Page level tracing dapat dibolehkan menggunakan page directive menggunakan “Trace”. Jika kamu melihat bagian atas halaman,  kamu akan menemukan sebuah baris seperti berikut :&lt;br /&gt;&amp;lt;%@ Page Language="vb" AutoEventWireup="False" Trace="True"&lt;br /&gt;  Codebehind="TraceTest.aspx.vb" Inherits="TracingExample.Test"%&amp;gt;&lt;br /&gt;Juga, kita mempunyai objek Trace inbuilt untuk membolehkan dan menghalangi tracing secara dinamik. Pada page, event on Load &lt;br /&gt;jika dituliskan seperti berikut maka tracing akan dibolehkan&lt;br /&gt;&lt;br /&gt; Trace.IsEnabled = True&lt;br /&gt;&lt;br /&gt;2. Bekerja dengan Application Level Tracing&lt;br /&gt;&lt;br /&gt;When you are working with page level Tracing, you need to know probable page that is to be traced. If your application is  complex and if you want to trace you might not be aware exact page that is to be traced. To avoid this problem we, .NET  platform, provides a facility to enable the tracing at application level.&lt;br /&gt;&lt;br /&gt;Seperti kita ketahui bahwa web.config adalah sebuah file yang mengatur setting application level. Pada file yang sama  disebutkan setting trace&lt;br /&gt;&lt;br /&gt;&amp;lt;trace enabled="true" pageOutput="true" requestLimit="10"&lt;br /&gt; traceMode="SortByTime" localOnly="true" /&amp;gt;&lt;br /&gt;&lt;br /&gt;Atribut-atribut tag trace adalah sebagai berikut: &lt;br /&gt;&lt;br /&gt;Enabled - membolehkan or menghalangi tracing untuk aplikasi secara keseluruhan. &lt;br /&gt;PageOutput – Jika atribut ini bernilai true maka trace output akan ditampilkan di layar. Jika nilainya false, output trace  akan diterima menggunakan browser.&lt;br /&gt;RequestLimit–Atribut ini digunakan  untuk menentukan jumlah page yang diminta untuk di-trace.&lt;br /&gt;TraceMode – Untuk mengatur permintaan trace output. Sevagai contoh – SortByTime, SortByCategory ,dll. &lt;br /&gt;localOnly - Atur atribut ini menjadi "false" jika kamu ingin mengakses log trace dari beberapa client.&lt;br /&gt;&lt;br /&gt;Trace Output mengandung banyak detail, beberapa section sebagai berikut:&lt;br /&gt;&lt;br /&gt;a. Request Details  &lt;br /&gt;b. Trace Information &lt;br /&gt;c. Control Tree &lt;br /&gt;d. Cookies Collection &lt;br /&gt;e. Header Information &lt;br /&gt;f. Server Variables &lt;br /&gt;&lt;br /&gt;Cara lain adalah menggunakan trace object. Sebuah teknik yang umum untuk passing parameter menggunakan QueryString dan membolehkan atau menghalangi trace.&lt;br /&gt;Sebagai contoh, kamu menulis code dibawah ini pada event page load &lt;br /&gt;&lt;br /&gt;If (Context.Request.QueryString("EnableTrace") = "true") Then&lt;br /&gt;   Context.Trace.IsEnabled = True&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;Dan kamu memberi URL untuk membolehkan trace:&lt;br /&gt;http://MyAppRoot/mypage.aspx?EnableTrace=true&lt;br /&gt;&lt;br /&gt;Untuk menulis trace, kita menggunakan objek yang sama. Di manapun pada page, jika baris di bawah ini ditulis, trace output  akan menghasilkan sama.&lt;br /&gt;If Trace.IsEnabled Then&lt;br /&gt;      Trace.Write (“Sample trace output / Custom message”)&lt;br /&gt;End if&lt;br /&gt;&lt;br /&gt;Juga, dapat menggunakan method warn. Ketika method warn digunakan, trace output akan menampilkan pesan warna merah.&lt;br /&gt;If Trace.IsEnabled Then&lt;br /&gt;     Trace.Warn (“Sample trace output / Warning / Custom message”)&lt;br /&gt;End If&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841217739054968?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841217739054968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841217739054968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841217739054968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841217739054968'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/tracing-web-application-dengan-aspnet.html' title='Tracing web application dengan ASP.NET'/><author><name>inge_as (202114594)</name><uri>http://www.blogger.com/profile/06101207009058987811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841364982531353</id><published>2005-06-10T06:59:00.000-07:00</published><updated>2005-06-10T07:27:29.826-07:00</updated><title type='text'>Menskala Gambar yang diambil dari SQL server</title><content type='html'>Berikut ini adalah sebuah cara yang mudah untuk menskala gambar yang didapatkan dari SQL Server.&lt;br /&gt;Pertama-tama kita harus mendapatkan atau mengambil data dari database dengan menggunakan&lt;br /&gt;program berikut ini&lt;br /&gt;&lt;br /&gt;SqlCommand cmd = new SqlCommand( "SELECT image FROM images WHERE id=@id" , connection);&lt;br /&gt;cmd.Parameters.Add( "@id" , Request.QueryString[ "id" ]);&lt;br /&gt;SqlDataReader dr = cmd.ExecuteReader();&lt;br /&gt;&lt;br /&gt;kemudian kita harus mengalokasiksn array of bytes untuk menampung image,&lt;br /&gt;&lt;br /&gt;byte[] image = null;&lt;br /&gt;while (dr.Read())&lt;br /&gt;{&lt;br /&gt;  image = (byte[])dr.GetValue(0);&lt;br /&gt;}&lt;br /&gt;dr.Close()&lt;br /&gt;&lt;br /&gt;Sekarang kita memiliki array of byte yang mengandung gambar, kemuadian kita dapat menuliskan array&lt;br /&gt;tersebut menjadi bitmap.&lt;br /&gt;&lt;br /&gt;Bitmap b = (Bitmap)Bitmap.FromStream( new MemoryStream(image));&lt;br /&gt;&lt;br /&gt;Lalu kita dapat meskala gambar tersebut dengan menggunakan constructor bitmap yang dioverload&lt;br /&gt;&lt;br /&gt;Bitmap output = new Bitmap(b, new Size(320, 240);&lt;br /&gt;&lt;br /&gt;Setelah diskala maka kita dapat menyimpan gambar tersebut atau mengirimkanya kemana saja, bahkan&lt;br /&gt;dengan menggunakan response.outputstream&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841364982531353?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841364982531353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841364982531353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841364982531353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841364982531353'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/menskala-gambar-yang-diambil-dari-sql.html' title='Menskala Gambar yang diambil dari SQL server'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841301196946943</id><published>2005-06-10T06:56:00.000-07:00</published><updated>2005-06-10T07:16:51.976-07:00</updated><title type='text'>Meng-embed (menyertakan) text pada gambar</title><content type='html'>adangkala kita ingin menyertakan suatu tulisan pada gambar daripada menampilkannya pada sebuah caption&lt;br /&gt;pada html.&lt;br /&gt;Berikut ini adalah program yang dapat melakukan hal tersebut diatas&lt;br /&gt;&lt;br /&gt;image_text.aspx&lt;br /&gt;&amp;lt; %@ Page Language="c#"%&amp;gt;&lt;br /&gt;&amp;lt; %@ Import Namespace="System.Drawing.Imaging" %&amp;gt;&lt;br /&gt;&amp;lt; %@ Import Namespace="System.Drawing" %&amp;gt;&lt;br /&gt;&amp;lt; %@ Import Namespace="System.Drawing.Drawing2D" %&amp;gt; &lt;br /&gt;&amp;lt; script runat="server"&amp;gt;&lt;br /&gt;private void Page_Load(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;  Bitmap bmp= new Bitmap(Server.MapPath(Request.QueryString["i"]));&lt;br /&gt;  Graphics g=Graphics.FromImage(bmp);&lt;br /&gt;  g.SmoothingMode = SmoothingMode.AntiAlias ;&lt;br /&gt;  g.DrawString(Request.QueryString["t"],&lt;br /&gt;  new Font("verdana",12),SystemBrushes.WindowText, 1, 1);&lt;br /&gt;  Response.ContentType="image/jpeg";&lt;br /&gt;  bmp.Save(Response.OutputStream, bmp.RawFormat) ;&lt;br /&gt;}&lt;br /&gt;&amp;lt; /script &amp;gt;&lt;br /&gt;&lt;br /&gt;sebagai contoh, cobalah masuk pada&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://www.charon.co.uk/demos/image_text.aspx?i=/file_library/images/articles/jules_photo.jpg&amp;amp;t=Photo+of+Jules.&lt;br /&gt;&lt;br /&gt;coba ganti-ganti querystring dan lihat perubahan yang terjadi pada judulnya.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841301196946943?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841301196946943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841301196946943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841301196946943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841301196946943'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/meng-embed-menyertakan-text-pada.html' title='Meng-embed (menyertakan) text pada gambar'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841362936521953</id><published>2005-06-10T06:54:00.000-07:00</published><updated>2005-06-10T07:27:09.376-07:00</updated><title type='text'>Mendapatkan array yang berisi semua file yang ada pada direktori</title><content type='html'>Dengan menggunakan program sederhana ini, anda akan mendapatkan array yang berisi semua&lt;br /&gt;file yang terdapat pada sebuah direktori&lt;br /&gt;&lt;br /&gt;&amp;lt; %@ Page Language="C#" %&amp;gt;&lt;br /&gt;&amp;lt; %@ Import Namespace="System.IO" %&amp;gt;&lt;br /&gt;&amp;lt; script runat="server"&amp;gt;&lt;br /&gt;    void Page_Load(object sender, EventArgs e) {&lt;br /&gt;        FileInfo fi = new FileInfo(Server.MapPath(""));&lt;br /&gt;        DirectoryInfo di = fi.Directory;&lt;br /&gt;        FileSystemInfo[] fsi = di.GetFiles();&lt;br /&gt;        Response.Write("The directory contains the following files and directories:" + di.FullName + "&amp;lt; hr&amp;gt; ");&lt;br /&gt;        foreach (FileSystemInfo info in fsi)&lt;br /&gt;            Response.Write(info.Name + "&amp;lt; br&amp;gt; ");&lt;br /&gt;    }&lt;br /&gt;&amp;lt; /script&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841362936521953?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841362936521953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841362936521953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841362936521953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841362936521953'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/mendapatkan-array-yang-berisi-semua.html' title='Mendapatkan array yang berisi semua file yang ada pada direktori'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841155020539318</id><published>2005-06-10T06:51:00.000-07:00</published><updated>2005-06-10T06:52:30.210-07:00</updated><title type='text'>Color Translator</title><content type='html'>Apabila kita ingin mengubah suatu string warna menjadi warna, maka kita dapat menggunakan class colortranslator&lt;br /&gt;yang terdapat pada namespace System.Drawing. Class ini mempunyai method static bernama FromHtml(string). Method&lt;br /&gt;ini menerima input berupa string dan mengembalikan instance warna yang bersesuaian&lt;br /&gt;Jika inputan string berupa nama warna yang dikenali, maka method tersebut akan mengembalikan instance warna&lt;br /&gt;yang sesuai, jika inputan string yang dimasukan berupa bilangan hexadesimal, maka method tersebut akan&lt;br /&gt;mengambil komponen red green blue dan kemudian dengan menggunakan method color.fromargb() akan membentuk&lt;br /&gt;instance warna yang sesuai&lt;br /&gt;&lt;br /&gt;Berikut contoh penggunaan class colortranslator&lt;br /&gt;&lt;br /&gt;'VB.NET...&lt;br /&gt;LabelID.BackColor = ColorTranslator.FromHtml("#CCCC00")&lt;br /&gt;&lt;br /&gt;// C#...&lt;br /&gt;LabelID.BackColor = ColorTranslator.FromHtml("#CCCC00");&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841155020539318?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841155020539318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841155020539318' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841155020539318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841155020539318'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/color-translator.html' title='Color Translator'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841107646494242</id><published>2005-06-10T06:40:00.000-07:00</published><updated>2005-06-10T06:44:36.470-07:00</updated><title type='text'>Menggubah nilai RGB menjadi warna</title><content type='html'>Jika kita mengetahui nilai komponen red green blue dari sebuah warna dan ingin mengubah&lt;br /&gt;nilai-nilai ini menjadi instance warna, maka kita dapat menggunakan method fromargb(red,green,blue)&lt;br /&gt;&lt;br /&gt;Contoh penggunaan method ini adalah sebagai berikut&lt;br /&gt;&lt;br /&gt;'VB.NET...&lt;br /&gt;TextBoxID.BackColor = Color.FromArgb(204, 204, 0)&lt;br /&gt;&lt;br /&gt;// C#...&lt;br /&gt;TextBoxID.BackColor = Color.FromArgb(204, 204, 0);&lt;br /&gt;&lt;br /&gt;perlu dimengeri bahwa method ini dapat menerima parameter integer keempat sebagai nilai alpha dari warna,&lt;br /&gt;nilai alpha ini adalah nilai transparansi dari warna. Bagaimanapun, komponen keempat ini tidak dapat&lt;br /&gt;digunakan pada warna web site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841107646494242?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841107646494242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841107646494242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841107646494242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841107646494242'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/menggubah-nilai-rgb-menjadi-warna.html' title='Menggubah nilai RGB menjadi warna'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841038377200305</id><published>2005-06-10T06:32:00.000-07:00</published><updated>2005-06-10T06:33:03.773-07:00</updated><title type='text'>Memasukkan isi DropDownList ke XML</title><content type='html'>Berikut program untuk memasukkan isi DropDownList ke XML&lt;br /&gt;&lt;br /&gt;Sub Page_Load(ByVal sender as Object, ByVal e as System.EventArgs)&lt;br /&gt;        Dim ds as new DataSet()&lt;br /&gt;        ds.ReadXml(Server.MapPath("BindXMLToDropDown.xml"))&lt;br /&gt;    &lt;br /&gt;        DropDownList1.DataSource = ds&lt;br /&gt;        DropDownList1.DataTextField = "category"&lt;br /&gt;        DropDownList1.DataValueField = "category"&lt;br /&gt;        DropDownList1.DataBind()&lt;br /&gt;end sub&lt;br /&gt;&lt;br /&gt;‘program di bawah ini diketikkan pada bagian HTML dengan bahasa pemrograman java script&lt;br /&gt;&lt;br /&gt;script language="JavaScript"&lt;br /&gt;&lt;br /&gt;function SymError()&lt;br /&gt;{&lt;br /&gt;  return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;window.onerror = SymError;&lt;br /&gt;&lt;br /&gt;var SymRealWinOpen = window.open;&lt;br /&gt;&lt;br /&gt;function SymWinOpen(url, name, attributes)&lt;br /&gt;{&lt;br /&gt;  return (new Object());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;window.open = SymWinOpen;&lt;br /&gt;var SymRealOnLoad;&lt;br /&gt;var SymRealOnUnload;&lt;br /&gt;&lt;br /&gt;function SymOnUnload()&lt;br /&gt;{&lt;br /&gt;  window.open = SymWinOpen;&lt;br /&gt;  if(SymRealOnUnload != null)&lt;br /&gt;     SymRealOnUnload();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function SymOnLoad()&lt;br /&gt;{&lt;br /&gt;  if(SymRealOnLoad != null)&lt;br /&gt;     SymRealOnLoad();&lt;br /&gt;  window.open = SymRealWinOpen;&lt;br /&gt;  SymRealOnUnload = window.onunload;&lt;br /&gt;  window.onunload = SymOnUnload;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;SymRealOnLoad = window.onload;&lt;br /&gt;window.onload = SymOnLoad;&lt;br /&gt;&lt;br /&gt;‘OUTPUT yang dihasilkan :&lt;br /&gt;&lt;?xml version="1.0" encoding="utf-8" ?&gt; &lt;br /&gt;-&lt;articles&gt;&lt;br /&gt;-&lt;section&gt;&lt;br /&gt;  &lt;ID&gt;1&lt;/ID&gt; &lt;br /&gt;  &lt;category&gt;XML&lt;/category&gt; &lt;br /&gt;  &lt;moderator&gt;David Silverlight&lt;/moderator&gt; &lt;br /&gt;  &lt;lastUpdated&gt;2004/11/21&lt;/lastUpdated&gt; &lt;br /&gt;  &lt;/section&gt;&lt;br /&gt;-&lt;section&gt;&lt;br /&gt;  &lt;ID&gt;2&lt;/ID&gt; &lt;br /&gt;  &lt;category&gt;XSL&lt;/category&gt; &lt;br /&gt;  &lt;moderator&gt;Sonu Kapoor&lt;/moderator&gt; &lt;br /&gt;  &lt;lastUpdated&gt;2004/11/30&lt;/lastUpdated&gt; &lt;br /&gt;  &lt;/section&gt;&lt;br /&gt;-&lt;section&gt;&lt;br /&gt;  &lt;ID&gt;3&lt;/ID&gt; &lt;br /&gt;  &lt;category&gt;ASP.NET&lt;/category&gt; &lt;br /&gt;  &lt;moderator&gt;Sonu Kapoor&lt;/moderator&gt; &lt;br /&gt;  &lt;lastUpdated&gt;2004/11/29&lt;/lastUpdated&gt; &lt;br /&gt;  &lt;/section&gt;&lt;br /&gt;  &lt;/articles&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841038377200305?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841038377200305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841038377200305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841038377200305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841038377200305'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/memasukkan-isi-dropdownlist-ke-xml.html' title='Memasukkan isi DropDownList ke XML'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841032669126495</id><published>2005-06-10T06:31:00.000-07:00</published><updated>2005-06-10T06:32:06.696-07:00</updated><title type='text'>Membentuk array yang berisi daftar file yang terdapat pada suatu directory</title><content type='html'>Berikut program untuk membentuk array yang berisi daftar file yang terdapat pada suatu directory&lt;br /&gt;Page Language="C#"&lt;br /&gt;Import Namespace="System.IO"&lt;br /&gt;&lt;br /&gt;void Page_Load(object sender, EventArgs e) {&lt;br /&gt;    FileInfo fi = new FileInfo(Server.MapPath(""));&lt;br /&gt;    DirectoryInfo di = fi.Directory;&lt;br /&gt;    FileSystemInfo[] fsi = di.GetFiles();&lt;br /&gt;    Response.Write("The directory contains the following files and directories:" + di.FullName + "&lt;hr&gt;");&lt;br /&gt;    foreach (FileSystemInfo info in fsi)&lt;br /&gt;         Response.Write(info.Name + "&lt;br&gt;");&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841032669126495?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841032669126495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841032669126495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841032669126495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841032669126495'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/membentuk-array-yang-berisi-daftar.html' title='Membentuk array yang berisi daftar file yang terdapat pada suatu directory'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111841017073098418</id><published>2005-06-10T06:27:00.000-07:00</published><updated>2005-06-10T06:29:30.736-07:00</updated><title type='text'>Defibrillator : Menjaga session ASP.NET tetap ada sampai browser ditutup</title><content type='html'>Ada 4 konsep untuk melakukan solusi ini yaitu:&lt;br /&gt;1. Pengetahuan akan response&lt;br /&gt;2. Pengetahuan refresh atribut HTTP header&lt;br /&gt;3. akses property session&lt;br /&gt;4. Memperjelas IFrame &lt;br /&gt;&lt;br /&gt;Kamu akan menciptakan sebuah webform yang tidak berguna yang dipanggil Defibrillator.aspx. Kamu tidak perlu melakukan apa-apa dengan page ini hanya tambahkan satu baris pada Page_LOad pada code : &lt;br /&gt;&lt;br /&gt;private void Page_Load(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;    Response.AddHeader("Refresh", Convert.ToString((Session.Timeout*60)-10));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Kamu baru saja menambahkan atribut refresh HTTP header untuk Webform dan memberikan itu sebuah nilai pada session timeout dikurangi 10 detik. Itu berarti bahwa 10 detik sebelum session user akan timeout, selama browser masih buka, dan mereka masih dalam page-mu,page defibrillator akan mengirim  sejumlah aliran listrik secara besar-besaran ke servermu.&lt;br /&gt;&lt;br /&gt;Jika kamu ingin site-mu untuk post back secara tampak untuk menjaga session, maka harus ditambahkan 2 baris program di bawah ini&lt;br /&gt;&lt;br /&gt;Pergi ke user controlmu di mana site menetap, seperti user control header atau footer. Kemudian tambahkan baris code dalam web form markup language&lt;br /&gt;&lt;br /&gt;&amp;lt;IFRAME id=Defib src="/Defibrillator.aspx"&lt;br /&gt;     frameBorder=no width=0 height=0 runat="server"&amp;gt;&amp;lt;/IFRAME&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111841017073098418?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111841017073098418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111841017073098418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841017073098418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111841017073098418'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/defibrillator-menjaga-session-aspnet.html' title='Defibrillator : Menjaga session ASP.NET tetap ada sampai browser ditutup'/><author><name>inge_as (202114594)</name><uri>http://www.blogger.com/profile/06101207009058987811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111840846410775089</id><published>2005-06-10T05:41:00.000-07:00</published><updated>2005-06-10T06:01:04.113-07:00</updated><title type='text'>Menampilkan Image yang dikembalikan oleh RenderStream Method Sql Server Reporting Services</title><content type='html'>Ketika menggunakan method render() sql server reporting service yang mengembalikan stream dari report. Jika kamu mempunyai image pada report-mu dan kamu akan mendapatkan stream dengan tipe HTML. Kemudian stream yang dikembalikan tidak akan mengandung image di dalamnya. Itu akan mengandung streamid untuk semua obyek seperti chart,image,dll. Setelah memanggil method render kamu perlu untuk memanggil RenderStream() method untuk mendapatkan semua obyek.&lt;br /&gt;&lt;br /&gt;Masalah yang didapat adalah untuk memdapatkan image yang di-render untuk memunculkannya pada report. Ini menunjukkan bahwa resource ini adalah output tanpa ekstensi filem sehingga IE tidak yakin bagaimana cara untuk menangani mereka. Maka dari itu kamu harus mengkonfigurasi web server-mu&lt;br /&gt;&lt;br /&gt;1. Pada IIS manager, arahkan ke directory dimana external resource yang akan di-render (ASPNET akan memerlukan untuk mendapat ijin ke directory ini untuk menciptakan resource secara sukses)&lt;br /&gt;2. Buka page property untuk web aplikasimu, dan pilih tab HTTP&lt;br /&gt;3. Klik 'MIME Types' &lt;br /&gt;4. Klik 'New Type'&lt;br /&gt;5. Pada 'Associated Extension', masukkan '*' (tanpa tanda kutip) &lt;br /&gt;6. Pada 'Content Type (MIME)', masukkan 'image/png' (tanpa tanda kutip)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111840846410775089?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111840846410775089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111840846410775089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111840846410775089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111840846410775089'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/menampilkan-image-yang-dikembalikan.html' title='Menampilkan Image yang dikembalikan oleh RenderStream Method Sql Server Reporting Services'/><author><name>inge_as (202114594)</name><uri>http://www.blogger.com/profile/06101207009058987811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111839838415313079</id><published>2005-06-10T03:12:00.000-07:00</published><updated>2005-06-10T03:13:15.056-07:00</updated><title type='text'>Membaca Informasi File Flash (.swf) Melalui Halaman ASP</title><content type='html'>Dengan semakin banyaknya website yang menggunakan file Flash (file .swf) untuk menampilkan isi website mereka, semakin banyak pula Web Developer yang mencoba untuk menampilkan informasi mengenai Flash File. Untungnya, Flash file menyimpan banyak informasi berguna dalam header mereka. Informasi ini dapat dibaca dengan menggunakan FileSystemObject melalui halaman ASP.&lt;br /&gt;Berikut class yang dibuat untuk proses pembacaan informasi tersebut&lt;br /&gt;SWFDump Class&lt;br /&gt;Properti Deskripsi&lt;br /&gt;Version Versi dari Flash file (pada saat ini 3,4 atau 5) &lt;br /&gt;Height Dinyatakan dalam pixels.&lt;br /&gt;Width Dinyatakan dalam pixels.&lt;br /&gt;xMin Dinyatakan dalam twips.  (20 twips = 1 pixel)&lt;br /&gt;xMax Dinyatakan dalam twips.  &lt;br /&gt;yMin Dinyatakan dalam twips.&lt;br /&gt;yMax Dinyatakan dalam twips.&lt;br /&gt;FileSize Ukuran total dari file .swf&lt;br /&gt;FrameRate Banyak frame pada Flash File&lt;br /&gt;FrameCounter Informasi counter frame&lt;br /&gt;Penggunaan class SWFDump begitu sederhana. Pertama kali, letakkan class tersebut pada file include sehingga kita dapat dengan mudah memasukkan class tersebut pada file yang membutuhkan untuk membaca informasi file Flash. Include yang digunakan di sini bernama swfheaderdump.inc. Berikut source code untuk menggunakan class ini : &lt;br /&gt;&lt;!-- #include file="swfheaderdump.inc" --&gt;&lt;br /&gt;&lt;%&lt;br /&gt;'-------------------------------------------------------------&lt;br /&gt;'  Create Date : 17/10/2001 (dd/mm/yyyy)&lt;br /&gt;'  Mod. Date   : 17/10/2001&lt;br /&gt;'  Author      : Claudio Heidel (heidel@f256.com)&lt;br /&gt;'-------------------------------------------------------------&lt;br /&gt;    &lt;br /&gt;' Pass the SWF name in querystring this way&lt;br /&gt;' swfdump.asp?swf=yourmovie.swf&lt;br /&gt;    &lt;br /&gt;  set myObj = new swfdump&lt;br /&gt;  myObj.SWFDump (Server.MapPath(request("swf")))&lt;br /&gt;    &lt;br /&gt;  Response.Write "Heigt (pixel)     = " &amp; myObj.Heigt      &amp; "&lt;br&gt;"&lt;br /&gt;  Response.Write "Width (pixel)     = " &amp; myObj.Width      &amp; "&lt;br&gt;"&lt;br /&gt;  Response.Write "Version           = " &amp; myObj.Version    &amp; "&lt;br&gt;"&lt;br /&gt;  Response.Write "FileLen (bytes)   = " &amp; myObj.FileLen    &amp; "&lt;br&gt;"&lt;br /&gt;  Response.Write "xMin (twips)      = " &amp; myObj.xMin       &amp; "&lt;br&gt;"&lt;br /&gt;  Response.Write "xMax (twips)      = " &amp; myObj.xMax       &amp; "&lt;br&gt;"&lt;br /&gt;  Response.Write "yMin (twips)      = " &amp; myObj.yMin       &amp; "&lt;br&gt;"&lt;br /&gt;  Response.Write "yMax (twips)      = " &amp; myObj.yMax       &amp; "&lt;br&gt;"&lt;br /&gt;  Response.Write "FrameRate         = " &amp; myObj.FrameRate  &amp; "&lt;br&gt;"&lt;br /&gt;  Response.Write "FrameCount        = " &amp; myObj.FrameCount &amp; "&lt;br&gt;"&lt;br /&gt;%&gt;&lt;br /&gt;File swfheaderdump.inc membutuhkan definisi secara penuh dari class SWFDump :&lt;br /&gt;&lt;%&lt;br /&gt;&lt;br /&gt;Class SWFDump&lt;br /&gt;&lt;br /&gt;  Private header&lt;br /&gt;  Private RECTdata&lt;br /&gt;  Private nBits&lt;br /&gt;  Private mversion&lt;br /&gt;  Private mfilelen&lt;br /&gt;  Private mxMin&lt;br /&gt;  Private mxMax&lt;br /&gt;  Private myMin&lt;br /&gt;  Private myMax&lt;br /&gt;  Private mheigt&lt;br /&gt;  Private mwidth&lt;br /&gt;  Private mframerate&lt;br /&gt;  Private mframecount&lt;br /&gt;&lt;br /&gt;  Private Sub Class_Initialize()&lt;br /&gt;&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Private Sub Class_Terminate()&lt;br /&gt;&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Private Function ReadHeader (filename)&lt;br /&gt;     Const ForReading = 1, ForWriting = 2, ForAppending = 8&lt;br /&gt;     Dim fso, f&lt;br /&gt;     Set fso = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;     Set f = fso.OpenTextFile(filename, ForReading)&lt;br /&gt;     ReadHeader = f.Read(21)&lt;br /&gt;  End Function&lt;br /&gt;&lt;br /&gt;  Private Function ToBin(inNumber, OutLenStr )&lt;br /&gt;    Dim binary&lt;br /&gt;    binary = ""&lt;br /&gt;    do while inNumber &gt;= 1&lt;br /&gt;      binary = binary &amp; inNumber mod 2&lt;br /&gt;      inNumber = inNumber \ 2&lt;br /&gt;    loop&lt;br /&gt;    binary = binary &amp; String(OutLenStr - len(binary), "0")&lt;br /&gt;    ToBin = StrReverse(binary)&lt;br /&gt;  End Function&lt;br /&gt;&lt;br /&gt;  Private Function Bin2Decimal(inBin)&lt;br /&gt;    Dim counter&lt;br /&gt;    Dim temp&lt;br /&gt;    Dim Value&lt;br /&gt;    inBin = StrReverse(inBin)&lt;br /&gt;    temp = 0&lt;br /&gt;    For counter = 1 to Len(inBin)&lt;br /&gt;      If counter = 1 then&lt;br /&gt;        Value = 1&lt;br /&gt;      Else&lt;br /&gt;        Value = Value  * 2&lt;br /&gt;      End If&lt;br /&gt;      temp = temp + mid(inBin, counter ,1)  *  Value&lt;br /&gt;    Next&lt;br /&gt;    Bin2Decimal = temp&lt;br /&gt;  End Function&lt;br /&gt;&lt;br /&gt;  Public Function SWFDump(fileName)&lt;br /&gt;&lt;br /&gt;    header = ReadHeader (fileName)&lt;br /&gt;    mversion = asc(mid(header,4,1))&lt;br /&gt;    mfilelen = asc(mid(header,5,1))&lt;br /&gt;    mfilelen = mfilelen + asc(mid(header,6,1)) * 256&lt;br /&gt;    mfilelen = mfilelen + asc(mid(header,7,1)) * 256 * 256&lt;br /&gt;    mfilelen = mfilelen + asc(mid(header,8,1)) * 256 * 256 * 256&lt;br /&gt;&lt;br /&gt;    RECTdata = ToBin(asc(mid(header,9,1)),8)&lt;br /&gt;    RECTdata = RECTdata &amp; ToBin(asc(mid(header,10,1)),8)&lt;br /&gt;    RECTdata = RECTdata &amp; ToBin(asc(mid(header,11,1)),8)&lt;br /&gt;    RECTdata = RECTdata &amp; ToBin(asc(mid(header,12,1)),8)&lt;br /&gt;    RECTdata = RECTdata &amp; ToBin(asc(mid(header,13,1)),8)&lt;br /&gt;    RECTdata = RECTdata &amp; ToBin(asc(mid(header,14,1)),8)&lt;br /&gt;    RECTdata = RECTdata &amp; ToBin(asc(mid(header,15,1)),8)&lt;br /&gt;    RECTdata = RECTdata &amp; ToBin(asc(mid(header,16,1)),8)&lt;br /&gt;    RECTdata = RECTdata &amp; ToBin(asc(mid(header,17,1)),8)&lt;br /&gt;&lt;br /&gt;    nBits = Mid(RECTdata,1,5)&lt;br /&gt;    nBits = Bin2Decimal(nBits)&lt;br /&gt;&lt;br /&gt;    mxMin =  Bin2Decimal(Mid(RECTdata,6,nBits))&lt;br /&gt;    mxMax =  Bin2Decimal(Mid(RECTdata,6 + nBits * 1 ,nBits))&lt;br /&gt;    myMin =  Bin2Decimal(Mid(RECTdata,6 + nBits * 2 ,nBits))&lt;br /&gt;    myMax =  Bin2Decimal(Mid(RECTdata,6 + nBits * 3 ,nBits))&lt;br /&gt;&lt;br /&gt;    mheigt = (myMax - myMin) / 20&lt;br /&gt;    mwidth = (mxMax - mxMin) / 20&lt;br /&gt;&lt;br /&gt;    mframerate = asc(mid(header,18,1))&lt;br /&gt;&lt;br /&gt;    mframecount = asc(mid(header,19,1))&lt;br /&gt;    mframecount = mframecount + asc(mid(header,20,1)) * 256&lt;br /&gt;&lt;br /&gt;  End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Public Property Get Heigt()&lt;br /&gt;    Heigt = mheigt&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public Property Get Width()&lt;br /&gt;    Width = mwidth&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public Property Get Version()&lt;br /&gt;    Version = mversion&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public Property Get FileLen()&lt;br /&gt;    FileLen = mfilelen&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public Property Get xMin()&lt;br /&gt;    xMin = mxMin&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public Property Get xMax()&lt;br /&gt;    xMax = mxMax&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public Property Get yMin()&lt;br /&gt;    yMin = myMin&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public Property Get yMax()&lt;br /&gt;    yMax = myMax&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public Property Get Framerate()&lt;br /&gt;    Framerate = mframerate&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public Property Get Framecount()&lt;br /&gt;    Framecount = mframecount&lt;br /&gt;  End Property&lt;br /&gt;End Class&lt;br /&gt;%&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111839838415313079?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111839838415313079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111839838415313079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839838415313079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839838415313079'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/membaca-informasi-file-flash-swf.html' title='Membaca Informasi File Flash (.swf) Melalui Halaman ASP'/><author><name>Shendy Christian - 202114678</name><uri>http://www.blogger.com/profile/09765165593673800802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111847389468048858</id><published>2005-06-10T03:05:00.000-07:00</published><updated>2005-06-11T00:11:34.686-07:00</updated><title type='text'>Mendapatkan Informasi  stored procedure</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;Kadang-kadang ini akanmenjadi berguna dalam mendapatkan informasi prosedur dari dalam database untuk menjalankan update otomatis, atau untuk GUI. Dibawah ini ada sebuah  metode  cepat untuk mendapatkan informasi stored procedure dan  mengembalikannya dalam sebuah DataSet.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;public DataSet GetMainSprocList()&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;{ &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   SqlConnection conn = new SqlConnection();  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   conn.ConnectionString = "server=local; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   uid=user;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   pwd=pass;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   database=db";  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   conn.Open();    &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   string sql = "Select 'false' As UseIt, name As ProcedureName   &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   From &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;sysobjects Where xtype='P' And category=0 Order By Name ASC";   &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   SqlDataAdapter da = new SqlDataAdapter(sql,conn);  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   DataSet ds = new DataSet();  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   da.Fill(ds,"MainProcedureList");  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   conn.Close();  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;   return ds;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:verdana;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111847389468048858?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111847389468048858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111847389468048858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847389468048858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847389468048858'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/mendapatkan-informasi-stored-procedure.html' title='Mendapatkan Informasi  stored procedure'/><author><name>limskeren (202114583)</name><uri>http://www.blogger.com/profile/11410234034097216113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111839794552872943</id><published>2005-06-10T03:04:00.000-07:00</published><updated>2005-06-10T03:05:45.530-07:00</updated><title type='text'>MENGUBAH String dalam FORMAT $51,234.98 MENJADI 51234.98</title><content type='html'>Langkah pertama adalah membersihkan string dari spasi dan karakter-karakter yang mengganggu dengan menggunakan regular expression.&lt;br /&gt;Dalam VB Script :&lt;br /&gt;Function StripNonNum(strInput)&lt;br /&gt;  Dim regEx&lt;br /&gt;' Create a regular expression&lt;br /&gt;  Set regEx = New RegExp&lt;br /&gt;&lt;br /&gt;' Match any character NOT in this list&lt;br /&gt;  regEx.Pattern = "[^0123456789\.]"&lt;br /&gt;  regEx.IgnoreCase = True&lt;br /&gt;  regEx.Global = True&lt;br /&gt;&lt;br /&gt;' Replace matches with zero length string&lt;br /&gt;  StripNonNum = regEx.Replace(strInput, "")&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;' Returns: 51234.98&lt;br /&gt;Response.Write StripNonNum("$51, 234.98")&lt;br /&gt;Dalam JScript :&lt;br /&gt;&lt;%@language=JScript%&gt;&lt;br /&gt;&lt;%&lt;br /&gt;&lt;br /&gt;// Acts exactly the same as the VBScript version&lt;br /&gt;function MakeNumber(strInput) {&lt;br /&gt;  var re = new RegExp('[^1234567890\.]', 'gi')&lt;br /&gt;  return(strInput.replace(re, ''));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Returns 51234.98&lt;br /&gt;Response.Write(MakeNumber('$51, 234.98'));&lt;br /&gt;%&gt;&lt;br /&gt;Sebenarnya VBScript mempunyai built-in function yang dapat menyelesaikan permasalahan ini. Function ini bersifat “localized”, artinya bila kita menggunakannya di Amerika maka function ini akan mengenali tanda dollar sebagai symbol mata uang tapi di Jepang, function ini akan mengenali Yen sebagai mata uang.&lt;br /&gt;Function CCur berarti “Convert Currency” dapat digunakan sebagai berikut :&lt;br /&gt;Response.Write CCur("$51,234.98") ' will write 51234.98&lt;br /&gt;Response.Write CCur("4.55555") ' will write 4.5556&lt;br /&gt;Simbol mata uang diwakili secara internal oleh MS dengan 4 digit ke kanan dari decimal point. Salah satu cara untuk menggunakan CCur dan melakukan pengecekan terhadap error dapat dilihat pada source code berikut :&lt;br /&gt;&lt;% &lt;br /&gt;val = "NOT VALID"&lt;br /&gt;On Error Resume Next&lt;br /&gt;val = CCur( Request("money") ) &lt;br /&gt;On Error Goto 0&lt;br /&gt;Response.Write val&lt;br /&gt;%&gt;&lt;br /&gt;Bila kita ingin menggunakan Deutsche Mark (mata uang Jerman), kita dapat menambahkan :&lt;br /&gt;&lt;%&lt;br /&gt;Session.LCID = 1031&lt;br /&gt;%&gt;&lt;br /&gt;Sekarang, $12,345.67 akan ditolak namun 123.456 DM akan diterima. Hal ini sangat berguna bagi site-site yang menangani berbagai symbol mata uang yang berbeda.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111839794552872943?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111839794552872943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111839794552872943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839794552872943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839794552872943'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/mengubah-string-dalam-format-5123498.html' title='MENGUBAH String dalam FORMAT $51,234.98 MENJADI 51234.98'/><author><name>Shendy Christian - 202114678</name><uri>http://www.blogger.com/profile/09765165593673800802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111839777925804157</id><published>2005-06-10T03:02:00.000-07:00</published><updated>2005-06-10T03:02:59.260-07:00</updated><title type='text'>Mengisi dan Mengakses Clipboard</title><content type='html'>Anda pasti sering menggunakan Clipboard Windows. Setiap kali anda melakukan Copy &amp; Paste atau Cut &amp; Paste anda menggunakan Clipboard. Data yang anda copy &amp; paste tersebut dapat berupa gambar (bitmap), suara atau sekedar text. Misal, anda meng-copy suatu text dari notepad ke suatu cell excel anda menggunakan Clipboard &lt;br /&gt;Menggunakan Clipboard di code C# anda adalah sangat mudah. Misal, anda ingin meletakkan isi text dari TextBox1 anda ke Clipboard anda cukup menulis: &lt;br /&gt;      Clipboard.SetDataObject(textBox1.Text); &lt;br /&gt;Jika anda dapat mengisi Clipboard, anda tentu dapat mengambil data pada Clipboard.  Kali ini, jika anda ingin mengambil data text dari Clipboard dan meletakkannya pada text TextBox1 anda, anda cukup menulis:&lt;br /&gt;textBox1.Text = Clipboard.GetDataObject()&lt;br /&gt;      .GetData(DataFormats.Text).ToString();&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111839777925804157?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111839777925804157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111839777925804157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839777925804157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839777925804157'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/mengisi-dan-mengakses-clipboard.html' title='Mengisi dan Mengakses Clipboard'/><author><name>Shendy Christian - 202114678</name><uri>http://www.blogger.com/profile/09765165593673800802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111839757206394120</id><published>2005-06-10T02:58:00.000-07:00</published><updated>2005-06-10T03:00:26.986-07:00</updated><title type='text'>Membuat RollOver Button Server Control</title><content type='html'>Roll over button adalah button yang menampilkan sebuah image secara default ketika button tersebut tidak dilalui oleh mouse dan menampilkan image yang berbeda ketika dilewati oleh mouse.&lt;br /&gt;Pada kesempatan ini akan dibahas cara untuk membuat roll-over button &lt;br /&gt;Dasar Pembuatan Roll-Over Button&lt;br /&gt;Langkah pertama dalam membuat roll over button adalah menyiapkan 2 buah file grafik, satu untuk image default dan satu lagi bila button tersebut dilewati mouse.&lt;br /&gt;Langkah berikutnya adalah membuat tag hyperlink (&lt;a&gt;) dengan image default sebagai content dari hypelink. Sebaiknya atribut name dari tag &lt;img&gt; diberi nama secara unik. Sebagai contoh, image default diberi nama home.gif, seperti berikut : &lt;br /&gt;&lt;a href="..."&gt;&lt;br /&gt;  &lt;img src="home.gif" name="home_img" border="0" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Berikutnya kita tulis source code dari JavaScript client side. Object Image dari JavaScript akan menampung image yang digunakan. Hal ini akan memampukan kita untuk menukar image default dengan image roll over secara otomatis sehingga user tidak perlu mendownload image roll over yang sebenarnya ketika dia melewatkan mouse di atas button untuk pertama kali. Berikut source codenya : &lt;br /&gt;&lt;script language="JavaScript"&gt;&lt;br /&gt;  home_img_out = new Image();&lt;br /&gt;  home_img_out.src = "home.gif";&lt;br /&gt;&lt;br /&gt;  home_img_over = new Image();&lt;br /&gt;  home_img_over.src = "home_over.gif";&lt;br /&gt;&lt;/script&gt;  &lt;br /&gt;Langkah selanjutnya adalah menulis function Java Script yang berguna untuk menukar image default dengan image roll over atau sebaliknya. Function ini akan kita beri nama function display() dan function ini akan memiliki 2 parameter. Parameter pertama menunjukkan nama dari image dari tag &lt;img&gt; yang akan kita ganti imagenya. Parameter kedua adalah nama dari object image yang akan kita ganti imagenya. Berikut source codenya :&lt;br /&gt;&lt;script language="JavaScript"&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;  function display(imgName, imgUrl) {&lt;br /&gt;    if (document.images &amp;&amp; typeof imgUrl != 'undefined')&lt;br /&gt;      document[imgName].src = imgUrl.src;&lt;br /&gt;  }&lt;br /&gt;// --&gt;&lt;br /&gt;&lt;/script&gt;  &lt;br /&gt;Baris pertama (statement if) ) memastikan bahwa object image eksis. Alasan pengecekan ini adalah karena user mungkin hanya mendownload website secara sebagian saja ketika function ini dipanggil. Bila tidak dilakukan pengecekan untuk hal ini maka kemungkinan akan terjadi JavaScript error.&lt;br /&gt;Setelah melewati pengecekan ini, property src dari tag &lt;img&gt; diset menjadi property src dari object Image.&lt;br /&gt;Langkah terakhir adalah menghubungkan function  display() dengan mouse event entering dan leaving. Kita perlu menambahkan event onmouseover dan onmouseout pada tag &lt;a&gt;. Event handler ini akan memanggil function display() dengan memasingkan parameter. Berikut source codenya : &lt;br /&gt;&lt;a href="..."&lt;br /&gt;     onmouseover="display('home_img', home_img_over);"&lt;br /&gt;     onmouseout="display('home_img', home_img_out);"&lt;br /&gt;    &gt;&lt;br /&gt;  &lt;img src="home.gif" name="home_img" border="0" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111839757206394120?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111839757206394120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111839757206394120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839757206394120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839757206394120'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/membuat-rollover-button-server-control.html' title='Membuat RollOver Button Server Control'/><author><name>Shendy Christian - 202114678</name><uri>http://www.blogger.com/profile/09765165593673800802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111839763952752918</id><published>2005-06-10T02:57:00.000-07:00</published><updated>2005-06-10T03:00:39.536-07:00</updated><title type='text'>How to Use a GDI+ Application in NetCOBOL for .NET</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;Berikut ini adalah pembahasan mengenai bagaimana untuk men-develop sebuah aplikasi GDI+ (Graphics Device Interface) dengan menggunakan &lt;strong&gt;System.Drawing&lt;/strong&gt; dan menggunakan &lt;strong&gt;NetCOBOL&lt;/strong&gt; untuk .NET.&lt;br /&gt;&lt;br /&gt;Untuk mencobanya, bisa dengan mendownload NetCOBOL untuk .NET software pada site berikut ini:  &lt;/span&gt;&lt;a href="http://www.netcobol.com/products/windows/netcobol.html#downloads" target="_blank"&gt;&lt;span style="font-family:trebuchet ms;"&gt;http://www.netcobol.com/products/windows/netcobol.html#downloads&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Untuk memulai menggunakan GDI ini, diperlukan brush pen, beberapa jenis teksture untuk image, color, dan sebagainya. Secara teknisnya, dilakukan dengan menggunakan &lt;strong&gt;namespace System.Drawing&lt;/strong&gt;. Kemudian, buat COBOL Project dan pilih Windows Application sebagai templatenya. Kita akan membuat sebuah tombol pada form tersebut dan setelah diklik, maka akan menampilkan message, dengan menggunakan namespace System.Drawing. Aksesoris yg diperlukan berasal dari kelas-kelas Graphics, Bitmap, TextureBrush, dan Font. Lalu, tambahkan semua code berikut ini ke dalam REPOSITORY:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;"&gt;CLASS CLASS-GRAPHICS AS "System.Drawing.Graphics"&lt;br /&gt;CLASS CLASS-BITMAP AS "System.Drawing.Bitmap"&lt;br /&gt;CLASS CLASS-TEXTUREBRUSH AS "System.Drawing.TextureBrush"&lt;br /&gt;CLASS CLASS-FONT AS "System.Drawing.Font" &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;Dalam WORKING-STORAGE SECTION deklarasikan :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;01 graphicsobj OBJECT REFERENCE CLASS-GRAPHICS.&lt;br /&gt;01 brushobj OBJECT REFERENCE CLASS-TEXTUREBRUSH.&lt;br /&gt;01 bmpobj OBJECT REFERENCE CLASS-BITMAP.&lt;br /&gt;01 fontobj OBJECT REFERENCE CLASS-FONT.&lt;br /&gt;01 strFileName OBJECT REFERENCE CLASS-STRING.&lt;br /&gt;01 x1 COMP-1. 01 y1 COMP-1.&lt;br /&gt; &lt;/strong&gt;&lt;br /&gt;x1 dan y1 dideklarasikan sebagai COMP-1, yg mana ekuivalen dengan tipe data .NET single. Disini kita tidak memberikan sembarang nilai pada kedua variabel tersebut. Untuk itu, kita bisa menentukannya dengan :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;01 x1 COMP-1 VALUE 7.&lt;br /&gt;01 y1 COMP-1 VALUE 7.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Lalu, pada event click dari button, tulis :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;INVOKE button1 "CreateGraphics" RETURNING graphicsobj.&lt;br /&gt;SET strFileName TO "c:\bg.bmp".&lt;br /&gt;INVOKE CLASS-BITMAP "NEW" USING BY VALUE strFileName RETURNING bmpobj.&lt;br /&gt;INVOKE CLASS-TEXTUREBRUSH "NEW" USING BY VALUE bmpobj RETURNING brushobj.&lt;br /&gt;INVOKE CLASS-FONT "NEW" USING BY VALUE "Verdana" 14 RETURNING fontobj.&lt;br /&gt;SET strString TO "Cobol GDI+ Application".&lt;br /&gt;INVOKE graphicsobj "DrawString" USING BY VALUE strString fontobj brushobj x1 y1.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Dalam kode tersebut, &lt;strong&gt;"Cobol GDI+ Application"&lt;/strong&gt; ditampilkan dan teks ini mempunyai tekstur berupa bitmap image. &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111839763952752918?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111839763952752918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111839763952752918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839763952752918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839763952752918'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/how-to-use-gdi-application-in-netcobol.html' title='How to Use a GDI+ Application in NetCOBOL for .NET'/><author><name>Yulina Jamal (201114219)</name><uri>http://www.blogger.com/profile/08423561022928569448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111839738544399172</id><published>2005-06-10T02:54:00.000-07:00</published><updated>2005-06-10T02:56:57.443-07:00</updated><title type='text'>Membaca Tag MP3 ID3 Melalui Halaman ASP</title><content type='html'>Berikut adalah source code untuk memperoleh tag ID3v1.0 dari sebuah file MP3. Untuk melakukan hal ini, kita memerlukan data biner dari sebauh file MP3. Hal ini dilakukan dengan menggunakan object Stream. Code berikut akan beriterasi melalui direktori fisikal pada Web Server dan mengeluarkan output berupa informasi mengenai ID3 dari setiap file MP3 pada direktori tersebut.&lt;br /&gt;&lt;!--METADATA TYPE="typelib"&lt;br /&gt;      UUID="00000205-0000-0010-8000-00AA006D2EA4"&lt;br /&gt;     NAME="ADODB Type Library"&lt;br /&gt;--&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;  Function ConvertBin(Binary)&lt;br /&gt;  'This function converts a binary byte into an ASCII byte.&lt;br /&gt;    for i = 1 to LenB(Binary)&lt;br /&gt;      strChar = chr(AscB(MidB(Binary,i,1)))&lt;br /&gt;      ConvertBin = ConvertBin &amp; strChar&lt;br /&gt;    Next&lt;br /&gt;  End Function&lt;br /&gt;&lt;br /&gt;  dim objStream&lt;br /&gt;  dim strTag, strSongName, strArtist, strAlbum, strYear, _&lt;br /&gt;      strComment, strGenre, strFile&lt;br /&gt;&lt;br /&gt;  'Specify the folder to iterate through, displaying all the MP3s&lt;br /&gt;  Const folder = "C:\mp3s\"&lt;br /&gt;&lt;br /&gt;  'Grab the folder information&lt;br /&gt;  'For more information on this technique below, check out this FAQ:&lt;br /&gt;  '  http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=90&lt;br /&gt;  Dim objFSO, objFolder, objFile&lt;br /&gt;  Set objFSO = Server.CreateObject("Scripting.FileSYstemObject")&lt;br /&gt;  Set objFolder = objFSO.GetFolder(folder)&lt;br /&gt;&lt;br /&gt;  'Create the Stream object&lt;br /&gt;  set objStream = Server.CreateObject("ADODB.Stream")&lt;br /&gt;  objStream.Type = adTypeBinary&lt;br /&gt;&lt;br /&gt;  'Loop through the files in the folder&lt;br /&gt;  For Each objFile in objFolder.Files&lt;br /&gt;    'Open the stream&lt;br /&gt;    objStream.Open&lt;br /&gt;    objStream.LoadFromFile objFile.Path&lt;br /&gt;&lt;br /&gt;    'Read the last 128 bytes&lt;br /&gt;    objStream.Position =  objStream.size - 128&lt;br /&gt;&lt;br /&gt;    'Read the ID3 v1 tag info&lt;br /&gt;    strTag = ConvertBin(objStream.Read(3))&lt;br /&gt;    if ucase(strTag) = "TAG" then&lt;br /&gt;      strSongName = ConvertBin(objStream.Read(30))&lt;br /&gt;      strArtist = ConvertBin(objStream.Read(30))&lt;br /&gt;      strAlbum = ConvertBin(objStream.Read(30))&lt;br /&gt;      strYear = ConvertBin(objStream.Read(4))&lt;br /&gt;      strComment = ConvertBin(objStream.Read(30))&lt;br /&gt;    end if&lt;br /&gt;&lt;br /&gt;    'Display the results&lt;br /&gt;    response.write "&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;h3&gt;" &amp; _&lt;br /&gt;                   "ID3 Tag info for:&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;" &amp; _&lt;br /&gt;                   "&lt;td colspan=2&gt;" &amp; objFile.Name &amp; "&lt;/td&gt;&lt;/tr&gt;"&lt;br /&gt;    response.write "&lt;tr&gt;&lt;td&gt;&lt;b&gt;Artist: &lt;/b&gt;&lt;/td&gt;" &amp; _&lt;br /&gt;                   "&lt;td&gt;" &amp; strArtist &amp; "&lt;/td&gt;&lt;/tr&gt;"&lt;br /&gt;    response.write "&lt;tr&gt;&lt;td&gt;&lt;b&gt;Track: &lt;/b&gt;&lt;/td&gt;" &amp; _&lt;br /&gt;                   "&lt;td&gt;" &amp; strSongName  &amp; "&lt;/td&gt;&lt;/tr&gt;"&lt;br /&gt;    response.write "&lt;tr&gt;&lt;td&gt;&lt;b&gt;Album: &lt;/b&gt;&lt;/td&gt;" &amp; _&lt;br /&gt;                   &lt;td&gt;" &amp; strAlbum &amp; "&lt;/td&gt;&lt;/tr&gt;"&lt;br /&gt;    response.write "&lt;tr&gt;&lt;td&gt;&lt;b&gt;Year: &lt;/b&gt;&lt;/td&gt;" &amp; _&lt;br /&gt;                   "&lt;td&gt;" &amp; strYear &amp; "&lt;/td&gt;&lt;/tr&gt;"&lt;br /&gt;    response.write "&lt;tr&gt;&lt;td&gt;&lt;b&gt;Comment: &lt;/b&gt;" &amp; _&lt;br /&gt;                   "&lt;/td&gt;&lt;td&gt;" &amp; strComment &amp; "&lt;/td&gt;&lt;/tr&gt;"&lt;br /&gt;    response.write "&lt;/table&gt;"&lt;br /&gt;&lt;br /&gt;    objStream.Close&lt;br /&gt;&lt;br /&gt;    Response.Write "&lt;p&gt;&lt;hr&gt;&lt;p&gt;"&lt;br /&gt;  Next&lt;br /&gt;&lt;br /&gt;  Set objStream = Nothing    'Clean up...&lt;br /&gt;%&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111839738544399172?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111839738544399172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111839738544399172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839738544399172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839738544399172'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/membaca-tag-mp3-id3-melalui-halaman.html' title='Membaca Tag MP3 ID3 Melalui Halaman ASP'/><author><name>Shendy Christian - 202114678</name><uri>http://www.blogger.com/profile/09765165593673800802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111848365209844233</id><published>2005-06-10T02:53:00.000-07:00</published><updated>2005-06-11T02:54:12.100-07:00</updated><title type='text'>Pembuatan Color Picker Pada ASP.Net</title><content type='html'>&lt;p&gt;Pembuatan color picker seperti pada adobe. Sehingga jika kita membutuhkannya kita dapat mengimplementasikannya dengan mudah. Caranya adalah &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Private Sub Paletta(ByVal TargetForm As String, _     ByVal PalettaRow As Long, _     ByVal Saturation As Long)        Dim RGBColor As String        Dim Gray As Double        Dim lum As Double        Dim sat As Double        Dim hue As Double        Dim row As HtmlTableRow        Dim cell As HtmlTableCell        Dim RBGcolor As String         sat = Saturation / 100        For hue = 0 To 359 Step (360 / PalettaRow)            row = New HtmlTableRow()            For lum = 0.1 To 1 Step 0.02                cell = New HtmlTableCell()                HlsToRgb(hue, lum, sat, RGBColor)                cell.BgColor = RGBColor                cell.Controls.Add(New HyperLink())                DirectCast(cell.Controls(0), HyperLink).Text = "_"                DirectCast(cell.Controls(0), HyperLink).ForeColor = _                    Color.FromArgb(Val("&amp;h" &amp;amp; Mid(RGBColor, 1, 2)), _                    Val("&amp;h" &amp;amp; Mid(RGBColor, 3, 2)), _                    Val("&amp;h" &amp;amp; Mid(RGBColor, 5, 2)))                DirectCast(cell.Controls(0), HyperLink).NavigateUrl = _                    TargetForm &amp; "?&amp;amp;C=" &amp; RGBColor                row.Cells.Add(cell)            Next lum            Table1.Rows.Add(row)        Next hue        row = New HtmlTableRow()        For Gray = 0 To 255 Step 5.7            cell = New HtmlTableCell()            cell.BgColor = Right("00" &amp; Hex(Gray), 2) &amp;amp; _               Right("00" &amp; Hex(Gray), 2) &amp;amp; Right("00" &amp; Hex(Gray), 2)            cell.Controls.Add(New HyperLink())            DirectCast(cell.Controls(0), HyperLink).Text = "_"            DirectCast(cell.Controls(0), HyperLink).ForeColor = _               Color.FromArgb(Gray, Gray, Gray)            DirectCast(cell.Controls(0), HyperLink).NavigateUrl = _               TargetForm &amp; "?&amp;amp;C=" &amp; Right("00" &amp;amp; Hex(Gray), 2) &amp; _               Right("00" &amp; Hex(Gray), 2) &amp;amp; Right("00" &amp; Hex(Gray), 2)            row.Cells.Add(cell)        Next Gray        Table1.Rows.Add(row)    End Sub        ' Converte HLS in RGB    Private Sub HlsToRgb(ByVal H As Double, ByVal L As Double, _          ByVal S As Double, ByRef RGBColor As String)        Dim p1 As Double        Dim p2 As Double        Dim r As Double        Dim g As Double        Dim b As Double         If L  = 0.5 Then            p2 = L * (1 + S)        Else            p2 = L + S - L * S        End If        p1 = 2 * L - p2        If S = 0 Then            r = Int(L * 255)            g = Int(L * 255)            b = Int(L * 255)        Else            r = Int(QqhToRgb(p1, p2, H + 120) * 255)            g = Int(QqhToRgb(p1, p2, H) * 255)            b = Int(QqhToRgb(p1, p2, H - 120) * 255)        End If        RGBColor = Right("00" &amp; Hex(r), 2) &amp;amp; Right("00" &amp; Hex(g), 2) &amp;amp; _            Right("00" &amp; Hex(b), 2)    End Sub&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111848365209844233?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111848365209844233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111848365209844233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111848365209844233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111848365209844233'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/pembuatan-color-picker-pada-aspnet.html' title='Pembuatan Color Picker Pada ASP.Net'/><author><name>FransKeren(202114545)</name><uri>http://www.blogger.com/profile/01449883220835827258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111847626412580726</id><published>2005-06-10T02:43:00.000-07:00</published><updated>2005-06-11T02:13:58.210-07:00</updated><title type='text'>Merubah Komplek Password dalam ASP.NET V2.0</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Ini adalah contoh lengkap file web.config yang dapat digunakan. letakkan bagian ini antara &lt;membership&gt;dan&lt;/membership&gt; dan letakkan ini dalam &lt;system.web&gt;section.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;?xml version="1.0"?&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;configuration xmlns=""&gt;&lt;a href="http://schemas.microsoft.com/.NetConfiguration/v2.0"&gt;&lt;span style="font-family:verdana;"&gt;http://schemas.microsoft.com/.NetConfiguration/v2.0&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;connectionstrings&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;remove name="LocalSqlServer"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;add name="LocalSqlServer" connectionstring="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=DataDirectoryaspnetdb.mdf"&gt;&lt;/connectionstrings&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;system.web&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;membership&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;providers&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;remove name="AspNetSqlMembershipProvider"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;add name="AspNetSqlMembershipProvider"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;type="System.Web.Security.SqlMembershipProvider, System.Web,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Version=2.0.0.0,&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; Culture=neutral, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;PublicKeyToken=b03f5f7f11d50a3a"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;connectionStringName="LocalSqlServer"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;enablePasswordRetrieval="false"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;enablePasswordReset="true"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;requiresQuestionAndAnswer="true"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;applicationName="/"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;requiresUniqueEmail="false"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;minRequiredPasswordLength="1"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;minRequiredNonalphanumericCharacters="0"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;passwordFormat="Hashed"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;maxInvalidPasswordAttempts="5"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;passwordAttemptWindow="10"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;passwordStrengthRegularExpression="" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/providers&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/membership&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/SYSTEM.WEB&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/configuration&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111847626412580726?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111847626412580726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111847626412580726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847626412580726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847626412580726'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/merubah-komplek-password-dalam-aspnet.html' title='Merubah Komplek Password dalam ASP.NET V2.0'/><author><name>FransKeren(202114545)</name><uri>http://www.blogger.com/profile/01449883220835827258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111839648679021500</id><published>2005-06-10T02:39:00.000-07:00</published><updated>2005-06-10T02:52:39.326-07:00</updated><title type='text'>Konversi URL Menjadi Hyperlink</title><content type='html'>Berikut diberikan 2 fungsi yang berguna bagi web content yang tersimpan pada database di mana URL dan alamat email merupakan bagian dari content. Function ini menggunakan Regular Expression untuk mencari dan mengganti URL dan alamat email menjadi hyperlink yang aktif.&lt;br /&gt;Function utama, InsertHyperlinks, didefiniskan sebagai berikut : &lt;br /&gt;InsertHyperlinks(inText)&lt;br /&gt;Function ini mengembalikan versi dari inText yang sudah dimodifikasi, mengganti seluruh URL dan alamat email dengan hyperlink. Berikut function secara keseluruhan :&lt;br /&gt;'----------------------------------------------&lt;br /&gt;' InsertHyperlinks(inText)&lt;br /&gt;' Returns a inText with "&lt;a href="URL" target="_BLANK"&gt;URL&lt;/a&gt;"&lt;br /&gt;' inserted where there is URL found.&lt;br /&gt;'&lt;br /&gt;' URL can start with "www" or "http"&lt;br /&gt;' or&lt;br /&gt;' URL can be a email address "*@*"&lt;br /&gt;'----------------------------------------------&lt;br /&gt;Function InsertHyperlinks(inText)&lt;br /&gt;Dim objRegExp, strBuf&lt;br /&gt;Dim objMatches, objMatch&lt;br /&gt;Dim Value, ReplaceValue, iStart, iEnd&lt;br /&gt;&lt;br /&gt;  strBuf = ""&lt;br /&gt;  iStart = 1&lt;br /&gt;  iEnd = 1&lt;br /&gt;  Set objRegExp = New RegExp&lt;br /&gt;&lt;br /&gt;  objRegExp.Pattern = "\b(www|http|\S+@)\S+\b"  ' Match URLs and emails&lt;br /&gt;  objRegExp.IgnoreCase = True                   ' Set case insensitivity.&lt;br /&gt;  objRegExp.Global = True                       ' Set global applicability.&lt;br /&gt;  Set objMatches = objRegExp.Execute(inText)&lt;br /&gt;  For Each objMatch in objMatches&lt;br /&gt;    iEnd = objMatch.FirstIndex&lt;br /&gt;    strBuf = strBuf &amp; Mid(inText, iStart, iEnd-iStart+1)&lt;br /&gt;    If InStr(1, objMatch.Value, "@") Then&lt;br /&gt;      strBuf = strBuf &amp; GetHref(objMatch.Value, "EMAIL", "_BLANK")&lt;br /&gt;    Else&lt;br /&gt;      strBuf = strBuf &amp; GetHref(objMatch.Value, "WEB", "_BLANK")&lt;br /&gt;    End If&lt;br /&gt;    iStart = iEnd+objMatch.Length+1&lt;br /&gt;  Next&lt;br /&gt;  strBuf = strBuf &amp; Mid(inText, iStart)&lt;br /&gt;  InsertHyperlinks = strBuf&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Function GetHref(url, urlType, Target)&lt;br /&gt;Dim strBuf&lt;br /&gt;&lt;br /&gt;  strBuf = "&lt;a href="""&lt;br /&gt;  If UCase(urlType) = "WEB" Then&lt;br /&gt;    If LCase(Left(url, 3)) = "www" Then&lt;br /&gt;      strBuf = "&lt;a href=""http://" &amp; url &amp; """ Target=""" &amp; _&lt;br /&gt;               Target &amp; """&gt;" &amp; url &amp; "&lt;/a&gt;"&lt;br /&gt;    Else&lt;br /&gt;      strBuf = "&lt;a href=""" &amp; url &amp; """ Target=""" &amp; _&lt;br /&gt;               Target &amp; """&gt;" &amp; url &amp; "&lt;/a&gt;"&lt;br /&gt;    End If&lt;br /&gt;  ElseIf UCase(urlType) = "EMAIL" Then&lt;br /&gt;    strBuf = "&lt;a href=""mailto:" &amp; url &amp; """ Target=""" &amp; _&lt;br /&gt;             Target &amp; """&gt;" &amp; url &amp; "&lt;/a&gt;"&lt;br /&gt;  End If&lt;br /&gt;  &lt;br /&gt;  GetHref = strBuf&lt;br /&gt;&lt;br /&gt;End Function&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111839648679021500?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111839648679021500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111839648679021500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839648679021500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839648679021500'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/konversi-url-menjadi-hyperlink.html' title='Konversi URL Menjadi Hyperlink'/><author><name>Shendy Christian - 202114678</name><uri>http://www.blogger.com/profile/09765165593673800802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111847565201341660</id><published>2005-06-10T02:37:00.000-07:00</published><updated>2005-06-11T02:18:04.590-07:00</updated><title type='text'>Menggunakan BaseValidator Untuk Mendapatkan control values</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Anda dapat mendapatkan nilai dari input control dengan menggunkan metode BaseValidator yaitu GetControlValidationValue, dengan meletakkan didalam nama dati control's ID metode ini akan mengembalikan nilai dari input control (seperti TextBox, atau ListBox).&lt;br /&gt;public class GetInputValue : BaseValidator&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;{&lt;br /&gt;private string _controlValue; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;public GetInputValue(string ControlID)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;{ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;_controlValue = this.GetControlValidationValue(ControlID); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;} &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;public ControlValue{ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;get&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;return _controlValue;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;} &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111847565201341660?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111847565201341660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111847565201341660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847565201341660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847565201341660'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/menggunakan-basevalidator-untuk.html' title='Menggunakan BaseValidator Untuk Mendapatkan control values'/><author><name>FransKeren(202114545)</name><uri>http://www.blogger.com/profile/01449883220835827258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111848579126507960</id><published>2005-06-10T02:28:00.000-07:00</published><updated>2005-06-11T03:29:51.270-07:00</updated><title type='text'>Pembuatan Library untuk implementasi RSS 2.0</title><content type='html'>Dengan library di bawah ini kita dapat mengimplementasikan RSS 2.0 dengan mudah&lt;br /&gt;&lt;br /&gt;private void Page_Load(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;IranianExperts.RSS.RSSChannel oRSSChannel =&lt;br /&gt;new IranianExperts.RSS.RSSChannel("Channel Title",&lt;br /&gt;"Channel Link", "Channel Description");&lt;br /&gt;&lt;br /&gt;oRSSChannel.PubDate = System.DateTime.Now.ToString();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IranianExperts.RSS.RSSImage oRSSImage =&lt;br /&gt;new IranianExperts.RSS.RSSImage(&lt;br /&gt;"http://www.site.com/images/banner.gif",&lt;br /&gt;"http://www.iranianexperts.com/", "Iranian Experts");&lt;br /&gt;&lt;br /&gt;IranianExperts.RSS.RSSRoot oRSSRoot =&lt;br /&gt;new IranianExperts.RSS.RSSRoot(oRSSChannel,&lt;br /&gt;oRSSImage, Response.OutputStream);&lt;br /&gt;&lt;br /&gt;IranianExperts.RSS.RSSItem oRSSItem = null;&lt;br /&gt;&lt;br /&gt;oRSSItem =&lt;br /&gt;new IranianExperts.RSS.RSSItem("Item 1", "http://www.item1.com/");&lt;br /&gt;oRSSItem.PubDate = System.DateTime.Now.ToString();&lt;br /&gt;oRSSRoot.Items.Add(oRSSItem);&lt;br /&gt;&lt;br /&gt;oRSSRoot.Items.Add("Item 2");&lt;br /&gt;&lt;br /&gt;oRSSRoot.Items.Add("Item 3", "http://www.item3.com/");&lt;br /&gt;&lt;br /&gt;Response.Clear();&lt;br /&gt;Response.ContentEncoding = System.Text.Encoding.UTF8;&lt;br /&gt;Response.ContentType = "text/xml";&lt;br /&gt;IranianExperts.RSS.RSSUtilities.PublishRSS(oRSSRoot);&lt;br /&gt;Response.End();&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111848579126507960?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111848579126507960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111848579126507960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111848579126507960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111848579126507960'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/pembuatan-library-untuk-implementasi.html' title='Pembuatan Library untuk implementasi RSS 2.0'/><author><name>FransKeren(202114545)</name><uri>http://www.blogger.com/profile/01449883220835827258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111848129019635532</id><published>2005-06-10T02:14:00.000-07:00</published><updated>2005-06-11T02:14:50.200-07:00</updated><title type='text'>Extending Security pada ASP.Net dengan menggunakan Roles dan HTTPmodules</title><content type='html'>Pada web application banyak didapat pembobolan. Hal itu karena kita mengijinkan seseorang yang tidak berhak memasuki login page yang seharusnya tidak diperbolehkan. Sehingga orang yang ingin membobol dapat mencoba-coba semua kemungkinan yang ada. Untuk menanganinya kita dapat menggunakan role caranya yaitu&lt;br /&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="utf-8" ?&gt;&lt;br /&gt;&lt;sitemap&gt;&lt;br /&gt;    &lt;siteMapNode url="Default.aspx" title="Home"&lt;br /&gt;                    description="This is the default page"&gt;&lt;br /&gt;        &lt;sitemapnode url="Webform1.aspx" title="Webform1" description=""&gt;&lt;br /&gt;            &lt;siteMapNode url="Marketing/SecureFile.aspx" title="Secure File 1"&lt;br /&gt;                description="" roles="Marketing" /&gt;&lt;br /&gt;        &lt;/sitemapnode&gt;&lt;br /&gt;        &lt;sitemapnode url="" title="Marketing"&gt;&lt;br /&gt;            &lt;siteMapNode url="SecureFile.aspx" title="Secure File 2"&lt;br /&gt;                description="" roles="Marketing" /&gt;&lt;br /&gt;        &lt;/sitemapnode&gt;&lt;br /&gt;        &lt;sitemapnode url="" title="Links"&gt;&lt;br /&gt;            &lt;siteMapNode url="http://google.com" title="Google"&lt;br /&gt;                description="Google" roles="" target="_blank" /&gt;&lt;br /&gt;            &lt;siteMapNode url="http://yahoo.com" title="Yahoo!"&lt;br /&gt;                description="Yahoo!" roles="" target="_blank" /&gt;&lt;br /&gt;            &lt;siteMapNode url="http://microsoft.com" title="Microsoft"&lt;br /&gt;                description="Microsoft" roles="" target="_blank" /&gt;&lt;br /&gt;        &lt;/sitemapnode&gt;&lt;br /&gt;    &lt;/sitemapnode&gt;&lt;br /&gt;&lt;/sitemap&gt;&lt;br /&gt;&lt;br /&gt;Tetapi dengan cara ini saja masih kurang karena jika kitya masuk pada bagian sitemap ini maka tidak akan di restricted. Sehingga kita masih bisa merubahnya. Untuk menjaganya agar aman kita gunakan cara dibawah ini :&lt;br /&gt; &lt;httpmodules&gt;    &lt;add name="SecurityHttpModule" type="Joel.Net.SecurityHttpModule"&gt;&lt;/httpmodules&gt; http module adalah salah satu cara untuk memanggil code dibawah ini. using System;using System.Web;using System.Web.Security; namespace HostCollective.com {     /// &lt;summary&gt;Security Http Module&lt;/summary&gt;    public class SecurityHttpModule : IHttpModule {         public SecurityHttpModule() { }         /// &lt;summary&gt;Initializes a module and prepares        /// it to handle requests.&lt;/summary&gt;        /// &lt;param name="context"&gt;An &lt;see cref="T:System.Web.HttpApplication"&gt;        /// that provides access to the methods, properties,        /// and events common to all application objects within        /// an ASP.NET application &lt;/param&gt;        public void Init(System.Web.HttpApplication context) {            context.AuthenticateRequest += new                     EventHandler(this.AuthenticateRequest);        }         /// &lt;summary&gt;Occurs when a security module        /// has established the identity of the user.&lt;/summary&gt;        private void AuthenticateRequest(Object sender, EventArgs e) {            HttpApplication Application = (HttpApplication)sender;            HttpRequest Request = Application.Context.Request;            HttpResponse Response = Application.Context.Response;            bool allow = false; // Default is not not allow             // Exit if we're on login.aspx,            // not authenticated, or no siteMapNode exists.            if (Request.Url.AbsolutePath.ToLower() ==                 FormsAuthentication.LoginUrl.ToLower()) return;            if (Application.Context.User == null)                 Response.Redirect(FormsAuthentication.LoginUrl);            if (SiteMap.CurrentNode == null) return;             // Check if user is in roles            if (SiteMap.CurrentNode.Roles.Count == 0) {                allow = true; // No Roles found, so we allow.            } else {                 // Loop through each role and check to see if user is in it.                foreach (string role in SiteMap.CurrentNode.Roles) {                    if (Roles.IsUserInRole(role)) { allow = true; break; }                }            }             // Do we deny?            if (allow == false)                Response.Redirect(FormsAuthentication.LoginUrl);        }         /// &lt;summary&gt;Disposes of the resources (other than memory)        /// used by the module that implements        /// &lt;see cref="T:System.Web.IHttpModule"&gt;.&lt;/summary&gt;        public void Dispose() { }    }}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111848129019635532?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111848129019635532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111848129019635532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111848129019635532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111848129019635532'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/extending-security-pada-aspnet-dengan.html' title='Extending Security pada ASP.Net dengan menggunakan Roles dan HTTPmodules'/><author><name>FransKeren(202114545)</name><uri>http://www.blogger.com/profile/01449883220835827258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111839518240805044</id><published>2005-06-10T02:13:00.000-07:00</published><updated>2005-06-10T02:19:42.416-07:00</updated><title type='text'>Menggunakan .Net Framework Data Provider untuk Oracle</title><content type='html'>Selama ini kita menggunakan driver OleDb bila kita ingin mengakses database Oracle dari aplikasi ASP.NET. Data provider OleDb adalah data provider yang digunakan pada Access, SQL, Excel, Oracle.&lt;br /&gt; Masalah yang timbul bila kita menggunakan data provider yang umum adalah data provider tersebut tidak dapat memaksimalkan performance untuk data store tertentu. Untuk mengatasi hal ini, Microsoft merelease data provider khusus untuk Microsoft SQL Server 7.0 dan di atasnya, bernama SqlClient. Dengan ini kita tidak perlu menggunakan driver OleDb.&lt;br /&gt;Microsoft mengatakan bahwa performance dari provider baru ini melebihi performance provider lama sebesar 200%.&lt;br /&gt;Oracle data provider men-support semua tipe data dari oracle 9i dan cursor dari store procedure Oracle yang mengembalikan result set.  Sebagai catatan, Oracle 8i Release 3(8.1.7) Client atau di atasnya harus menginstal Web Server untuk provider ini.&lt;br /&gt;Berikut adalah langkah-langkah untuk mengganti source code bila kita mempunyai ASP.NET code yang mengakses database Oracle :&lt;br /&gt;1.                  Menginstal provider dari situs Microsoft&lt;br /&gt;2.                  Menambahkan reference (System.Data.OracleClient.dll) pada Visual Studio .Net Project&lt;br /&gt;3.                  Mengganti semua OleDbConnection, OleDbDataAdapter, OleDbCommand, OleDbDataReader, dan sebagainya dengan OracleConnection, OracleDataAdapter, OracleCommand, and OracleDataReader pada kode kita.&lt;br /&gt;Kita juga perlu menambahkan Imports System.Data.OracleClient (atau System.Data.OracleClient, bila kita menggunakan C#) bila kita ingin menghindari full namespace&lt;br /&gt;Sebuah contoh untuk mengkonversi provider OleDb menjadi provider Oracle dapat dilihat pada source code berikut :&lt;br /&gt;Public Function myDataTable(ByVal SQL As String, ByVal ConnStr As String) As DataTable    Dim cn As OleDbConnection   &lt;br /&gt;Dim dsTemp As DataSet   &lt;br /&gt;Dim dsCmd As OleDbDataAdapter     &lt;br /&gt;cn = New OleDbConnection(ConnStr)   &lt;br /&gt;cn.Open()     &lt;br /&gt;dsCmd = New OleDbDataAdapter(SQL, cn)   &lt;br /&gt;dsTemp = New DataSet()   &lt;br /&gt;dsCmd.Fill(dsTemp, "myQuery")   &lt;br /&gt;cn.Close()   &lt;br /&gt;Return dsTemp.Tables(0)&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Kode di atas akan digantikan dengan….&lt;br /&gt;Public Function myDataTable(ByVal SQL As String, ByVal ConnStr As String) As DataTable &lt;br /&gt;Dim cn As OracleConnection   &lt;br /&gt;Dim dsTemp As DataSet   &lt;br /&gt;Dim dsCmd As OracleDataAdapter     &lt;br /&gt;cn = New OracleConnection(ConnStr)   &lt;br /&gt;cn.Open()     &lt;br /&gt;dsCmd = New OracleDataAdapter(SQL, cn)   &lt;br /&gt;dsTemp = New DataSet()   &lt;br /&gt;dsCmd.Fill(dsTemp, "myQuery")   &lt;br /&gt;cn.Close()   &lt;br /&gt;Return dsTemp.Tables(0)&lt;br /&gt;End Function&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111839518240805044?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111839518240805044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111839518240805044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839518240805044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839518240805044'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/menggunakan-net-framework-data.html' title='Menggunakan .Net Framework Data Provider untuk Oracle'/><author><name>Shendy Christian - 202114678</name><uri>http://www.blogger.com/profile/09765165593673800802</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111848111927037827</id><published>2005-06-10T02:11:00.000-07:00</published><updated>2005-06-11T02:12:42.670-07:00</updated><title type='text'>Pembuatan DataForm Application seperti Windows Application pada ASP.Net dengan menggunakan ADO.NET</title><content type='html'>Dataform pada windows application banyak digunakan pada berbagai perusahaan untuk keperluan sistem mereka seperti database application. Tetapi pada internet/web application jarang yang dapat melakukan hal itu karena keterbatasannya. Tetapi pada ADO.Net kita dapat melakukan hal itu. Caranya adalah&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Private Sub Page_Load(ByVal sender As System.Object, _&lt;br /&gt;ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;&lt;br /&gt;' Put user code to initialize the page here&lt;br /&gt;' Passing the Data Panel to the navigator coz it'll not&lt;br /&gt;' work from design mode properties (bug)&lt;br /&gt;&lt;br /&gt;SqlDataNavigator1.ControlToNavigate = Me.SqlDataPanel1&lt;br /&gt;&lt;br /&gt;' also passing the connection string from web.config&lt;br /&gt;' becoz passing it from the design mode will not work (bug)&lt;br /&gt;&lt;br /&gt;SqlDataPanel1.Connection = New _&lt;br /&gt;SqlConnection(System.Configuration.ConfigurationSettings.AppSettings(_&lt;br /&gt;"ConnStr"))&lt;br /&gt;&lt;br /&gt;'and finally passing it to the navigator too.&lt;br /&gt;SqlDataNavigator1.Connection = Me.SqlDataPanel1.Connection&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;'Handling the add record btn&lt;br /&gt;Private Sub DataAddButton1_Click(ByVal sender As System.Object, _&lt;br /&gt;ByVal e As System.EventArgs) Handles DataAddButton1.Click&lt;br /&gt;&lt;br /&gt;Dim insertStr As String = "insert into Employees" &amp;amp; _&lt;br /&gt;" (LastName,FirstName,Title,City,Country,HomePhone,Notes) values('"_&lt;br /&gt;+ Me.LastName_Txt.Text + "','" + Me.FirstName_Txt.Text + _&lt;br /&gt;"','" + Me.Title_Txt.Text + "', '" + Me.City_Txt.Text + _&lt;br /&gt;"','" + Me.Cntry_Txt.Text + "','" + Me.HomePhone_Txt.Text + _&lt;br /&gt;"','" + Me.Notes_Txt.Text + "')"&lt;br /&gt;&lt;br /&gt;Dim conn As New _&lt;br /&gt;SqlConnection(System.Configuration.ConfigurationSettings.AppSettings(_&lt;br /&gt;"ConnStr"))&lt;br /&gt;Dim cmd As New SqlCommand(insertStr, conn)&lt;br /&gt;&lt;br /&gt;Try&lt;br /&gt;conn.Open()&lt;br /&gt;cmd.ExecuteNonQuery()&lt;br /&gt;Finally&lt;br /&gt;conn.Close()&lt;br /&gt;End Try&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;'Handling the delete btn&lt;br /&gt;Private Sub Delete_Btn_Click(ByVal sender As System.Object, _&lt;br /&gt;ByVal e As System.EventArgs) Handles Delete_Btn.Click&lt;br /&gt;&lt;br /&gt;Dim delStr As String = _&lt;br /&gt;"delete from Employees where EmployeeID='" + _&lt;br /&gt;Me.EmpID_Txt.Text + "'"&lt;br /&gt;&lt;br /&gt;Dim conn As New _&lt;br /&gt;SqlConnection(System.Configuration.ConfigurationSettings.AppSettings(_&lt;br /&gt;"ConnStr"))&lt;br /&gt;&lt;br /&gt;Dim cmd As New SqlCommand(delStr, conn)&lt;br /&gt;&lt;br /&gt;Try&lt;br /&gt;conn.Open()&lt;br /&gt;cmd.ExecuteNonQuery()&lt;br /&gt;Finally&lt;br /&gt;conn.Close()&lt;br /&gt;End Try&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;'Handling the update btn&lt;br /&gt;&lt;br /&gt;Private Sub DataUpdateButton1_Click(ByVal sender As System.Object, _&lt;br /&gt;ByVal e As System.EventArgs) Handles DataUpdateButton1.Click&lt;br /&gt;&lt;br /&gt;Dim updateStr As String = "update Employees set LastName='" + _&lt;br /&gt;Me.LastName_Txt.Text + "',FirstName='" + _&lt;br /&gt;Me.FirstName_Txt.Text + "',Title='" + _&lt;br /&gt;Me.Title_Txt.Text + "',City='" + _&lt;br /&gt;Me.City_Txt.Text + "',Country= '" + _&lt;br /&gt;Me.Cntry_Txt.Text + "',HomePhone='" + _&lt;br /&gt;Me.HomePhone_Txt.Text + "',Notes='" + _&lt;br /&gt;Me.Notes_Txt.Text + "' where EmployeeID='" + _&lt;br /&gt;Me.EmpID_Txt.Text + "'"&lt;br /&gt;&lt;br /&gt;Dim conn As New _&lt;br /&gt;SqlConnection(System.Configuration.ConfigurationSettings.AppSettings(_&lt;br /&gt;"ConnStr"))&lt;br /&gt;&lt;br /&gt;Dim cmd As New SqlCommand(updateStr, conn)&lt;br /&gt;&lt;br /&gt;Try&lt;br /&gt;conn.Open()&lt;br /&gt;cmd.ExecuteNonQuery()&lt;br /&gt;Finally&lt;br /&gt;conn.Close()&lt;br /&gt;End Try&lt;br /&gt;End Sub&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111848111927037827?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111848111927037827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111848111927037827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111848111927037827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111848111927037827'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/pembuatan-dataform-application-seperti.html' title='Pembuatan DataForm Application seperti Windows Application pada ASP.Net dengan menggunakan ADO.NET'/><author><name>FransKeren(202114545)</name><uri>http://www.blogger.com/profile/01449883220835827258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111847772088249574</id><published>2005-06-10T01:57:00.000-07:00</published><updated>2005-06-11T01:17:21.040-07:00</updated><title type='text'>Implementasi XML dan XPath dan recursive Script</title><content type='html'>Quiz online sering kali menggunakan database dalam pembuatannya kali ini akan dibuat quiz online menggunakan xml dan xpath. Keuntungan menggunakan XML adalah lebih cepat dan hemat.&lt;br /&gt;&lt;br /&gt;Contoh Isi XML (daftar quiz dan jawabannya) :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;quiz xsi="namahtml_kamu.aspx" nonamespaceschemalocation="quiz.xsd"&gt;&lt;br /&gt;      &lt;mchoice&gt;&lt;br /&gt;            &lt;question&gt;What is the capital city of Australia?&lt;/question&gt;&lt;br /&gt;            &lt;answer&gt;Sydney&lt;/answer&gt;&lt;br /&gt;            &lt;answer correct="yes"&gt;Canberra&lt;/answer&gt;&lt;br /&gt;            &lt;answer&gt;Melbourne&lt;/answer&gt;&lt;br /&gt;            &lt;answer&gt;Gold Coast&lt;/answer&gt;&lt;br /&gt;      &lt;/mchoice&gt;&lt;br /&gt;      &lt;mchoice&gt;&lt;br /&gt;            &lt;question&gt;Launceston is the second largest city in which Australian state?&lt;/question&gt;&lt;br /&gt;            &lt;answer&gt;Victoria&lt;/answer&gt;&lt;br /&gt;            &lt;answer&gt;New South Wales&lt;/answer&gt;&lt;br /&gt;            &lt;answer correct="yes"&gt;Tasmania&lt;/answer&gt;&lt;br /&gt;            &lt;answer&gt;Western Australia&lt;/answer&gt;&lt;br /&gt;      &lt;/mchoice&gt;&lt;br /&gt;     &lt;br /&gt;&lt;/quiz&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;untuk load XML nya caranya :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Sub Page_Load(src as Object, e as EventArgs)&lt;br /&gt;&lt;br /&gt;      'Load xml data&lt;br /&gt;      xDoc.Load(strXmlFilePath)&lt;br /&gt;&lt;br /&gt;      'Start a new quiz?&lt;br /&gt;      If Not Page.IsPostBack Then&lt;br /&gt;&lt;br /&gt;            'Yes! Count total question&lt;br /&gt;            intTotalQuestion = xDoc.SelectNodes("/quiz/mchoice").Count&lt;br /&gt;&lt;br /&gt;            'Record start time&lt;br /&gt;            ViewState("StartTime") = DateTime.Now&lt;br /&gt;&lt;br /&gt;            ShowQuestion(intQuestionNo)&lt;br /&gt;      End If&lt;br /&gt;End Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;setelah itu xml ini akan dimanfaatkan dengan menggunakan recursive script sehingga tidak boros halaman. Pemanfaatanya yaitu dengan memanggil halaman yang bersangkutan berulang kali.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Sub AnswerQuestion_Click(src as Object, e as EventArgs)&lt;br /&gt;&lt;br /&gt;      'Retrieve essential variables from state bag&lt;br /&gt;      intTotalQuestion = ViewState("TotalQuestion")&lt;br /&gt;      intQuestionNo = ViewState("QuestionNo")&lt;br /&gt;      intScore = ViewState("Score")&lt;br /&gt;      arrAnswerHistory = ViewState("AnswerHistory")&lt;br /&gt;&lt;br /&gt;      'Correct answer?&lt;br /&gt;      If rblAnswer.SelectedItem.Value = ViewState("CorrectAnswer") Then&lt;br /&gt;            intScore += 1&lt;br /&gt;            arrAnswerHistory.Add(0)&lt;br /&gt;      Else&lt;br /&gt;            arrAnswerHistory.Add(rblAnswer.SelectedItem.Value)&lt;br /&gt;      End If&lt;br /&gt;&lt;br /&gt;      'End of quiz?&lt;br /&gt;      If intQuestionNo=intTotalQuestion Then&lt;br /&gt;&lt;br /&gt;            'Yes! Show the result...&lt;br /&gt;            QuizScreen.Visible = False&lt;br /&gt;            ResultScreen.Visible = True&lt;br /&gt;&lt;br /&gt;            'Render result screen&lt;br /&gt;            ShowResult()&lt;br /&gt;&lt;br /&gt;      Else&lt;br /&gt;&lt;br /&gt;            'Not yet! Show another question...&lt;br /&gt;            QuizScreen.Visible = True&lt;br /&gt;            ResultScreen.Visible = False&lt;br /&gt;            intQuestionNo += 1&lt;br /&gt;     &lt;br /&gt;            'Render next question&lt;br /&gt;            ShowQuestion(intQuestionNo)&lt;br /&gt;      End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cara yang terakhit adalah pemanfaatan XPath. XPath adalah suatu cara dimana kita dapat mengakses xml dengan mudah. Karena xml adalah text sehingga kita harus melakukan text processing. Untuk lebih mudahnya kita dapat menggunakan xPath ini. Misalnya kita mau mendapatkan pilihan dari xml berikut&lt;br /&gt;&lt;br /&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;     &lt;mchoice&gt;&lt;br /&gt;            &lt;question&gt;What is the capital city of Australia?&lt;/question&gt;&lt;br /&gt;            &lt;answer&gt;Sydney&lt;/answer&gt;&lt;br /&gt;            &lt;answer correct="yes"&gt;Canberra&lt;/answer&gt;&lt;br /&gt;            &lt;answer&gt;Melbourne&lt;/answer&gt;&lt;br /&gt;            &lt;answer&gt;Gold Coast&lt;/answer&gt;&lt;br /&gt;      &lt;/mchoice&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;cara akses pada asp adalah :&lt;br /&gt;&lt;br /&gt;    &lt;span style="font-family:courier new;font-size:85%;"&gt;  Dim strXPath as String&lt;br /&gt;&lt;br /&gt;      strXPath = "/quiz/mchoice[" &amp; intQuestionNo.ToString() &amp;amp; "]"&lt;br /&gt;&lt;br /&gt;      'Extract question&lt;br /&gt;      lblQuestion.Text = intQuestionNo.ToString() &amp; ". " &amp;amp; xDoc.SelectSingleNode(strXPath &amp; "/question").InnerXml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Maka dengan sangat mudah kita akan mendapatkan semua yang berhubungan mchoice dengan pada xml.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111847772088249574?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111847772088249574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111847772088249574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847772088249574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111847772088249574'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/implementasi-xml-dan-xpath-dan.html' title='Implementasi XML dan XPath dan recursive Script'/><author><name>FransKeren(202114545)</name><uri>http://www.blogger.com/profile/01449883220835827258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111848587585385396</id><published>2005-06-10T01:30:00.000-07:00</published><updated>2005-06-11T03:31:15.856-07:00</updated><title type='text'>Brosing via Directory atau HTTP dengan ASP.Net</title><content type='html'>Kita dapat melakukan browsing file seperti windows explorer dengan menggunakan ASP.Net&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; private void Page_Load(object sender, System.EventArgs e){    if(IsPostBack)        DoAction();} private void DoAction(){    switch (_actionHidden.Value)    {        case "RefreshBrowse" :            _browseButton_Click(this, null);            break;        case "OpenFile" :            OpenFile();            break;    }    _actionHidden.Value = "";}&lt;br /&gt;Fills the list box on a postback with my own HTML table:private void _browseButton_Click(object sender,                  System.Web.UI.ImageClickEventArgs e){    if (0 != _browseTextBox.Text.Length)    {        UpdateBrowseTextBoxWithSlash();         _browseTextBox.Text += _clickedObjectHidden.Value;        _clickedObjectHidden.Value = "";         FileList fileList = new FileList(_browseTextBox.Text, "*.*");         Table tb = new Table();        TableRow tr;        TableCell td;         tb.Width = Unit.Percentage(100);        tb.BorderWidth = 0;        tb.CellSpacing = 0;        tb.CellPadding = 4;         foreach (string directory in fileList.Directories)        {            tr = new TableRow();            td = new TableCell();            td.Width = Unit.Percentage(100);             td.CssClass = "nohilite";             System.Web.UI.WebControls.Image directoryImage =                     new System.Web.UI.WebControls.Image();            directoryImage.ImageUrl = "Images/folder.gif";            directoryImage.BorderWidth = 0;            directoryImage.ImageAlign = ImageAlign.AbsMiddle;             td.Attributes.Add("onDblClick",                 string.Format("DoBrowse(this, '{0}',                 true)", directory));            td.Attributes.Add("onClick", "HighLight(this, '')");             td.Controls.Add(directoryImage);            td.Controls.Add(new                LiteralControl("&lt;span class="'\"&gt; "                + directory + ""));             tr.Cells.Add(td);            tb.Rows.Add(tr);        }         foreach (string file in fileList.Files)        {            tr = new TableRow();            td = new TableCell();            td.Width = Unit.Percentage(100);             td.CssClass = "nohilite";             td.Attributes.Add("onDblClick",                     string.Format("DoBrowse(this, '{0}',                     false)", file));            td.Attributes.Add("onClick", "HighLight(this, '')");             System.Web.UI.WebControls.Image fileImage =                   new System.Web.UI.WebControls.Image();            fileImage.ImageAlign = ImageAlign.AbsMiddle;            fileImage.ImageUrl = "Images/file.gif";             td.Controls.Add(fileImage);            td.Controls.Add(new                LiteralControl("&lt;span class="'\"&gt; " +                file + ""));             tr.Cells.Add(td);            tb.Rows.Add(tr);        }                _browsePlaceholder.Controls.Add(tb);    }}&lt;br /&gt;Helper Class - FileList&lt;br /&gt;Does all the actual work of getting the ArrayList of directories and files.protected void ParseHTTPPage ( string directory, string filter){    try    {        string[] filterlist = filter.Split(';');        if (!FileList.IsHTMLContent(directory))            directory = GetPath(directory);         string uristring = ExtractUrifromUrl(directory);         WebClient client = new WebClient();        byte[] pagedata = client.DownloadData(directory);        string[] hrefs = ExtractHrefsFromPage(pagedata);                ArrayList dirs = new ArrayList();        ArrayList files = new ArrayList();        foreach (string uri in hrefs)        {            if (uri.EndsWith("/"))            {                //    handle the directory                if (uri.StartsWith(uristring))                    dirs.Add(uri.Substring(uristring.Length).Trim('/'));            }            else            {                string file = Path.GetFileName(uri);                foreach (string query in filterlist)                {                    if (System.Text.RegularExpressions.Regex.IsMatch(file,                       "." + query.Replace(".", "\\."),                       RegexOptions.IgnoreCase))                    {                        files.Add(file);                        break;                    }                }            }        }                _directories = new string[dirs.Count];        dirs.CopyTo(_directories);        System.Array.Sort(_directories);                _files = new string[files.Count];        files.CopyTo(_files);        System.Array.Sort(_files);                _basedirectory = directory;        if (!_basedirectory.EndsWith("/"))            _basedirectory += "/";    }    catch(Exception except)    {        System.Diagnostics.Trace.WriteLine("Exception" +                       " parsing URL: " + except.Message);    }    return;} protected void PasreUNCPage ( string directory, string filter){    try    {        if (FileAttributes.Directory !=           (FileAttributes.Directory &amp;           File.GetAttributes(directory)))            directory = GetPath(directory);    }    catch(Exception)    {        return;    }        try    {        _directories =           RelativePaths( Directory.GetDirectories(directory, "*.*"));        System.Array.Sort(_directories);    }    catch(Exception except)    {        System.Diagnostics.Trace.WriteLine("Exception" +                " parsing directory: " + except.Message);    }        try    {        _files = new string[0];        string[] extensions = filter.Split(';');        foreach (string ext in extensions)        {             string[] foundfiles =               RelativePaths( Directory.GetFiles(directory, ext));            if (foundfiles.Length &gt; 0)            {                string[] newlist = new string[_files.Length                                             + foundfiles.Length];                _files.CopyTo(newlist, 0);                foundfiles.CopyTo(newlist, _files.Length);                _files = newlist;                System.Array.Sort(_files);            }        }    }    catch(Exception except)    {        System.Diagnostics.Trace.WriteLine("Exception" +                     " parsing files: " + except.Message);    }     _basedirectory = directory;    if (!_basedirectory.EndsWith("\\"))        _basedirectory += "\\";    return;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111848587585385396?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111848587585385396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111848587585385396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111848587585385396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111848587585385396'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/brosing-via-directory-atau-http-dengan.html' title='Brosing via Directory atau HTTP dengan ASP.Net'/><author><name>FransKeren(202114545)</name><uri>http://www.blogger.com/profile/01449883220835827258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111839659789669396</id><published>2005-06-10T01:11:00.000-07:00</published><updated>2005-06-10T02:43:17.900-07:00</updated><title type='text'>Online Quiz</title><content type='html'>&lt;span style="color:#3366ff;"&gt;Beberapa macam pertanyaan dengan pilihan jawabannya.&lt;/span&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;quiz xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;xsi:noNamespaceSchemaLocation="quiz.xsd"&gt;&lt;br /&gt;  &lt;mchoice&gt;&lt;br /&gt;    &lt;question&gt;What is the capital city of Australia ?&lt;/question&gt;&lt;br /&gt;    &lt;answer&gt;Sydney&lt;/answer&gt;&lt;br /&gt;    &lt;answer correct="yes"&gt;Canberra&lt;/answer&gt;&lt;br /&gt;    &lt;answer&gt;Melbourne&lt;/answer&gt;&lt;br /&gt;    &lt;answer&gt;Gold Coast&lt;/answer&gt;&lt;br /&gt;  &lt;/mchoice&gt;&lt;br /&gt;  &lt;mchoice&gt;&lt;br /&gt;    &lt;question&gt;Which city has an extensive tram network?&lt;/question&gt;&lt;br /&gt;    &lt;answer&gt;Sydney&lt;/answer&gt;&lt;br /&gt;    &lt;answer correct="yes"&gt;Melbourne&lt;/answer&gt;&lt;br /&gt;    &lt;answer&gt;Adelaide&lt;/answer&gt;&lt;br /&gt;    &lt;answer&gt;Ballarat&lt;/answer&gt;&lt;br /&gt;  &lt;/mchoice&gt;&lt;br /&gt;&lt;/quiz&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;Bisa juga dimasukkan tag-tag html, seperti &lt;u&gt;&lt;/span&gt;&lt;br /&gt;&lt;mchoice&gt;&lt;br /&gt;    &lt;question&gt;&lt;![CDATA[Which of the following is &lt;u&gt;NOT&lt;/u&gt;&lt;br /&gt;Australian native animals?]]&gt;&lt;/question&gt;&lt;br /&gt;    &lt;answer&gt;Kangaroo&lt;/answer&gt;&lt;br /&gt;    &lt;answer correct="yes"&gt;Penguin&lt;/answer&gt;&lt;br /&gt;    &lt;answer&gt;Koala&lt;/answer&gt;&lt;br /&gt;    &lt;answer&gt;Wombat&lt;/answer&gt;&lt;br /&gt;  &lt;/mchoice&gt;&lt;br /&gt;&lt;br /&gt;Membuat instance dari XMLDocument&lt;br /&gt;Dim xDoc as XMLDocument = New XMLDocument()&lt;br /&gt;xDoc.Load(Server.MapPath("quiz.xml"))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111839659789669396?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111839659789669396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111839659789669396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839659789669396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111839659789669396'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/online-quiz_10.html' title='Online Quiz'/><author><name>Daniel Christian S. (202114517)</name><uri>http://www.blogger.com/profile/17584114995494287721</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111848447983454751</id><published>2005-06-10T01:02:00.000-07:00</published><updated>2005-06-11T03:07:59.843-07:00</updated><title type='text'>Merubah XML dengan XSLT menjadi XHTML treeview</title><content type='html'>XML dapat dirubah menjadi XHTML dengan menggunakan XSLT&lt;br /&gt;&lt;br /&gt;Contoh XML&lt;br /&gt;&lt;br /&gt;sampletree.xml&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;treeview title="Sample tree"&gt;&lt;br /&gt;&lt;br /&gt;&lt;custom-parameters&gt;&lt;br /&gt;&lt;param name="shift-width" value="15"&gt;&lt;br /&gt;&lt;param name="img-directory" value="images/"&gt;&lt;br /&gt;&lt;/custom-parameters&gt;&lt;br /&gt;&lt;br /&gt;&lt;folder title="Desktop" img="Desktop.gif"&gt;&lt;br /&gt;&lt;folder title="My documents" img="MyDocuments.gif"&gt;&lt;br /&gt;&lt;folder title="My music" img="folder.gif"&gt;&lt;br /&gt;&lt;leaf title="siteclx" url="1" img="page.gif"&gt;&lt;br /&gt;&lt;leaf title="design" url="2" img="page.gif"&gt;&lt;br /&gt;&lt;leaf title="devellopment" url="3" img="page.gif"&gt;&lt;br /&gt;&lt;/folder&gt;&lt;br /&gt;&lt;folder title="My images" img="MyImages.gif"&gt;&lt;br /&gt;&lt;leaf title="php" url="4" img="red_ball.gif"&gt;&lt;br /&gt;&lt;leaf title="perl" url="5" img="red_ball.gif"&gt;&lt;br /&gt;&lt;/folder&gt;&lt;br /&gt;&lt;/folder&gt;&lt;br /&gt;&lt;folder title="My computer" img="computer.gif"&gt;&lt;br /&gt;&lt;folder title="Floppy (A:)" url="1" img="floppy.gif"&gt;&lt;br /&gt;&lt;folder title="Hard drive (C:)" url="1" img="harddrive.gif"&gt;&lt;br /&gt;&lt;leaf title="Perl" url="7" img="page.gif"&gt;&lt;br /&gt;&lt;leaf title="Java" url="8" img="page.gif"&gt;&lt;br /&gt;&lt;leaf title="PHP" url="8" img="page.gif"&gt;&lt;br /&gt;&lt;leaf title="dotNet" url="8" img="page.gif"&gt;&lt;br /&gt;&lt;/folder&gt;&lt;br /&gt;&lt;leaf title="Configuration Pannel" url="9" img="config.gif"&gt;&lt;br /&gt;&lt;leaf title="Shared documents" url="10" img="folder.gif"&gt;&lt;br /&gt;&lt;/folder&gt;&lt;br /&gt;&lt;folder title="Network" img="network.gif"&gt;&lt;br /&gt;&lt;folder title="Trash" img="trash.gif"&gt;&lt;br /&gt;&lt;/folder&gt;&lt;br /&gt;&lt;/treeview&gt;&lt;br /&gt;&lt;br /&gt;contoh XSLT&lt;br /&gt;&lt;br /&gt;treeview.xslt&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;xsl:stylesheet version="1.0" xsl="http://www.w3.org/1999/XSL/Transform" asp="remove"&gt;&lt;br /&gt;&lt;xsl:output method="xml" indent="yes" encoding="utf-8" declaration="yes"&gt;&lt;br /&gt;&lt;xsl:variable name="shift-width" select="/treeview/custom-parameters/param[@name='shift-width']/@value"&gt;&lt;br /&gt;&lt;xsl:variable name="img-directory" select="/treeview/custom-parameters/param[@name='img-directory']/@value"&gt;&lt;br /&gt;&lt;xsl:template match="/treeview"&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;xsl:apply-templates select="folder"&gt;&lt;br /&gt;&lt;xsl:with-param name="depth" select="1"&gt;&lt;br /&gt;&lt;/xsl:apply-templates&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;xsl:template match="folder"&gt;&lt;br /&gt;&lt;xsl:param name="depth"&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;xsl:if test=""&gt;1"&gt;&lt;br /&gt;&lt;td width="{$shift-width}"&gt;&lt;/td&gt;&lt;br /&gt;&lt;/xsl:if&gt;&lt;br /&gt;&lt;td valign="top"&gt;&lt;br /&gt;&lt;a onclick="toggle(this)" class="folder"&gt;&lt;br /&gt;&lt;img src="{$img-directory}plus.gif" /&gt;&lt;br /&gt;&lt;img src="{$img-directory}{@img}" /&gt;&lt;xsl:value-of select="@title"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;xsl:attribute name="style"&gt;display:none;&lt;/xsl:attribute&gt;&lt;br /&gt;&lt;xsl:apply-templates select="folder"&gt;&lt;br /&gt;&lt;xsl:with-param name="depth" select="$depth+1"&gt;&lt;br /&gt;&lt;/xsl:apply-templates&gt;&lt;br /&gt;&lt;xsl:apply-templates select="leaf"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:template match="leaf"&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="{$shift-width}"&gt;&lt;/td&gt;&lt;br /&gt;&lt;td valign="top"&gt;&lt;br /&gt;&lt;a class="leaf"&gt;&lt;xsl:attribute name="onclick"&gt;selectLeaf('&lt;xsl:value-of select="@title"&gt;','&lt;xsl:value-of select="@url"&gt;')&lt;/xsl:attribute&gt;&lt;br /&gt;&lt;img src="{$img-directory}{@img}" /&gt;&lt;br /&gt;&lt;xsl:value-of select="@title"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;/xsl:stylesheet&gt;&lt;br /&gt;&lt;br /&gt;Cara merubahannya adalah sebagai berikut :&lt;br /&gt;&lt;br /&gt;sampletree.xml&lt;code&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;treeview title="Sample tree"&gt;&lt;br /&gt;&lt;br /&gt;&lt;custom-parameters&gt;&lt;br /&gt;&lt;param name="shift-width" value="15"&gt;&lt;br /&gt;&lt;param name="img-directory" value="images/"&gt;&lt;br /&gt;&lt;/custom-parameters&gt;&lt;br /&gt;&lt;br /&gt;&lt;folder title="Desktop" img="Desktop.gif"&gt;&lt;br /&gt;&lt;folder title="My documents" img="MyDocuments.gif"&gt;&lt;br /&gt;&lt;folder title="My music" img="folder.gif"&gt;&lt;br /&gt;&lt;leaf title="siteclx" url="1" img="page.gif"&gt;&lt;br /&gt;&lt;leaf title="design" url="2" img="page.gif"&gt;&lt;br /&gt;&lt;leaf title="devellopment" url="3" img="page.gif"&gt;&lt;br /&gt;&lt;/folder&gt;&lt;br /&gt;&lt;folder title="My images" img="MyImages.gif"&gt;&lt;br /&gt;&lt;leaf title="php" url="4" img="red_ball.gif"&gt;&lt;br /&gt;&lt;leaf title="perl" url="5" img="red_ball.gif"&gt;&lt;br /&gt;&lt;/folder&gt;&lt;br /&gt;&lt;/folder&gt;&lt;br /&gt;&lt;folder title="My computer" img="computer.gif"&gt;&lt;br /&gt;&lt;folder title="Floppy (A:)" url="1" img="floppy.gif"&gt;&lt;br /&gt;&lt;folder title="Hard drive (C:)" url="1" img="harddrive.gif"&gt;&lt;br /&gt;&lt;leaf title="Perl" url="7" img="page.gif"&gt;&lt;br /&gt;&lt;leaf title="Java" url="8" img="page.gif"&gt;&lt;br /&gt;&lt;leaf title="PHP" url="8" img="page.gif"&gt;&lt;br /&gt;&lt;leaf title="dotNet" url="8" img="page.gif"&gt;&lt;br /&gt;&lt;/folder&gt;&lt;br /&gt;&lt;leaf title="Configuration Pannel" url="9" img="config.gif"&gt;&lt;br /&gt;&lt;leaf title="Shared documents" url="10" img="folder.gif"&gt;&lt;br /&gt;&lt;/folder&gt;&lt;br /&gt;&lt;folder title="Network" img="network.gif"&gt;&lt;br /&gt;&lt;folder title="Trash" img="trash.gif"&gt;&lt;br /&gt;&lt;/folder&gt;&lt;br /&gt;&lt;/treeview&gt;&lt;br /&gt;treeview.xslt &lt;code&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;xsl:stylesheet version="1.0" xsl="http://www.w3.org/1999/XSL/Transform" asp="remove"&gt;&lt;br /&gt;&lt;xsl:output method="xml" indent="yes" encoding="utf-8" declaration="yes"&gt;&lt;br /&gt;&lt;xsl:variable name="shift-width" select="/treeview/custom-parameters/param[@name='shift-width']/@value"&gt;&lt;br /&gt;&lt;xsl:variable name="img-directory" select="/treeview/custom-parameters/param[@name='img-directory']/@value"&gt;&lt;br /&gt;&lt;xsl:template match="/treeview"&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;xsl:apply-templates select="folder"&gt;&lt;br /&gt;&lt;xsl:with-param name="depth" select="1"&gt;&lt;br /&gt;&lt;/xsl:apply-templates&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;xsl:template match="folder"&gt;&lt;br /&gt;&lt;xsl:param name="depth"&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;xsl:if test=""&gt;1"&gt;&lt;br /&gt;&lt;td width="{$shift-width}"&gt;&lt;/td&gt;&lt;br /&gt;&lt;/xsl:if&gt;&lt;br /&gt;&lt;td valign="top"&gt;&lt;br /&gt;&lt;a onclick="toggle(this)" class="folder"&gt;&lt;br /&gt;&lt;img src="{$img-directory}plus.gif" /&gt;&lt;br /&gt;&lt;img src="{$img-directory}{@img}" /&gt;&lt;xsl:value-of select="@title"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;xsl:attribute name="style"&gt;display:none;&lt;/xsl:attribute&gt;&lt;br /&gt;&lt;xsl:apply-templates select="folder"&gt;&lt;br /&gt;&lt;xsl:with-param name="depth" select="$depth+1"&gt;&lt;br /&gt;&lt;/xsl:apply-templates&gt;&lt;br /&gt;&lt;xsl:apply-templates select="leaf"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:template match="leaf"&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="{$shift-width}"&gt;&lt;/td&gt;&lt;br /&gt;&lt;td valign="top"&gt;&lt;br /&gt;&lt;a class="leaf"&gt;&lt;xsl:attribute name="onclick"&gt;selectLeaf('&lt;xsl:value-of select="@title"&gt;','&lt;xsl:value-of select="@url"&gt;')&lt;/xsl:attribute&gt;&lt;br /&gt;&lt;img src="{$img-directory}{@img}" /&gt;&lt;br /&gt;&lt;xsl:value-of select="@title"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;/xsl:stylesheet&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111848447983454751?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111848447983454751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111848447983454751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111848447983454751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111848447983454751'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/merubah-xml-dengan-xslt-menjadi-xhtml.html' title='Merubah XML dengan XSLT menjadi XHTML treeview'/><author><name>FransKeren(202114545)</name><uri>http://www.blogger.com/profile/01449883220835827258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111838932423763565</id><published>2005-06-10T00:23:00.000-07:00</published><updated>2005-06-13T05:56:03.930-07:00</updated><title type='text'>Integrating Macromedia Flash MX and Microsoft ASP.NET</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;How to Use Flash with ASP.NET&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Flash versi 5 keatas, memiliki XML Object yang dapat meload dan mengirim XML. Dalam contoh berikut ini, akan memperhatikan bagaimana cara meload XML ke dalam Flash.&lt;br /&gt;&lt;code type="Flash"&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;code type="Flash"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;//instantiate a new XML Object&lt;br /&gt;&lt;/strong&gt;XMLDoc = new XML();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;//call the load function, passing in the path to the XML to be loaded into Flash&lt;br /&gt;&lt;/strong&gt;XMLDoc.load("mydata.xml");&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;//setup the event handler for when the XML has been loaded into Flash&lt;br /&gt;&lt;/strong&gt;XMLDoc.onLoad = function(success) {&lt;br /&gt;if (success) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;//XML is now successfully loaded and parsed and is ready to use&lt;br /&gt;&lt;/strong&gt;} else {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;//XML was not loaded successfully and an error should be displayed&lt;br /&gt;&lt;/strong&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;code type="Flash"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="color:#ff0000;"&gt;Letakkan tag &lt;code type="Flash"&gt;&lt; type="flash"&gt; dan &lt;/ code &gt; &lt;/code&gt;yang mengapit source code diatas.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;Kemudian, jika ingin meload secara dinamik XML yg telah digenerate yg ada dalam file XML static. Contoh berikut ini akan meletakkan tabel Product dari database Northwind yg disediakan dalam Microsoft SQL Server.&lt;br /&gt;&lt;br /&gt;Dalam contoh berikut, akan dapat dilihat cara cepat untuk membuat XMLDocument dari sebuah query pada tabel Product.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;code type="ASP.NET" flavor="VB.NET"&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="color:#009900;"&gt;Private Function GetXML(ByVal SQLCom As SQLCommand, ByVal TableName As String) As XMLDocument&lt;br /&gt;Dim Temp As New XmlDocument()&lt;br /&gt;With SQLCom&lt;br /&gt;.Connection.Open()&lt;br /&gt;Dim i As Integer&lt;br /&gt;Dim SQLData As SqlDataReader = .ExecuteReader&lt;br /&gt;With SQLData&lt;br /&gt;Temp.AppendChild(Temp.CreateElement(TableName))&lt;br /&gt;While .Read&lt;br /&gt;Temp.FirstChild.AppendChild(Temp.CreateElement("item"))&lt;br /&gt;For i = 0 To .FieldCount - 1&lt;br /&gt;Temp.FirstChild.LastChild.Attributes.Append(Temp.CreateAttribute(.GetName(i))).Value = .GetValue(i)&lt;br /&gt;Next&lt;br /&gt;End While&lt;br /&gt;End With&lt;br /&gt;.Connection.Close()&lt;br /&gt;End With&lt;br /&gt;Return Temp&lt;br /&gt;End Function&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="color:#009900;"&gt;Response.ContentType = "text/xml"&lt;br /&gt;GetData(SQLProductsGet, "products").Save(Response.OutputStream)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;code type="ASP.NET" flavor="VB.NET"&gt;&lt;code&gt;&lt;span style="font-family:trebuchet ms;"&gt;Letakkan tag &lt; type="flash"&gt; dan &lt; /code &gt; yang mengapit source code diatas. &lt;/span&gt;&lt;/code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code type="ASP.NET" flavor="VB.NET"&gt;&lt;code&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;Function GetXML menggunakan sebuah paraeter SQLCommand, yang mana akan berisi CommandText dan Parameter yg diperlukan untuk mengembalikan result-set yg benar yg ingin kita ubah ke dalam bentuk XML.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/code&gt;&lt;code type="ASP.NET" flavor="VB.NET"&gt;&lt;code&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;Letakkan kode siatad ke dalam sebuah file ASPX. Jika menggunakan browser IE, maka bisa dengan mudah mengetes untuk melakukan verifikasi dimana kode tersebut bekerja dengan benar dengan membuka page &lt;/span&gt;&lt;a href="http://localhost/myapp/GetData.aspx"&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;"&gt;http://localhost/myapp/GetData.aspx&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt; &lt;/strong&gt;atau URL yg tepat/bersesuaian dengan halaman ASPX yg dibuat.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:trebuchet ms;"&gt;Satu hal yg perlu dilakukan untuk mendapatkan data ini menjadi data dalam Flash adalah dengan mengubah baris kode dalam Flash yg digunakan untuk meload XML, tujuannnya untuk menspesifikasikan dari URL mana data diload.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;code type="Flash"&gt;&lt;span style="color:#009900;"&gt;XMLDoc.load("GetData.aspx");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Untuk potongan kode diatas, juga tetap diapit dengan sepasang tag &lt; type="Flash"&gt; dan &lt; /code &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;Kita juga bisa mengubah file ASPX untuk mempassingkan dalam CategoryID melalui QueryString untuk memfilter result-set dengan Product Category. Bagian terbaik mengenai cara meloading XML menjadi Flash adalah bahwa sekali data diload, tidak ada lebih banyak &lt;em&gt;round trips back&lt;/em&gt; ke server, tidak peduli bahwa data perlu untuk direfresh. Inisial hit mungkin tampak besar, tergantung pada banyak data, untuk men-dial-up user. Akan tetapi, kita bisa setup sesuuatu untuk hanya menampilkan sejumlah record dan halaman tertentu, yg secara absolute tidak memerlukan &lt;em&gt;trips back&lt;/em&gt; ke server.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;Disini tidak akan dijabarkan secara detail bagaimana menggunakan XML Object dalam Flash. tetapi contoh berikut ini menunjukkan bagaimana me-loop seluruh isi tabel Product yg ada.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;code type="Flash"&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;color:#009900;"&gt;for ( var i = 0; i  &lt;&gt;&lt;/code&gt;&lt;code type="Flash"&gt;&lt;span style="font-family:trebuchet ms;color:#009900;"&gt;{ &lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code type="Flash"&gt;&lt;span style="font-family:trebuchet ms;color:#009900;"&gt;trace("Product[" + (i + 1) + "].ProductID = " + XMLDoc.firstChild.childNodes[i].attributes.ProductID; &lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code type="Flash"&gt;&lt;span style="font-family:trebuchet ms;color:#009900;"&gt;} &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code type="Flash"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/code&gt;&lt;/code&gt;&lt;code type="ASP.NET" flavor="VB.NET"&gt;&lt;code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111838932423763565?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111838932423763565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111838932423763565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111838932423763565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111838932423763565'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/integrating-macromedia-flash-mx-and.html' title='Integrating Macromedia Flash MX and Microsoft ASP.NET'/><author><name>Yulina Jamal (201114219)</name><uri>http://www.blogger.com/profile/08423561022928569448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111838686243087999</id><published>2005-06-09T23:49:00.000-07:00</published><updated>2005-06-10T00:01:02.436-07:00</updated><title type='text'>PHP vs ASP.NET</title><content type='html'>Saat kita memprogram dalam ASP.NET, integrasi dengan database bisa diselesaikan dengan menggunakan ODBC, yg menyediakan sekumpulan function yg konsisten untuk mengakses target database yg dimiliki.ASP.NET memerlukan IIS dalam koneksi databasenya. Akan tetapi, IIS kadang membuat banyak administrator enggan untuk mendeploynya dalam menghandle website, karena IIS merupakan "red flag" ke hacker yg sifatnya menyimpang. Sistem tersebut bisa dengan mudah dihack dan banyak kebocorannya. PHP yg berjalan pada Apache, selain cepat juga sifatnya open source dan mempunyai track security yg bagus. Juga Apache dapat berjalan pada banyak platform.&lt;br /&gt;&lt;br /&gt;Jika menggunakan ASP.NET tapi ingin menggunakan Apache untuk front-door ke Internet, maka Apache bisa menghubungkan request-request kita ke IIS yg berjalan secara internal pada mesin yg lain. Apache juga menangani static content dan passes aspx content pada IIS Server, yg mana tidak akan ditampilkan ke Internet.&lt;br /&gt;Untuk berhubungan dengan database, pada ASP.NET terdapat sedikit kerumitan karena kita mempunyai pilihan sejumlah bahasa yg digunakan. Berikut ini adalah cara dalam ASP.NET untuk berhubungan dengan Oracle dengan menggunakan bahasa VB.NET :&lt;br /&gt;&lt;br /&gt;Imports SystemImports System.DataImports System.Data.OracleClientImports Microsoft.VisualBasic&lt;br /&gt;Class Sample&lt;br /&gt;  Public Shared Sub Main()&lt;br /&gt;    Dim oraConn As OracleConnection = New OracleConnection("Data Source=MyOracleServer;Integrated Security=yes;")&lt;br /&gt;    Dim oraCMD As OracleCommand = New OracleCommand("SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER", oraConn)&lt;br /&gt;    oraConn.Open()&lt;br /&gt;    Dim myReader As OracleDataReader = oraCMD.ExecuteReader()&lt;br /&gt;    Do While (myReader.Read())      &lt;br /&gt;Console.WriteLine(vbTab &amp; "{0}" &amp;amp; vbTab &amp; "{1}", myReader.GetInt32(0), myReader.GetString(1))    &lt;br /&gt;    Loop&lt;br /&gt;    myReader.Close()    &lt;br /&gt;    oraConn.Close()  &lt;br /&gt;End SubEnd Class&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dilihat dari segi kecepatan dan efisiensi, dengan ASP.NET kita bisa menjalankan lebih banyak kode melalui proses eksekusi terhadap halaman ASP yg sama dibanding mengeksekusi dengan menggunakan mesin PHP untuk sebuah halaman PHP yg ekuivalen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111838686243087999?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111838686243087999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111838686243087999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111838686243087999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111838686243087999'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/php-vs-aspnet.html' title='PHP vs ASP.NET'/><author><name>Yulina Jamal (201114219)</name><uri>http://www.blogger.com/profile/08423561022928569448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111836557833224728</id><published>2005-06-09T17:55:00.000-07:00</published><updated>2005-06-09T18:06:18.336-07:00</updated><title type='text'>Simple Chat Application</title><content type='html'>&lt;span style="color:#3333ff;"&gt;Class Chat User&lt;/span&gt;&lt;br /&gt;public class ChatUser : IDisposable   &lt;br /&gt;{  public string UserID;  public string UserName;  public bool IsActive;  public DateTime LastSeen;  public int LastMessageReceived;  public ChatUser(string id,string userName)  {    this.UserID=id;    this.IsActive=false;    this.LastSeen=DateTime.MinValue ;    this.UserName=userName;    this.LastMessageReceived=0;  }  public void Dispose()  {    this.UserID="";    this.IsActive=false;    this.LastSeen=DateTime.MinValue ;    this.UserName="";    this.LastMessageReceived=0;  }}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Class Message&lt;/span&gt;&lt;br /&gt;public class Message&lt;br /&gt;{  public string user;  public string msg;  public MsgType type;&lt;br /&gt;  public Message(string _user, string _msg, MsgType _type)   {    user = _user;    msg = _msg;    type = _type;  }  public override string ToString()  {    switch(this.type)    {      case MsgType.Msg:        return this.user+" says: "+this.msg;      case MsgType.Join :        return this.user + " has joined the room";      case MsgType.Left :        return this.user + " has left the room";    }    return "";  }&lt;br /&gt;  public Message(string _user, MsgType _type) : this(_user, "", _type) { }&lt;br /&gt;  public Message(MsgType _type) : this("", "", _type) { }&lt;br /&gt;}&lt;br /&gt;public enum MsgType { Msg, Start, Join, Left }&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Program utamanya&lt;/span&gt;&lt;br /&gt;private void Page_Load(object sender, System.EventArgs e){  if (AMS.Web.RemoteScripting.InvokeMethod(this))       //if this is a callback function return    return;&lt;br /&gt;  txtMsg.Attributes.Add("onkeypress", "return clickButton(event,'btn')");    if (!IsPostBack)  {    if (Request.QueryString["userid"]!=null             &amp;&amp;amp; Request.QueryString["userid"]!="")    {      otherUser.Value=Request.QueryString["userid"];      ChatRoom room=ChatEngine.GetRoom(Session["UserName"].ToString() ,          Request.QueryString["userid"]);      string s=room.JoinRoom(Session["UserName"].ToString(),          Session["UserName"].ToString() );      txt.InnerText=s;      string strScript="&lt;&gt;startTimer();&lt; /script &gt;";      this.RegisterClientScriptBlock("timerScript",strScript);    }    else    {      Response.Write("User id Missing");    }  }}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;//Chat.aspx, digunakan untuk mengirimkan pesan chat&lt;/span&gt;&lt;br /&gt;function clickButton(e, buttonid)&lt;br /&gt;{   var bt = document.getElementById(buttonid);  &lt;br /&gt;     if (typeof bt == 'object')   &lt;br /&gt;     {      &lt;span style="color:#3366ff;"&gt;// cek browser yang digunakan&lt;/span&gt;&lt;br /&gt;             if(navigator.appName.indexOf("Netscape")&gt;(-1))&lt;br /&gt;             {       if (e.keyCode == 13)     &lt;br /&gt;                      {         bt.click();         return false;       }    &lt;br /&gt;             }  &lt;br /&gt;             if (navigator.appName.indexOf("Microsoft Internet Explorer")&gt;(-1))  &lt;br /&gt;            {       if (event.keyCode == 13)      {         bt.click();         return false;       }     }   }   }&lt;br /&gt;      function button_clicked(){  RS.Execute("Chat.aspx", "SendMessage",document.Form1.txtMsg.value,document.Form1.otherUser.value, callback, errorCallback);  document.Form1.txtMsg.value="";  document.Form1.txt.scrollIntoView("true");}&lt;br /&gt;function callback(result){  document.Form1.txt.value=document.Form1.txt.value+result;  document.Form1.txt.doScroll();}&lt;br /&gt;function errorCallback(result){  alert("An error occurred while invoking the remote method: "   + result);}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111836557833224728?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111836557833224728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111836557833224728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111836557833224728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111836557833224728'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/simple-chat-application.html' title='Simple Chat Application'/><author><name>Daniel Christian S. (202114517)</name><uri>http://www.blogger.com/profile/17584114995494287721</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111836082603359933</id><published>2005-06-09T16:45:00.000-07:00</published><updated>2005-06-09T16:47:06.036-07:00</updated><title type='text'>Dictionary untuk Saran Google seperti Dictionary</title><content type='html'>VB.NET application yang akan mengubah HTML file dan data menjadi tabel database yang bermanfaat&lt;br /&gt;Langkah-langkahnya:&lt;br /&gt;Langkah 1(Membuat Substrate):&lt;br /&gt;Substrate adalah hasil HTML plain text conversion menjadi beberapa nilai (CSV)&lt;br /&gt;&lt;br /&gt;Private Sub Button2_Click(ByVal sender As System.Object, _&lt;br /&gt;         ByVal e As System.EventArgs) Handles Button2.Click&lt;br /&gt;  progbar2.Value = 0&lt;br /&gt;  Dim myfile = New IO.StreamReader(txtpath2.Text)&lt;br /&gt;  Try&lt;br /&gt;&lt;br /&gt;    '---Proceesing the file that contain delimited contents&lt;br /&gt;    Dim Line As String&lt;br /&gt;    Line = myfile.Readtoend&lt;br /&gt;&lt;br /&gt;    '----Remove unwanted tags&lt;br /&gt;    Line = Line.Replace("&amp;lt;P&amp;gt;", "")&lt;br /&gt;    progbar2.Value += 1&lt;br /&gt;&lt;br /&gt;    Line = Line.Replace("&amp;lt;/P&amp;gt;", "")&lt;br /&gt;    progbar2.Value += 1&lt;br /&gt;&lt;br /&gt;    Line = Line.Replace("&amp;lt;B&amp;gt;", "")&lt;br /&gt;    progbar2.Value += 1&lt;br /&gt;&lt;br /&gt;    Line = Line.Replace(" (&amp;lt;I&amp;gt;&amp;lt;/I&amp;gt;) ", "@")&lt;br /&gt;    progbar2.Value += 1&lt;br /&gt;&lt;br /&gt;    Line = Line.Replace("&amp;lt;/B&amp;gt;", "@")&lt;br /&gt;    progbar2.Value += 1&lt;br /&gt;&lt;br /&gt;    Line = Line.Replace(" (&amp;lt;I&amp;gt;", "")&lt;br /&gt;    progbar2.Value += 1&lt;br /&gt;&lt;br /&gt;    Line = Line.Replace("&amp;lt;/I&amp;gt;) ", "@")&lt;br /&gt;    progbar2.Value += 1&lt;br /&gt;&lt;br /&gt;    Dim myfileSave As New IO.StreamWriter(txtpathtarget.Text, True)&lt;br /&gt;    myfileSave.Write(Line)&lt;br /&gt;    myfileSave.Close()&lt;br /&gt;    progbar2.Value += 1&lt;br /&gt;&lt;br /&gt;    MessageBox.Show("Substrate completed successfully", _&lt;br /&gt;                    "Dict Maker")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Catch ex As IO.IOException&lt;br /&gt;    MessageBox.Show("Error: " &amp; ex.Message, "Critical error", _&lt;br /&gt;                    MessageBoxButtons.OK, MessageBoxIcon.Error)&lt;br /&gt;  Catch ex As Exception&lt;br /&gt;    MessageBox.Show("Error: " &amp; ex.Message, "Critical error", _&lt;br /&gt;                    MessageBoxButtons.OK, MessageBoxIcon.Error)&lt;br /&gt;  Finally&lt;br /&gt;    myfile.Close()&lt;br /&gt;  End Try&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;File akan digunakan pada langkah 2 untuk menghasilkan INSERT INTO statement.&lt;br /&gt;&lt;br /&gt;Langkah 2:&lt;br /&gt;Setelah kamu selesai mengubah HTML files menjadi CSV files, kamu akan generate dari CSV files INSERT INTO statement yang diperlukan. Pada langkah ini, kamu akan menspesifikasikan CSV file yang dibuat pada langkah 1&lt;br /&gt;&lt;br /&gt;Private Sub Button1_Click(ByVal sender As System.Object, _&lt;br /&gt;            ByVal e As System.EventArgs) Handles Button1.Click&lt;br /&gt;  ProgBar.Value = 0&lt;br /&gt;  If txtpath.Text = "" Then Exit Sub&lt;br /&gt;  MsgBox(txtpath.Text)&lt;br /&gt;  '-----Open the connection&lt;br /&gt;  Dim con As New OleDb.OleDbConnection&lt;br /&gt;  Dim com As New OleDb.OleDbCommand&lt;br /&gt;  '------&lt;br /&gt;  con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &amp; _&lt;br /&gt;                         "Data Source=d:\vbprograms\dictmaker\dict.mdb"&lt;br /&gt;&lt;br /&gt;  '----calculate estimates and set the progress bar&lt;br /&gt;  ProgBar.Maximum = CalculateEstimate(txtpath.Text)&lt;br /&gt;&lt;br /&gt;  '----&lt;br /&gt;  Dim myfile = New IO.StreamReader(txtpath.Text)&lt;br /&gt;  Try&lt;br /&gt;&lt;br /&gt;    '--open the database&lt;br /&gt;    con.Open()&lt;br /&gt;&lt;br /&gt;    '---Proceesing the file that contain delimited contents&lt;br /&gt;    Dim Line As String&lt;br /&gt;    Dim AfterSep() As String&lt;br /&gt;&lt;br /&gt;    '--------------------Ignore the first 9 lines&lt;br /&gt;    For t As Integer = 1 To 9&lt;br /&gt;      myfile.ReadLine()&lt;br /&gt;    Next t&lt;br /&gt;    '--------------------&lt;br /&gt;&lt;br /&gt;    While myfile.Peek &amp;gt; -1&lt;br /&gt;      Application.DoEvents()&lt;br /&gt;&lt;br /&gt;      Line = myfile.ReadLine()&lt;br /&gt;      If Line = "&amp;lt;/BODY&amp;gt;" Then Exit While&lt;br /&gt;      '----If the carriage return, request next line&lt;br /&gt;      If Line = "" Then Line = myfile.ReadLine()&lt;br /&gt;&lt;br /&gt;      AfterSep = Line.Split("@"c)&lt;br /&gt;&lt;br /&gt;      '----Build the command and executeit&lt;br /&gt;      com.Connection = con&lt;br /&gt;&lt;br /&gt;      com.CommandText = _&lt;br /&gt;         "INSERT INTO dict (word,type,mean) VALUES (?,?,?)"&lt;br /&gt;      com.Parameters.Clear()&lt;br /&gt;      com.Parameters.Add("?", AfterSep(0))&lt;br /&gt;      com.Parameters.Add("?", AfterSep(1))&lt;br /&gt;      com.Parameters.Add("?", AfterSep(2))&lt;br /&gt;      com.ExecuteNonQuery()&lt;br /&gt;&lt;br /&gt;      '----Set value progress&lt;br /&gt;      ' If ProgBar.Value = 5136 Then Stop&lt;br /&gt;      ProgBar.Value += 1&lt;br /&gt;      lblprocessed.Text = "Line(s) processed : " &amp; ProgBar.Value&lt;br /&gt;&lt;br /&gt;    End While&lt;br /&gt;&lt;br /&gt;    MessageBox.Show("Conversion completed successfully", "Dict Maker")&lt;br /&gt;&lt;br /&gt;  Catch ex As OleDb.OleDbException&lt;br /&gt;    MessageBox.Show("Error: " &amp; ex.Message, _&lt;br /&gt;      "Critical error", MessageBoxButtons.OK, _&lt;br /&gt;      MessageBoxIcon.Error)&lt;br /&gt;&lt;br /&gt;  Catch ex As IO.IOException&lt;br /&gt;    MessageBox.Show("Error: " &amp; ex.Message, _&lt;br /&gt;      "Critical error", MessageBoxButtons.OK, MessageBoxIcon.Error)&lt;br /&gt;  Catch ex As Exception&lt;br /&gt;    MessageBox.Show("Error: " &amp; ex.Message, _&lt;br /&gt;      "Critical error", MessageBoxButtons.OK, MessageBoxIcon.Error)&lt;br /&gt;  Finally&lt;br /&gt;    con.Close()&lt;br /&gt;    myfile.Close()&lt;br /&gt;  End Try&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Hitung baris yang akan diproses:&lt;br /&gt;&lt;br /&gt;Function CalculateEstimate(ByVal path As String) As Integer&lt;br /&gt;  Dim estimate As New IO.StreamReader(path)&lt;br /&gt;  Dim NumOfLines As Integer&lt;br /&gt;  While estimate.Peek &amp;gt; -1&lt;br /&gt;    estimate.ReadLine()&lt;br /&gt;    NumOfLines += 1&lt;br /&gt;  End While&lt;br /&gt;  estimate.Close()&lt;br /&gt;  lblTotalLines.Text = "Total Line(s): " &amp; NumOfLines - 11&lt;br /&gt;  Return NumOfLines&lt;br /&gt;End Function&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111836082603359933?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111836082603359933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111836082603359933' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111836082603359933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111836082603359933'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/dictionary-untuk-saran-google-seperti.html' title='Dictionary untuk Saran Google seperti Dictionary'/><author><name>inge_as (202114594)</name><uri>http://www.blogger.com/profile/06101207009058987811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111836015679792646</id><published>2005-06-09T16:34:00.000-07:00</published><updated>2005-06-09T16:35:56.816-07:00</updated><title type='text'>Bekerja dengan ASP.NET dan CRYSTAL REPORT 9 dengan atau tanpa RAS 9</title><content type='html'>1. Showing Crystal Reports from RAS 9 in PDF format using ASP.NET&lt;br /&gt;Menampilkan Crystal Report dari RAS 9 pada format PDF dengan ASP.NET&lt;br /&gt;Taruh parameter berikut pada appsettings web.config &lt;br /&gt;ServerName - mesin di mana SQLmu berada, contoh: machine_sqlsvr2000_1. &lt;br /&gt;DatabaseName - database name pada SQL Server, contoh: northwind. &lt;br /&gt;RASServer - nama server yang mempunyai reports, contoh, machine_reportserver_9_1.&lt;br /&gt;ReportPath - path pada  RAS server dimana reports disimpan, contoh, c:\proects\project1\reports\. &lt;br /&gt;UserID and Password - user name dan password for databasemu.&lt;br /&gt;&lt;br /&gt;Kemudian,kamu perlu untuk menaruh method ini pada page ASP&gt;NET yang akan digunakan untuk memanggil report &lt;br /&gt;Public Sub CreateReport()&lt;br /&gt;&lt;br /&gt;   '************************** Mention Report Name *****************************&lt;br /&gt;    Dim m_RptName As String = "report1.rpt" &lt;br /&gt;   '****************************************************************************&lt;br /&gt;&lt;br /&gt;        Dim _db_server As String = ConfigurationSettings.AppSettings("ServerName")&lt;br /&gt;        Dim _db_name As String = ConfigurationSettings.AppSettings("DatabaseName")&lt;br /&gt;        Dim _ras_server As String = ConfigurationSettings.AppSettings("RASServer")&lt;br /&gt;        Dim _file_name As String = _&lt;br /&gt;            ConfigurationSettings.AppSettings("ReportPath") &amp; m_RptName&lt;br /&gt;        Dim _user_id As String = ConfigurationSettings.AppSettings("UserID")&lt;br /&gt;        Dim _pwd As String = ConfigurationSettings.AppSettings("Password")&lt;br /&gt;&lt;br /&gt;        Dim oRptViewer As New RASReportViewer&lt;br /&gt;        Dim rcDoc As ReportClientDocument&lt;br /&gt;&lt;br /&gt;        rcDoc = New ReportClientDocument&lt;br /&gt;        rcDoc.ReportAppServer = _ras_server&lt;br /&gt;        rcDoc.Open(_file_name)&lt;br /&gt;&lt;br /&gt;        ' logon using Logon helper function below&lt;br /&gt;        oRptViewer.Logon(rcDoc, _user_id, _pwd, _db_server, _db_name)&lt;br /&gt;&lt;br /&gt;        '****************** pass your parameters here *****************&lt;br /&gt;&lt;br /&gt;        ' you will change this portion according&lt;br /&gt;        ' to the parametrs that your report expects&lt;br /&gt;        ' parameters&lt;br /&gt;        oRptViewer.PassParameter(rcDoc, "", 0, Session("CategoryString"))&lt;br /&gt;        oRptViewer.PassParameter(rcDoc, "", 1, Session("Terms"))&lt;br /&gt;        oRptViewer.PassParameter(rcDoc, "", 2, Session("Division"))&lt;br /&gt;        oRptViewer.PassParameter(rcDoc, "", 3, Session("Location"))&lt;br /&gt;&lt;br /&gt;        '**************************************************************&lt;br /&gt;&lt;br /&gt;        Dim byteArray As ByteArray = _&lt;br /&gt;          rcDoc.PrintOutputController.Export(_&lt;br /&gt;          CrReportExportFormatEnum.crReportExportFormatPDF)&lt;br /&gt;        Response.ClearContent()&lt;br /&gt;        Response.ClearHeaders()&lt;br /&gt;        Response.ContentType = "application/pdf"&lt;br /&gt;        Response.BinaryWrite(byteArray.DetachArray)&lt;br /&gt;        Response.Flush()&lt;br /&gt;        Response.Close()&lt;br /&gt;&lt;br /&gt;        oRptViewer.Dispose()&lt;br /&gt;        If Not oRptViewer Is Nothing Then&lt;br /&gt;            oRptViewer = Nothing&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;Kamu dapat membuat perubahan pada method di atas jika kamu ingin menampilkan report-mu pada format lain. Kamu harus merubah baris program di bawah ini:&lt;br /&gt;        Response.ClearContent()&lt;br /&gt;        Response.ClearHeaders()&lt;br /&gt;        Response.ContentType = "application/pdf"&lt;br /&gt;        Response.BinaryWrite(byteArray.DetachArray)&lt;br /&gt;        Response.Flush()&lt;br /&gt;&lt;br /&gt;RASReportViewer Class&lt;br /&gt;&lt;br /&gt;Ini adalah class yang dipanggil di atas:&lt;br /&gt;Imports CrystalDecisions.ReportAppServer.ClientDoc&lt;br /&gt;Imports CrystalDecisions.ReportAppServer.Controllers&lt;br /&gt;Imports CrystalDecisions.ReportAppServer.DataDefModel&lt;br /&gt;Imports CrystalDecisions.ReportAppServer.CommonObjectModel&lt;br /&gt;&lt;br /&gt;Public Class RASReportViewer&lt;br /&gt;    Inherits System.ComponentModel.Component&lt;br /&gt;&lt;br /&gt;    ' CR variables&lt;br /&gt;    Dim rcDoc As ReportClientDocument&lt;br /&gt;    Dim m_last_error As String&lt;br /&gt;&lt;br /&gt;#Region " Component Designer generated code "&lt;br /&gt;&lt;br /&gt;    Public Sub New(ByVal Container As System.ComponentModel.IContainer)&lt;br /&gt;        MyClass.New()&lt;br /&gt;&lt;br /&gt;        'Required for Windows.Forms Class Composition Designer support&lt;br /&gt;        Container.Add(Me)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Public Sub New()&lt;br /&gt;        MyBase.New()&lt;br /&gt;&lt;br /&gt;        'This call is required by the Component Designer.&lt;br /&gt;        InitializeComponent()&lt;br /&gt;&lt;br /&gt;        'Add any initialization after the InitializeComponent() call&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;    ' passes a parameter value to report&lt;br /&gt;    '&lt;br /&gt;    ' PARAMETERS    [in]    doc         RAS Report Client Document&lt;br /&gt;    '               [in]    report_name subreport name&lt;br /&gt;    '                       (pass empty string for main report)&lt;br /&gt;    '               [in]    param_name  report parameter name&lt;br /&gt;    '               [in]    param_value report parmaeter value&lt;br /&gt;    Public Sub PassParameter( _&lt;br /&gt;            ByRef doc As ReportClientDocument, _&lt;br /&gt;            ByVal report_name As String, _&lt;br /&gt;            ByVal param_name As String, _&lt;br /&gt;            ByVal param_value As Object)&lt;br /&gt;&lt;br /&gt;        ' create parameter discrete value&lt;br /&gt;        Dim param_val As New ParameterFieldDiscreteValue&lt;br /&gt;&lt;br /&gt;        ' set parameter value&lt;br /&gt;        param_val.Value = param_value&lt;br /&gt;&lt;br /&gt;        ' create parameter value collection&lt;br /&gt;        Dim vals As New Values&lt;br /&gt;&lt;br /&gt;        ' add parameter value to this collection&lt;br /&gt;        vals.Add(param_val)&lt;br /&gt;&lt;br /&gt;        ' set current value&lt;br /&gt;        doc.DataDefController.ParameterFieldController._&lt;br /&gt;           SetCurrentValues(report_name, param_name, vals)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    ' identical to method above except this method&lt;br /&gt;    ' takes index of the parameter instead of name&lt;br /&gt;    Public Sub PassParameter( _&lt;br /&gt;            ByVal doc As ReportClientDocument, _&lt;br /&gt;            ByVal report_name As String, _&lt;br /&gt;            ByVal param_index As Integer, _&lt;br /&gt;            ByVal param_value As Object)&lt;br /&gt;&lt;br /&gt;        PassParameter(doc, report_name, _&lt;br /&gt;           doc.DataDefinition.ParameterFields(param_index).Name, _&lt;br /&gt;           param_value)&lt;br /&gt;    End Sub&lt;br /&gt;  &lt;br /&gt;    ' Reusable ApplyLogon method. This method takes RAS database object,&lt;br /&gt;    ' ConnectionInfo, and report name, and applies this connection info to&lt;br /&gt;    ' all tables in the database. This method is used by Logon method below.&lt;br /&gt;    ' Normally you do not have to call this&lt;br /&gt;    ' method directly, but simply use Logon method.&lt;br /&gt;    '&lt;br /&gt;    ' Parameters [in]  doc         RAS report client document&lt;br /&gt;    '            [in]  database    RAS database (contains collecion of tables)&lt;br /&gt;    '            [in]  ci          ConnectionInfo that contains SQL credentials&lt;br /&gt;    '            [in]  report_name subreport name (empty for main)&lt;br /&gt;    Private Function ApplyLogon( _&lt;br /&gt;            ByVal doc As ReportClientDocument, _&lt;br /&gt;            ByVal database As Database, _&lt;br /&gt;            ByVal ci As ConnectionInfo, _&lt;br /&gt;            ByVal report_name As String) As Boolean&lt;br /&gt;&lt;br /&gt;        ' loop through each table in database tables collection&lt;br /&gt;        Dim table_old As _&lt;br /&gt;          CrystalDecisions.ReportAppServer.DataDefModel.Table&lt;br /&gt;&lt;br /&gt;        For Each table_old In database.Tables&lt;br /&gt;            ' now create a new table object&lt;br /&gt;            Dim table_new As New _&lt;br /&gt;              CrystalDecisions.ReportAppServer.DataDefModel.Table&lt;br /&gt;&lt;br /&gt;            ' set new table name&lt;br /&gt;            table_new.Name = table_old.Name&lt;br /&gt;&lt;br /&gt;            ' set new connection info&lt;br /&gt;            table_new.ConnectionInfo = ci&lt;br /&gt;&lt;br /&gt;            ' set qualified name. Connection Info object&lt;br /&gt;            ' simply contains logon credentials&lt;br /&gt;            ' that tells RAS how to connect to database.&lt;br /&gt;            ' But this information is not sufficient&lt;br /&gt;            ' for RAS to find the table/stored proc.&lt;br /&gt;            ' For instance, in Northwind database, you&lt;br /&gt;            ' can create two tables with same name as follows:&lt;br /&gt;            '  Northwind.dbo.Customers&lt;br /&gt;            '  Northwind.gabe.Customers&lt;br /&gt;            ' The syntax is database.owner.table/stored proc.&lt;br /&gt;            ' This information is saved&lt;br /&gt;            ' in Table.QualifiedName property.&lt;br /&gt;            ' If you are not changing database name or owner,&lt;br /&gt;            ' then you can leave this property alone,&lt;br /&gt;            ' but if you are changing them, you must&lt;br /&gt;            ' set them. In another words, you created&lt;br /&gt;            ' a reprot off Northwind.dbo.Customers, and&lt;br /&gt;            ' wish to change this to Northwind2.dbo.Customers&lt;br /&gt;            ' at runtime, you must set this&lt;br /&gt;            ' QualifiedName property.&lt;br /&gt;            Dim qualified_name As String = table_old.QualifiedName&lt;br /&gt;&lt;br /&gt;            ' now strip off database name from qualified name&lt;br /&gt;            qualified_name = _&lt;br /&gt;              qualified_name.Substring(qualified_name.IndexOf("."))&lt;br /&gt;&lt;br /&gt;            ' at this point, qualified_name will look like .owner.table&lt;br /&gt;            ' now add new database name.&lt;br /&gt;            ' NOTE that we are assuming that&lt;br /&gt;            ' this new database name is in ConnectionInfo&lt;br /&gt;            ' property.&lt;br /&gt;            qualified_name = CType(ci.Attributes("QE_LogonProperties"), _&lt;br /&gt;               PropertyBag)("Initial Catalog").ToString() + qualified_name&lt;br /&gt;            table_new.QualifiedName = qualified_name&lt;br /&gt;&lt;br /&gt;            ' now apply the changes&lt;br /&gt;            Try&lt;br /&gt;                If (report_name.Length &gt; 0) Then&lt;br /&gt;                    ' this is a subreport&lt;br /&gt;                    doc.SubreportController.SetTableLocation(report_name,_&lt;br /&gt;                                                     table_old, table_new)&lt;br /&gt;                Else&lt;br /&gt;                    ' this is a main report&lt;br /&gt;                    doc.DatabaseController.SetTableLocation(table_old,_&lt;br /&gt;                                                              table_new)&lt;br /&gt;                End If&lt;br /&gt;            Catch x As Exception&lt;br /&gt;                m_last_error = x.Message&lt;br /&gt;                Return (False)&lt;br /&gt;            End Try&lt;br /&gt;        Next&lt;br /&gt;        Return (True)&lt;br /&gt;    End Function&lt;br /&gt;&lt;br /&gt;    ' Reusable Logon method. This method takes RAS report client document, and&lt;br /&gt;    ' SQL logon credentials. This sample is designed for Microsoft SQL Server&lt;br /&gt;    ' using SQL authentication. You will need to change this code a little to&lt;br /&gt;    ' make it to work with ODBC DSN or other data source&lt;br /&gt;    '&lt;br /&gt;    ' PARAMETERS        [in]    doc         RAS report client document&lt;br /&gt;    '                   [in]    uid         database user id&lt;br /&gt;    '                   [in]    pass        database password&lt;br /&gt;    '                   [in]    server      database server name&lt;br /&gt;    '                   [in]    database    database (catalog) name&lt;br /&gt;    Public Function Logon( _&lt;br /&gt;    ByVal doc As ReportClientDocument, _&lt;br /&gt;    ByVal uid As String, _&lt;br /&gt;    ByVal pass As String, _&lt;br /&gt;    ByVal server As String, _&lt;br /&gt;    ByVal database As String) As Boolean&lt;br /&gt;        ' grab existing connection information from main report, and clone it&lt;br /&gt;        Dim ci As ConnectionInfo = _&lt;br /&gt;          doc.DatabaseController.GetConnectionInfos(Nothing)(0).Clone(True)&lt;br /&gt;&lt;br /&gt;        ' set new user id and password&lt;br /&gt;        ci.UserName = uid&lt;br /&gt;        ci.Password = pass&lt;br /&gt;&lt;br /&gt;        ' grab logon properties bag (this property&lt;br /&gt;        ' bag contains your server and database name)&lt;br /&gt;        Dim li As PropertyBag = ci.Attributes("QE_LogonProperties")&lt;br /&gt;&lt;br /&gt;        ' set new server name; note that we are&lt;br /&gt;        ' setting "Data Source" property. if you are&lt;br /&gt;        ' using ODBC DSN, you must set "DSN" property and pass your DSN name here.&lt;br /&gt;        li("Data Source") = server&lt;br /&gt;&lt;br /&gt;        ' set database (catalog) name; note that&lt;br /&gt;        ' we are setting "Initial Catalog" property.&lt;br /&gt;        ' if you are using ODBC DSN, you must set&lt;br /&gt;        ' "Database" property and pass your database&lt;br /&gt;        ' name here.&lt;br /&gt;        li("Initial Catalog") = database&lt;br /&gt;&lt;br /&gt;        ' optionally you can set other properties here.&lt;br /&gt;        ' for instance, if you created a report&lt;br /&gt;        ' using Integrated Security, and wish&lt;br /&gt;        ' to pass SQL logon credentials (because RAS&lt;br /&gt;        ' service cannot impersonate), you can set&lt;br /&gt;        ' this property to false as follows:&lt;br /&gt;        ' li["Integrated Security"] = false;&lt;br /&gt;&lt;br /&gt;        ' now our 'new' connection info object&lt;br /&gt;        ' is ready to be passed to the report&lt;br /&gt;&lt;br /&gt;        ' pass this connection info to all tables in the main report&lt;br /&gt;        ' NOTE: main report has empty report name&lt;br /&gt;        If (Not ApplyLogon(doc, doc.Database, ci, "")) Then&lt;br /&gt;            Return (False)&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;        ' now loop through each subreport and pass this connection info&lt;br /&gt;        Dim sub_name As String&lt;br /&gt;        For Each sub_name In doc.SubreportController.QuerySubreportNames()&lt;br /&gt;            If (Not ApplyLogon(doc, _&lt;br /&gt;                doc.SubreportController.GetSubreportDatabase(sub_name), _&lt;br /&gt;                ci, sub_name)) Then&lt;br /&gt;                     Return (False)&lt;br /&gt;            End If&lt;br /&gt;        Next&lt;br /&gt;        Return (True)&lt;br /&gt;    End Function&lt;br /&gt;&lt;br /&gt;    'Component overrides dispose to clean up the component list.&lt;br /&gt;    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;        If disposing Then&lt;br /&gt;            If Not (components Is Nothing) Then&lt;br /&gt;                components.Dispose()&lt;br /&gt;            End If&lt;br /&gt;        End If&lt;br /&gt;        MyBase.Dispose(disposing)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    'Required by the Component Designer&lt;br /&gt;    Private components As System.ComponentModel.IContainer&lt;br /&gt;&lt;br /&gt;    'NOTE: The following procedure is required by the Component Designer&lt;br /&gt;    'It can be modified using the Component Designer.&lt;br /&gt;    'Do not modify it using the code editor.&lt;br /&gt;    &lt;System.Diagnostics.DebuggerStepThrough()&gt;&lt;br /&gt;    Private Sub InitializeComponent()&lt;br /&gt;        components = New System.ComponentModel.Container&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;#End Region&lt;br /&gt;&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;2.Class untuk menampilkan Crystal Reports 9 report pada format PDF tanpa RAS&lt;br /&gt;Kamu harus setup parameter di bawah ini pada  web.config file :&lt;br /&gt;ReportPath - path dari report yang ingin ditampilkan; &lt;br /&gt;ServerName , DatabaseName, UserID and Password -  connection string.&lt;br /&gt;&lt;br /&gt;Argument:&lt;br /&gt;&lt;br /&gt;sReport -nama report; &lt;br /&gt;arParams - parameter yang diharapkan oleh  report; &lt;br /&gt;DoParams - False jika report tidak mempunyai parameter.&lt;br /&gt;&lt;br /&gt;Here is the class&lt;br /&gt;&lt;br /&gt;Imports CrystalDecisions.CrystalReports.Engine&lt;br /&gt;Imports CrystalDecisions.Shared&lt;br /&gt;Imports CrystalDecisions.Web.Design&lt;br /&gt;Imports System.IO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Public Class ShowCRInPDF&lt;br /&gt;    Public Sub CreateReport(ByVal sReport As String, ByVal _&lt;br /&gt;               arParams As Array, Optional ByVal _&lt;br /&gt;               DoParams As Boolean = True)&lt;br /&gt;        Dim oRpt As New ReportDocument&lt;br /&gt;        Dim oSubRpt As New ReportDocument&lt;br /&gt;        Dim Counter As Integer&lt;br /&gt;        Dim crSections As Sections&lt;br /&gt;        Dim crSection As Section&lt;br /&gt;        Dim crReportObjects As ReportObjects&lt;br /&gt;        Dim crReportObject As ReportObject&lt;br /&gt;        Dim crSubreportObject As SubreportObject&lt;br /&gt;        Dim crDatabase As Database&lt;br /&gt;        Dim crTables As Tables&lt;br /&gt;        Dim crTable As Table&lt;br /&gt;        Dim crLogOnInfo As TableLogOnInfo&lt;br /&gt;        Dim crConnInfo As New ConnectionInfo&lt;br /&gt;        Dim crParameterValues As ParameterValues&lt;br /&gt;        Dim crParameterDiscreteValue As ParameterDiscreteValue&lt;br /&gt;        Dim crParameterRangeValue As ParameterRangeValue&lt;br /&gt;        Dim crParameterFieldDefinitions As ParameterFieldDefinitions&lt;br /&gt;        Dim crParameterFieldDefinition As ParameterFieldDefinition&lt;br /&gt;        Dim crParameterFieldDefinition2 As ParameterFieldDefinition&lt;br /&gt;        Dim strFile As String&lt;br /&gt;        Dim fi As FileInfo&lt;br /&gt;        Dim tstr As String&lt;br /&gt;        Dim sPath As String&lt;br /&gt;        Dim configurationAppSettings As _&lt;br /&gt;            System.Configuration.AppSettingsReader = _&lt;br /&gt;            New System.Configuration.AppSettingsReader&lt;br /&gt;&lt;br /&gt;        Dim sReportPath As String = _&lt;br /&gt;            configurationAppSettings.GetValue("ReportPath", _&lt;br /&gt;            GetType(System.String)) &amp; sReport&lt;br /&gt;        Dim pos As Integer&lt;br /&gt;        'Try&lt;br /&gt;        tstr = Microsoft.VisualBasic.Format(Now, "MM/dd/yyyy HH:mm:ss")&lt;br /&gt;        'load report&lt;br /&gt;        oRpt.Load(sReportPath)&lt;br /&gt;        'log on to SQL server&lt;br /&gt;        'Report code starts here&lt;br /&gt;        'Set the database and the tables objects to the main report 'oRpt'&lt;br /&gt;        crDatabase = oRpt.Database&lt;br /&gt;        crTables = crDatabase.Tables&lt;br /&gt;        'Loop through each table and set the connection info&lt;br /&gt;        'Pess the connection info to the logoninfo object then apply the&lt;br /&gt;        'logoninfo to the main report&lt;br /&gt;        For Each crTable In crTables&lt;br /&gt;            With crConnInfo&lt;br /&gt;                .ServerName = _&lt;br /&gt;                  configurationAppSettings.GetValue("ServerName", _&lt;br /&gt;                  GetType(System.String))&lt;br /&gt;                .DatabaseName = _&lt;br /&gt;                  configurationAppSettings.GetValue("DatabaseName", _&lt;br /&gt;                  GetType(System.String))&lt;br /&gt;                .UserID = _&lt;br /&gt;                  configurationAppSettings.GetValue("UserID", _&lt;br /&gt;                  GetType(System.String))&lt;br /&gt;                .Password = _&lt;br /&gt;                  configurationAppSettings.GetValue("Password", _&lt;br /&gt;                  GetType(System.String))&lt;br /&gt;            End With&lt;br /&gt;            crLogOnInfo = crTable.LogOnInfo&lt;br /&gt;            crLogOnInfo.ConnectionInfo = crConnInfo&lt;br /&gt;            crTable.ApplyLogOnInfo(crLogOnInfo)&lt;br /&gt;        Next&lt;br /&gt;        'Set the sections collection with report sections&lt;br /&gt;        crSections = oRpt.ReportDefinition.Sections&lt;br /&gt;        'Loop through each section and find all the report objects&lt;br /&gt;        'Loop through all the report objects&lt;br /&gt;        'to find all subreport objects, then set the&lt;br /&gt;        'logoninfo to the subreport&lt;br /&gt;        For Each crSection In crSections&lt;br /&gt;            crReportObjects = crSection.ReportObjects&lt;br /&gt;            For Each crReportObject In crReportObjects&lt;br /&gt;                If crReportObject.Kind = ReportObjectKind.SubreportObject Then&lt;br /&gt;                    'If you find a subreport, typecast&lt;br /&gt;                    'the reportobject to a subreport object&lt;br /&gt;                    crSubreportObject = CType(crReportObject, SubreportObject)&lt;br /&gt;                    'Open the subreport&lt;br /&gt;                    oSubRpt = _&lt;br /&gt;                      crSubreportObject.OpenSubreport(_&lt;br /&gt;                      crSubreportObject.SubreportName)&lt;br /&gt;                    crDatabase = oSubRpt.Database&lt;br /&gt;                    crTables = crDatabase.Tables&lt;br /&gt;                    'Loop through each table and set the connection info&lt;br /&gt;                    'Pess the connection info&lt;br /&gt;                    'to the logoninfo object then apply the&lt;br /&gt;                    'logoninfo to the subreport&lt;br /&gt;                    For Each crTable In crTables&lt;br /&gt;                        With crConnInfo&lt;br /&gt;                           .ServerName = _&lt;br /&gt;                             configurationAppSettings.GetValue("ServerName", _&lt;br /&gt;                             GetType(System.String))&lt;br /&gt;                           .UserID = _&lt;br /&gt;                             configurationAppSettings.GetValue("UserID", _&lt;br /&gt;                             GetType(System.String))&lt;br /&gt;                           .Password = _&lt;br /&gt;                             configurationAppSettings.GetValue("Password", _&lt;br /&gt;                             GetType(System.String))&lt;br /&gt;                        End With&lt;br /&gt;                        crLogOnInfo = crTable.LogOnInfo&lt;br /&gt;                        crLogOnInfo.ConnectionInfo = crConnInfo&lt;br /&gt;                        crTable.ApplyLogOnInfo(crLogOnInfo)&lt;br /&gt;                    Next&lt;br /&gt;                End If&lt;br /&gt;            Next&lt;br /&gt;        Next&lt;br /&gt;        ' Set the parameters&lt;br /&gt;        If DoParams Then&lt;br /&gt;            'Get the collection of parameters from the report&lt;br /&gt;            crParameterFieldDefinitions = oRpt.DataDefinition.ParameterFields()&lt;br /&gt;            For Counter = 0 To UBound(arParams)&lt;br /&gt;                crParameterFieldDefinition = _&lt;br /&gt;                  crParameterFieldDefinitions.Item(Counter)&lt;br /&gt;                ' Response.Write(crParameterFieldDefinition.ParameterFieldName_&lt;br /&gt;                '                                                  &amp; "&lt;br&gt;")&lt;br /&gt;                'Get the current values from the parameter field.&lt;br /&gt;                crParameterValues = crParameterFieldDefinition.CurrentValues&lt;br /&gt;                If Not IsArray(arParams(Counter)) Then&lt;br /&gt;                    'Test if param passed in matches CR param recieving&lt;br /&gt;                    Dim test As String&lt;br /&gt;                    Dim paramcounter As Integer&lt;br /&gt;                    For paramcounter = 0 To UBound(arParams)&lt;br /&gt;                        ' Response.Write(arParams(paramcounter))&lt;br /&gt;                        test = arParams(paramcounter)&lt;br /&gt;                        'Grabs param from CR and compares against param passed in&lt;br /&gt;                        If test.StartsWith(_&lt;br /&gt;                          crParameterFieldDefinition.ParameterFieldName()) Then&lt;br /&gt;                            'arParams(Counter) = _&lt;br /&gt;                            '   test.Substring(test.IndexOf("=") + 1)&lt;br /&gt;                            'Set the current values for the parameter field 0&lt;br /&gt;                            crParameterDiscreteValue = New ParameterDiscreteValue&lt;br /&gt;                            crParameterDiscreteValue.Value = _&lt;br /&gt;                              test.Substring(test.IndexOf("=") + 1)&lt;br /&gt;                            'Add the first current value for the parameter field&lt;br /&gt;                            crParameterValues.Add(crParameterDiscreteValue)&lt;br /&gt;                            'Response.Write(crParameterFieldDefinition.&lt;br /&gt;                            '    ParameterFieldName() &amp; "- " &amp; _&lt;br /&gt;                            '    crParameterDiscreteValue.Value)&lt;br /&gt;                            'Response.Flush()&lt;br /&gt;                            Exit For&lt;br /&gt;                        End If&lt;br /&gt;                    Next&lt;br /&gt;                Else&lt;br /&gt;                    crParameterRangeValue = New ParameterRangeValue&lt;br /&gt;                    crParameterRangeValue.StartValue = arParams(Counter)(0)&lt;br /&gt;                    crParameterRangeValue.EndValue = arParams(Counter)(1)&lt;br /&gt;                    crParameterValues.Add(crParameterRangeValue)&lt;br /&gt;                End If&lt;br /&gt;                'All current parameter values&lt;br /&gt;                'must be applied for the parameter field.&lt;br /&gt;                crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)&lt;br /&gt;            Next&lt;br /&gt;        End If&lt;br /&gt;        Dim s As System.IO.MemoryStream = _&lt;br /&gt;          oRpt.ExportToStream(ExportFormatType.PortableDocFormat)&lt;br /&gt;        ' the code below will create pdfs&lt;br /&gt;        ' in memory and stream them to the browser&lt;br /&gt;        ' instead of creating files on disk.&lt;br /&gt;        With HttpContext.Current.Response&lt;br /&gt;            .ClearContent()&lt;br /&gt;            .ClearHeaders()&lt;br /&gt;            .ContentType = "application/pdf"&lt;br /&gt;            .AddHeader("Content-Disposition", "inline; filename=Report.pdf")&lt;br /&gt;            .BinaryWrite(s.ToArray)&lt;br /&gt;            .End()&lt;br /&gt;        End With&lt;br /&gt;        'Catch ex As System.Exception&lt;br /&gt;        'Finally&lt;br /&gt;        '    Erase arParams&lt;br /&gt;        'End Try&lt;br /&gt;    End Sub&lt;br /&gt;End Class&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111836015679792646?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111836015679792646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111836015679792646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111836015679792646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111836015679792646'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/bekerja-dengan-aspnet-dan-crystal.html' title='Bekerja dengan ASP.NET dan CRYSTAL REPORT 9 dengan atau tanpa RAS 9'/><author><name>inge_as (202114594)</name><uri>http://www.blogger.com/profile/06101207009058987811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111835937989036627</id><published>2005-06-09T16:18:00.000-07:00</published><updated>2005-06-09T16:22:59.896-07:00</updated><title type='text'>Localizable Currency TextBox</title><content type='html'>Ini digunakan untuk membuat control yang cocok untuk menampilkan dan meng-edit secara benar nilai currency yang ada formatnya yang dapat dibatasi dengan nilai desimal. &lt;br /&gt;Webcontrol secara default, merender sebagai span. Untuk render sebuah textbox &lt;INPUT&gt;, harus override Tagkey&lt;br /&gt;protected override HtmlTextWriterTag TagKey&lt;br /&gt;{&lt;br /&gt;  get&lt;br /&gt;  {&lt;br /&gt;    return HtmlTextWriterTag.Input;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;dan kemudian tambahkan atribut dengan overriding AddAttributesToRender.&lt;br /&gt;&lt;br /&gt;protected override void AddAttributesToRender(HtmlTextWriter writer)&lt;br /&gt;{&lt;br /&gt;  base.AddAttributesToRender(writer);&lt;br /&gt;  // Tambahkan atribut untuk menampilkan sebuah text control&lt;br /&gt;  writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");&lt;br /&gt;  writer.AddAttribute(HtmlTextWriterAttribute.Name, UniqueID);&lt;br /&gt;  writer.AddAttribute(HtmlTextWriterAttribute.Value, Text);&lt;br /&gt;  writer.AddStyleAttribute("text-align", Alignment.ToString());&lt;br /&gt;  // Tambahkan atribut yang ditentukan user untuk control format warna&lt;br /&gt;  writer.AddAttribute("negativeColor", NegativeColor.Name);&lt;br /&gt;  if (PositiveColor != Color.Empty)&lt;br /&gt;  {&lt;br /&gt;    writer.AddAttribute("positiveColor", PositiveColor.Name);&lt;br /&gt;  }&lt;br /&gt;  // Tambahkan client side event handlers&lt;br /&gt;  writer.AddAttribute("onkeypress", "EnsureNumeric()");&lt;br /&gt;  writer.AddAttribute("onfocus", "FormatAsDecimal(this)");&lt;br /&gt;  writer.AddAttribute("onblur", "FormatAsCurrency(this)");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Dua atribut yang ditentukan user ditambahkan pada rendered control,positiveColor dan negativeColor. Dua atribut ini dibaca pada script dari sisi client untuk mengatur warna text tergantung dari nilainya. &lt;br /&gt;&lt;br /&gt;Script Client Side &lt;br /&gt;&lt;br /&gt;Base class method OnPreRender dioverride untuk mendapatkan format number. Kemudian itu akan mengecek jika script sudahb diregister atau belum.Jika belum, code akan dipanggil untuk membangun mereka menggunakan NumberFormat dan akhirnya akan me-registerkan mereka&lt;br /&gt;&lt;br /&gt;protected override void OnPreRender(EventArgs e)&lt;br /&gt;{&lt;br /&gt;  // Get the number format of the current culture&lt;br /&gt;  NumberFormatInfo format = Thread.CurrentThread.CurrentCulture.NumberFormat;&lt;br /&gt;  // Register the EnsureNumeric script&lt;br /&gt;  if (!Page.IsClientScriptBlockRegistered("EnsureNumeric"))&lt;br /&gt;  {&lt;br /&gt;    Page.RegisterClientScriptBlock("EnsureNumeric",EnsureNumericScript(format));&lt;br /&gt;  }&lt;br /&gt;  ...........&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lima function script yang diregister:&lt;br /&gt;EnsureNumeric() ditunjukkan pada event OnKeyPress and membatasi entry keyboard pada valid input. &lt;br /&gt;FormatAsDecimal() is ditunjukkan pada  event OnFocus. Ini memanggil CurrencyToDecimal() function and mem-format teksnya berdasarkan nilai kembaliannya. &lt;br /&gt;FormatAsCurrency() ditunjukkan pada event OnBlur . Ini memanggil DecimalToCurrency() function and mem-format teksnya berdasarkan nilai kembaliannya. &lt;br /&gt;CurrencyToDecimal() mengubah string currency menjadi nilai desimal&lt;br /&gt;DecimalToCurrency() mengubah nilai desimal menjadi string currency .&lt;br /&gt;&lt;br /&gt;Code yang digunakan untuk menghasilkan script ini terlalu panjang maka di sini diajarkan langkah-langkah untuk membuat Currency TextBox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111835937989036627?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111835937989036627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111835937989036627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111835937989036627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111835937989036627'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/localizable-currency-textbox.html' title='Localizable Currency TextBox'/><author><name>inge_as (202114594)</name><uri>http://www.blogger.com/profile/06101207009058987811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111844830072782126</id><published>2005-06-09T15:03:00.000-07:00</published><updated>2005-06-10T17:05:00.730-07:00</updated><title type='text'>Create Vertikal Label in  ASP.Net</title><content type='html'>Program di bawah ini dapat menampilkan hasil text yang ditampilkan vertikal pada layar browser&lt;br /&gt;&lt;br /&gt;    contoh output:&lt;br /&gt;    P G&lt;br /&gt;    N i&lt;br /&gt;    G f&lt;br /&gt;&lt;br /&gt;    Listing yang digunakan untuk mengubah label:&lt;br /&gt;&lt;br /&gt;    using System;&lt;br /&gt;    using System.Globalization;&lt;br /&gt;    using System.Collections;&lt;br /&gt;    using System.ComponentModel;&lt;br /&gt;    using System.Data;&lt;br /&gt;    using System.IO;&lt;br /&gt;    using System.Drawing;&lt;br /&gt;    using System.Drawing.Text;&lt;br /&gt;    using System.Drawing.Imaging;&lt;br /&gt;    using System.Web;&lt;br /&gt;    using System.Web.SessionState;&lt;br /&gt;    using System.Web.UI;&lt;br /&gt;    using System.Web.UI.WebControls;&lt;br /&gt;    using System.Web.UI.HtmlControls;&lt;br /&gt;&lt;br /&gt;    namespace WebImageTest {&lt;br /&gt;    public class VerticalText : System.Web.UI.Page {&lt;br /&gt;&lt;br /&gt;    private Color StrToColor(string c) {&lt;br /&gt;    if (c.Trim().IndexOf("$")==0) return ColorTranslator.FromHtml(c.Replace("$","#"));&lt;br /&gt;    else return Color.FromName(c);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private void Page_Load(object sender, System.EventArgs e) {&lt;br /&gt;&lt;br /&gt;    string Text = Request["Text"];&lt;br /&gt;&lt;br /&gt;    string fontName = "Arial";&lt;br /&gt;    int fontSize = 12;&lt;br /&gt;    FontStyle fontStyle = new FontStyle();&lt;br /&gt;    try {&lt;br /&gt;    string [] fontStr = Request["Font"].Split(new char[] {'|',',',' ','/',':',';'});&lt;br /&gt;    try { if (fontStr[0]!="") fontName = fontStr[0]; } catch { }&lt;br /&gt;    try { fontSize = int.Parse(fontStr[1]); } catch { }&lt;br /&gt;    try {&lt;br /&gt;    if (fontStr[2].IndexOf('B')&gt;=0) fontStyle |= FontStyle.Bold;&lt;br /&gt;    if (fontStr[2].IndexOf('I')&gt;=0) fontStyle |= FontStyle.Italic;&lt;br /&gt;    if (fontStr[2].IndexOf('U')&gt;=0) fontStyle |= FontStyle.Underline;&lt;br /&gt;    } catch {}&lt;br /&gt;    } catch {}&lt;br /&gt;    Font font = new Font(fontName, fontSize, fontStyle);&lt;br /&gt;&lt;br /&gt;    int pad = 0;&lt;br /&gt;    Color bgColor = Color.White;&lt;br /&gt;    Brush br = Brushes.Black;&lt;br /&gt;&lt;br /&gt;    try { pad = int.Parse(Request["Padding"]); } catch { }&lt;br /&gt;    try { bgColor = StrToColor(Request["BgColor"]); } catch { }&lt;br /&gt;    try { br = new SolidBrush( StrToColor(Request["FrColor"]) ); } catch { }&lt;br /&gt;&lt;br /&gt;    StringFormat format = new StringFormat(StringFormat.GenericDefault);&lt;br /&gt;    format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces | StringFormatFlags.DirectionVertical;&lt;br /&gt;&lt;br /&gt;    SizeF sz = (Graphics.FromImage(new Bitmap(1,1))).MeasureString(Text, font, Point.Empty, format);&lt;br /&gt;&lt;br /&gt;    Bitmap bm = new Bitmap((int)sz.Width+2*pad,(int)sz.Height+2*pad);&lt;br /&gt;    System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bm);&lt;br /&gt;    try {&lt;br /&gt;    g.Clear(bgColor);&lt;br /&gt;    g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; //AntiAliasGridFit;&lt;br /&gt;    g.TranslateTransform ((int)sz.Width,(int)sz.Height);&lt;br /&gt;    g.RotateTransform(180.0F);&lt;br /&gt;    g.DrawString(Text, font, br, -1-pad, 1-pad, format);&lt;br /&gt;&lt;br /&gt;    MemoryStream ms = new MemoryStream();&lt;br /&gt;    bm.Save(ms,ImageFormat.Png);&lt;br /&gt;    Response.ContentType = "image/png";&lt;br /&gt;    Response.BinaryWrite( ms.ToArray() );&lt;br /&gt;    ms.Close();&lt;br /&gt;    } finally {&lt;br /&gt;    g.Dispose();&lt;br /&gt;    bm.Dispose();&lt;br /&gt;    font.Dispose();&lt;br /&gt;    }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    #region Web Form Designer generated code&lt;br /&gt;    override protected void OnInit(EventArgs e)&lt;br /&gt;    {&lt;br /&gt;    //&lt;br /&gt;    // CODEGEN: This call is required by the ASP.NET Web Form Designer.&lt;br /&gt;    //&lt;br /&gt;    InitializeComponent();&lt;br /&gt;    base.OnInit(e);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private void InitializeComponent()&lt;br /&gt;    {&lt;br /&gt;    this.Load += new System.EventHandler(this.Page_Load);&lt;br /&gt;    }&lt;br /&gt;    #endregion&lt;br /&gt;    }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    Listing yang digunakan untuk mengubah text :&lt;br /&gt;&lt;br /&gt;    using System;&lt;br /&gt;    using System.Web.UI;&lt;br /&gt;    using System.Text;&lt;br /&gt;    using System.Web.UI.WebControls;&lt;br /&gt;    using System.ComponentModel;&lt;br /&gt;    using System.Drawing;&lt;br /&gt;&lt;br /&gt;    namespace TH.WebControls {&lt;br /&gt;&lt;br /&gt;    [DefaultProperty("Text"),&lt;br /&gt;    ToolboxData("&lt;{0}:VerticalLabel runat=server&gt;")]&lt;br /&gt;    public class VerticalLabel : WebControl, INamingContainer {&lt;br /&gt;&lt;br /&gt;    private string text;&lt;br /&gt;    [Bindable(true),&lt;br /&gt;    Category("Appearance"),&lt;br /&gt;    DefaultValue("Text to be verticaly rendered.")]&lt;br /&gt;    public string Text {&lt;br /&gt;    get { return text; }&lt;br /&gt;    set { text = value; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private int _Padding;&lt;br /&gt;    [Category("Appearance"),]&lt;br /&gt;    public int Padding {&lt;br /&gt;    get { return _Padding; }&lt;br /&gt;    set {&lt;br /&gt;    _Padding = value;&lt;br /&gt;    }&lt;br /&gt;    }&lt;br /&gt;    /// &lt;br /&gt;&lt;br /&gt;The HTML writer to write out to&lt;br /&gt;protected override void Render(HtmlTextWriter output) {&lt;br /&gt;&lt;br /&gt;output.Write(" s.Append("&amp;Font="+Font.Name+"|");&lt;br /&gt;if (Font.Size.Unit.Value&gt;0)&lt;br /&gt;s.Append(Font.Size.Unit.Value.ToString());&lt;br /&gt;if (Font.Bold || Font.Italic || Font.Underline) {&lt;br /&gt;s.Append("|");&lt;br /&gt;if (Font.Bold ) s.Append("B");&lt;br /&gt;if (Font.Italic ) s.Append("I");&lt;br /&gt;if (Font.Underline) s.Append("U");&lt;br /&gt;}&lt;br /&gt;if (!BackColor.IsEmpty)&lt;br /&gt;s.Append("&amp;BgColor="+((BackColor.IsKnownColor)&lt;br /&gt;?(new WebColorConverter()).ConvertToString(BackColor)&lt;br /&gt;:ColorTranslator.ToHtml(BackColor).Replace("#","$")));&lt;br /&gt;if (!ForeColor.IsEmpty)&lt;br /&gt;s.Append("&amp;FrColor="+((ForeColor.IsKnownColor)&lt;br /&gt;?(new WebColorConverter()).ConvertToString(ForeColor)&lt;br /&gt;:ColorTranslator.ToHtml(ForeColor).Replace("#","$")));&lt;br /&gt;if (Padding&gt;0)&lt;br /&gt;s.Append("&amp;Padding="+Padding.ToString());&lt;br /&gt;s.Append("\"");&lt;br /&gt;output.Write(s.ToString());&lt;br /&gt;&lt;br /&gt;output.Write(" Alt=\""+Text+"\"&gt;");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111844830072782126?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111844830072782126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111844830072782126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111844830072782126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111844830072782126'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/create-vertikal-label-in-aspnet_09.html' title='Create Vertikal Label in  ASP.Net'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111844823643040810</id><published>2005-06-09T13:58:00.000-07:00</published><updated>2005-06-10T17:05:53.393-07:00</updated><title type='text'>Mengubah  XML ke SQL</title><content type='html'>File yang dibentuk pada file XML dapat diubah ke dalam bentuk database dan dimasukkan ke SQL Server. Untuk itu dibutuhkan koneksi ke SQL server yang mana cara penggunaannya sama seperti membuka koneksi pada database biasa.&lt;br /&gt;&lt;br /&gt;using System; &lt;br /&gt;using System.Windows.Forms; &lt;br /&gt;using System.IO; &lt;br /&gt;using System.Data; &lt;br /&gt;using System.Data.SqlClient; &lt;br /&gt;  &lt;br /&gt;namespace DefaultNamespace &lt;br /&gt;{ &lt;br /&gt;  &lt;br /&gt;    public class MainForm : System.Windows.Forms.Form &lt;br /&gt;    { &lt;br /&gt;        private System.Windows.Forms.MenuItem enregistrer; &lt;br /&gt;        private System.Windows.Forms.RichTextBox affichage; &lt;br /&gt;        private System.Windows.Forms.MenuItem quitter; &lt;br /&gt;        private System.Windows.Forms.MenuItem menuItem7; &lt;br /&gt;        private System.Windows.Forms.MenuItem ouvrir; &lt;br /&gt;        private System.Windows.Forms.DataGrid Grille; &lt;br /&gt;        private System.Windows.Forms.MenuItem menuItem2; &lt;br /&gt;        private System.Windows.Forms.MenuItem menuItem1; &lt;br /&gt;        private System.Windows.Forms.DataGrid xml; &lt;br /&gt;        private System.Windows.Forms.MenuItem menuItem6; &lt;br /&gt;        private System.Windows.Forms.MenuItem menuItem5; &lt;br /&gt;        private System.Windows.Forms.RichTextBox requete; &lt;br /&gt;        private System.Windows.Forms.MainMenu mainMenu1; &lt;br /&gt;        private System.Windows.Forms.MenuItem aide; &lt;br /&gt;        private System.Windows.Forms.ComboBox ChoixBase; &lt;br /&gt;        private System.Windows.Forms.MenuItem sql; &lt;br /&gt;        private System.Windows.Forms.MenuItem menuItem10; &lt;br /&gt;        // deklarasi variabel&lt;br /&gt;        private SqlConnection MaSqlCnx = new SqlConnection(); &lt;br /&gt;        private OpenFileDialog MaBoite = new OpenFileDialog(); &lt;br /&gt;        private DataSet unDS = new DataSet(); &lt;br /&gt;        private string sCreate = ""; &lt;br /&gt;        private SqlCommand MySqlCmd = new SqlCommand();      &lt;br /&gt;        private SaveFileDialog MaSauvegarde = new SaveFileDialog(); &lt;br /&gt;        private StreamWriter sEcrire; &lt;br /&gt;        private DataSet dsXml = new DataSet(); &lt;br /&gt;        private DataTable DatTableSource = null; &lt;br /&gt;        private SqlDataAdapter da = null; &lt;br /&gt;        private DataSet ds = new DataSet(); &lt;br /&gt;         &lt;br /&gt;        public MainForm() &lt;br /&gt;        { &lt;br /&gt;           InitializeComponent(); &lt;br /&gt;       } &lt;br /&gt;         &lt;br /&gt;        [STAThread] &lt;br /&gt;        public static void Main(string[] args) &lt;br /&gt;        { &lt;br /&gt;            Application.Run(new MainForm()); &lt;br /&gt;        } &lt;br /&gt;        #region Windows Forms Designer generated code &lt;br /&gt;        private void InitializeComponent() { &lt;br /&gt;            this.menuItem10 = new System.Windows.Forms.MenuItem(); &lt;br /&gt;            this.sql = new System.Windows.Forms.MenuItem(); &lt;br /&gt;            this.ChoixBase = new System.Windows.Forms.ComboBox(); &lt;br /&gt;            this.aide = new System.Windows.Forms.MenuItem(); &lt;br /&gt;            this.mainMenu1 = new System.Windows.Forms.MainMenu(); &lt;br /&gt;            this.requete = new System.Windows.Forms.RichTextBox(); &lt;br /&gt;            this.menuItem5 = new System.Windows.Forms.MenuItem(); &lt;br /&gt;            this.menuItem6 = new System.Windows.Forms.MenuItem(); &lt;br /&gt;            this.xml = new System.Windows.Forms.DataGrid(); &lt;br /&gt;            this.menuItem1 = new System.Windows.Forms.MenuItem(); &lt;br /&gt;            this.menuItem2 = new System.Windows.Forms.MenuItem(); &lt;br /&gt;            this.Grille = new System.Windows.Forms.DataGrid(); &lt;br /&gt;            this.ouvrir = new System.Windows.Forms.MenuItem(); &lt;br /&gt;            this.menuItem7 = new System.Windows.Forms.MenuItem(); &lt;br /&gt;            this.quitter = new System.Windows.Forms.MenuItem(); &lt;br /&gt;            this.affichage = new System.Windows.Forms.RichTextBox(); &lt;br /&gt;            this.enregistrer = new System.Windows.Forms.MenuItem(); &lt;br /&gt;            ((System.ComponentModel.ISupportInitialize)(this.xml)).BeginInit(); &lt;br /&gt;            ((System.ComponentModel.ISupportInitialize)(this.Grille)).BeginInit(); &lt;br /&gt;            this.SuspendLayout(); &lt;br /&gt;            // &lt;br /&gt;            // item menu &lt;br /&gt;            // &lt;br /&gt;            this.menuItem10.Index = 2; &lt;br /&gt;            this.menuItem10.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { &lt;br /&gt;                        this.aide}); &lt;br /&gt;            this.menuItem10.Text = "?"; &lt;br /&gt;            // &lt;br /&gt;            // SQL&lt;br /&gt;            // &lt;br /&gt;            this.sql.Index = 1; &lt;br /&gt;            this.sql.Text = "SQL"; &lt;br /&gt;            this.sql.Click += new System.EventHandler(this.SQL); &lt;br /&gt;&lt;br /&gt;            this.ChoixBase.Location = new System.Drawing.Point(8, 24); &lt;br /&gt;            this.ChoixBase.Name = "ChoixBase"; &lt;br /&gt;            this.ChoixBase.Size = new System.Drawing.Size(152, 21); &lt;br /&gt;            this.ChoixBase.TabIndex = 3; &lt;br /&gt;            this.ChoixBase.Text = "-----Selection----"; &lt;br /&gt;          &lt;br /&gt;this.aide.Index = 0; &lt;br /&gt;            this.aide.Text = "A propos"; &lt;br /&gt;            this.aide.Click += new System.EventHandler(this.Aide); &lt;br /&gt;            // &lt;br /&gt;            // mainMenu &lt;br /&gt;            // &lt;br /&gt;            this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { &lt;br /&gt;                        this.menuItem1, &lt;br /&gt;                        this.menuItem5, &lt;br /&gt;                        this.menuItem10}); &lt;br /&gt;           &lt;br /&gt;            this.requete.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) &lt;br /&gt;                        | System.Windows.Forms.AnchorStyles.Right))); &lt;br /&gt;            this.requete.Location = new System.Drawing.Point(568, 56); &lt;br /&gt;            this.requete.Name = "requete"; &lt;br /&gt;            this.requete.Size = new System.Drawing.Size(452, 136); &lt;br /&gt;            this.requete.TabIndex = 1; &lt;br /&gt;            this.requete.Text = ""; &lt;br /&gt;            &lt;br /&gt;            this.menuItem5.Index = 1; &lt;br /&gt;            this.menuItem5.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { &lt;br /&gt;                        this.menuItem6, &lt;br /&gt;                        this.menuItem2}); &lt;br /&gt;            this.menuItem5.Text = "Affichage"; &lt;br /&gt;            &lt;br /&gt;            this.menuItem6.Index = 0; &lt;br /&gt;            this.menuItem6.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { &lt;br /&gt;                        this.menuItem7, &lt;br /&gt;                        this.sql}); &lt;br /&gt;            this.menuItem6.Text = "Afficher"; &lt;br /&gt;           &lt;br /&gt;            // XML&lt;br /&gt;            // &lt;br /&gt;            this.xml.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) &lt;br /&gt;                        | System.Windows.Forms.AnchorStyles.Left) &lt;br /&gt;                        | System.Windows.Forms.AnchorStyles.Right))); &lt;br /&gt;            this.xml.CaptionForeColor = System.Drawing.SystemColors.ActiveCaptionText; &lt;br /&gt;            this.xml.DataMember = ""; &lt;br /&gt;            this.xml.HeaderForeColor = System.Drawing.SystemColors.ControlText; &lt;br /&gt;            this.xml.Location = new System.Drawing.Point(568, 208); &lt;br /&gt;            this.xml.Name = "xml"; &lt;br /&gt;            this.xml.Size = new System.Drawing.Size(452, 208); &lt;br /&gt;            this.xml.TabIndex = 2; &lt;br /&gt;            &lt;br /&gt;            this.menuItem1.Index = 0; &lt;br /&gt;            this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { &lt;br /&gt;                        this.ouvrir, &lt;br /&gt;                        this.enregistrer, &lt;br /&gt;                        this.quitter}); &lt;br /&gt;            this.menuItem1.Text = "Fichiers"; &lt;br /&gt;            &lt;br /&gt;            this.menuItem2.Index = 1; &lt;br /&gt;            this.menuItem2.Text = "Requette"; &lt;br /&gt;            this.menuItem2.Click += new System.EventHandler(this.Requette); &lt;br /&gt;           &lt;br /&gt;            this.Grille.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) &lt;br /&gt;                        | System.Windows.Forms.AnchorStyles.Left) &lt;br /&gt;                        | System.Windows.Forms.AnchorStyles.Right))); &lt;br /&gt;            this.Grille.CaptionForeColor = System.Drawing.SystemColors.ActiveCaptionText; &lt;br /&gt;            this.Grille.DataMember = ""; &lt;br /&gt;            this.Grille.HeaderForeColor = System.Drawing.SystemColors.ControlText; &lt;br /&gt;            this.Grille.Location = new System.Drawing.Point(568, 432); &lt;br /&gt;            this.Grille.Name = "Grille"; &lt;br /&gt;            this.Grille.Size = new System.Drawing.Size(452, 184); &lt;br /&gt;            this.Grille.TabIndex = 4; &lt;br /&gt;           &lt;br /&gt;            this.ouvrir.Index = 0; &lt;br /&gt;            this.ouvrir.Shortcut = System.Windows.Forms.Shortcut.CtrlO; &lt;br /&gt;            this.ouvrir.Text = "Ouvrir"; &lt;br /&gt;            this.ouvrir.Click += new System.EventHandler(this.Ouvrir); &lt;br /&gt;           &lt;br /&gt;            this.menuItem7.Index = 0; &lt;br /&gt;            this.menuItem7.Text = "XML"; &lt;br /&gt;            this.menuItem7.Click += new System.EventHandler(this.XML); &lt;br /&gt;           &lt;br /&gt;            this.quitter.Index = 2; &lt;br /&gt;            this.quitter.Shortcut = System.Windows.Forms.Shortcut.AltF4; &lt;br /&gt;            this.quitter.Text = "Quitter"; &lt;br /&gt;            this.quitter.Click += new System.EventHandler(this.Quitter); &lt;br /&gt;            &lt;br /&gt;            this.affichage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) &lt;br /&gt;                        | System.Windows.Forms.AnchorStyles.Left))); &lt;br /&gt;            this.affichage.Location = new System.Drawing.Point(8, 56); &lt;br /&gt;            this.affichage.Name = "affichage"; &lt;br /&gt;            this.affichage.Size = new System.Drawing.Size(544, 560); &lt;br /&gt;            this.affichage.TabIndex = 0; &lt;br /&gt;            this.affichage.Text = ""; &lt;br /&gt;            &lt;br /&gt;            this.enregistrer.Index = 1; &lt;br /&gt;            this.enregistrer.Shortcut = System.Windows.Forms.Shortcut.CtrlS; &lt;br /&gt;            this.enregistrer.Text = "Enregistrer"; &lt;br /&gt;            this.enregistrer.Click += new System.EventHandler(this.Enregistrer); &lt;br /&gt;            // &lt;br /&gt;            // MainForm &lt;br /&gt;            // &lt;br /&gt;            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); &lt;br /&gt;            this.ClientSize = new System.Drawing.Size(1028, 621); &lt;br /&gt;            this.Controls.Add(this.Grille); &lt;br /&gt;            this.Controls.Add(this.ChoixBase); &lt;br /&gt;            this.Controls.Add(this.xml); &lt;br /&gt;            this.Controls.Add(this.requete); &lt;br /&gt;            this.Controls.Add(this.affichage); &lt;br /&gt;            this.Menu = this.mainMenu1; &lt;br /&gt;            this.Name = "MainForm"; &lt;br /&gt;            this.Text = "MainForm"; &lt;br /&gt;            this.Load += new System.EventHandler(this.MainFormLoad); &lt;br /&gt;            ((System.ComponentModel.ISupportInitialize)(this.xml)).EndInit(); &lt;br /&gt;            ((System.ComponentModel.ISupportInitialize)(this.Grille)).EndInit(); &lt;br /&gt;            this.ResumeLayout(false); &lt;br /&gt;        } &lt;br /&gt;        #endregion &lt;br /&gt;         private void Quitter( object sender, System.EventArgs e) &lt;br /&gt;         { &lt;br /&gt;         this.Close();                                                                      } &lt;br /&gt;         private void Ouvrir( object sender, System.EventArgs e) &lt;br /&gt;         { &lt;br /&gt;             MaBoite.Filter = "";                                                        &lt;br /&gt;// inisialisasi &lt;br /&gt;            xml.Text = ""; &lt;br /&gt;            requete.Text = ""; &lt;br /&gt;            MaBoite.Filter= "XML (*.xml)|*.xml| tous (*.*)|*.*"; &lt;br /&gt;// deklarasi tipe variabel &lt;br /&gt;            MaBoite.FilterIndex = 0; &lt;br /&gt;            MaBoite.RestoreDirectory = true; &lt;br /&gt;            MaBoite.ShowDialog();                 &lt;br /&gt;            if (MaBoite.FileName != "") &lt;br /&gt;                {     &lt;br /&gt;                    try &lt;br /&gt;                        { &lt;br /&gt;  unDS.ReadXml(MaBoite.FileName);                                       } &lt;br /&gt;                    catch (System.Exception ex)                                                             { &lt;br /&gt;   //jika gagal diterima / tidak valid&lt;br /&gt;                        MessageBox.Show (ex.Message);                         &lt;br /&gt;                        string MsgErreur = Convert.ToString(ex);                         &lt;br /&gt;                        int idebut = MsgErreur.IndexOf("(")+1; &lt;br /&gt;                        int ifin = MsgErreur.IndexOf(")"); &lt;br /&gt;                        int iTaille = ifin - idebut; &lt;br /&gt;                        string sChaine = MsgErreur.Substring(idebut,iTaille);                         &lt;br /&gt;                        string sChaineFerme = "&lt;/"+sChaine+"&gt;"; &lt;br /&gt;                        sChaine = "&lt;"+sChaine+"&gt;";                         &lt;br /&gt;                        StreamReader unSR = new StreamReader(MaBoite.FileName); &lt;br /&gt;                        string sTest = unSR.ReaDatTableoEnd(); &lt;br /&gt;                        unSR.Close(); &lt;br /&gt;                        int iEJdepart=sTest.IndexOf(sChaine); &lt;br /&gt;                        int iEJarrive=sTest.IndexOf(sChaineFerme); &lt;br /&gt;                        int iEJdepart2=sTest.LastIndexOf(sChaine); &lt;br /&gt;                        int iEJarrive2=sTest.LastIndexOf(sChaineFerme); &lt;br /&gt;                                 &lt;br /&gt;                    while(iEJdepart!=iEJdepart2) &lt;br /&gt;                    { &lt;br /&gt;                        string sDebut = sTest.Substring(0,iEJdepart2); &lt;br /&gt;                        string sFin = sTest.Substring(iEJarrive2+sChaineFerme.Length); &lt;br /&gt;                        sTest = sDebut+sFin; &lt;br /&gt;                        iEJdepart2 = sTest.LastIndexOf(sChaine); &lt;br /&gt;                        iEJarrive2 = sTest.LastIndexOf(sChaineFerme); &lt;br /&gt;                    } &lt;br /&gt;                        sTest = sTest.Replace("encoding="+'\u0022'+"UTF-16"+'\u0022',""); &lt;br /&gt;                         &lt;br /&gt;                        xml.Text = sTest; &lt;br /&gt;                        StreamWriter sw = new StreamWriter(MaBoite.FileName); &lt;br /&gt;                        sw.WriteLine(sTest); &lt;br /&gt;                        sw.Close(); &lt;br /&gt;                } &lt;br /&gt;StreamReader SR = new StreamReader(MaBoite.FileName);                              affichage.Text = unDS.GetXml();                                                               }     &lt;br /&gt;         } &lt;br /&gt;         private void Enregistrer( object sender, System.EventArgs e) &lt;br /&gt;         { &lt;br /&gt;             if(requete.Text =="") &lt;br /&gt;             { &lt;br /&gt;                 MessageBox.Show("Il n'y a rien à sauvegarder !!"); &lt;br /&gt;             } &lt;br /&gt;             else &lt;br /&gt;            { &lt;br /&gt;            MaSauvegarde.Filter= "texte (*.txt) |*.txt|tous (*.*) |*.*"; &lt;br /&gt;            MaSauvegarde.FilterIndex = 0; &lt;br /&gt;            MaSauvegarde.RestoreDirectory = true; &lt;br /&gt;            MaSauvegarde.ShowDialog(); &lt;br /&gt;                if(MaSauvegarde.FileName != "") &lt;br /&gt;                { &lt;br /&gt;try                                                                                     { &lt;br /&gt;                        sEcrire = new StreamWriter(MaSauvegarde.FileName, true); &lt;br /&gt;                        sEcrire.WriteLine(requete.Text); &lt;br /&gt;                        sEcrire.Close(); &lt;br /&gt;                    } &lt;br /&gt;                    catch(System.Exception ex) &lt;br /&gt;                    { &lt;br /&gt;     MessageBox.Show(ex.Message);                                                        } &lt;br /&gt;                } &lt;br /&gt;            }     &lt;br /&gt;         } &lt;br /&gt;         private void XML( object sender, System.EventArgs e) &lt;br /&gt;         { &lt;br /&gt;             if(MaBoite.FileName!= "") &lt;br /&gt;             { &lt;br /&gt;             string filePath =MaBoite.FileName; &lt;br /&gt;                 try &lt;br /&gt;                 { &lt;br /&gt;                 dsXml.ReadXml(filePath); &lt;br /&gt;                xml.DataSource = dsXml; &lt;br /&gt;                 } &lt;br /&gt;                 catch(System.Exception ex) &lt;br /&gt;                    { &lt;br /&gt;                        MessageBox.Show (ex.Message);                         &lt;br /&gt;                        string MsgErreur = Convert.ToString(ex);                         &lt;br /&gt;                        int idebut = MsgErreur.IndexOf("(")+1; &lt;br /&gt;                        int ifin = MsgErreur.IndexOf(")"); &lt;br /&gt;                        int iTaille = ifin - idebut; &lt;br /&gt;                        string sChaine = MsgErreur.Substring(idebut,iTaille);                         &lt;br /&gt;                        string sChaineFerme = "&lt;/"+sChaine+"&gt;"; &lt;br /&gt;                        sChaine = "&lt;"+sChaine+"&gt;";                         &lt;br /&gt;                        StreamReader unSR = new StreamReader(MaBoite.FileName); &lt;br /&gt;                        string sTest = unSR.ReaDatTableoEnd(); &lt;br /&gt;                        unSR.Close(); &lt;br /&gt;                        int iEJdepart=sTest.IndexOf(sChaine); &lt;br /&gt;                        int iEJarrive=sTest.IndexOf(sChaineFerme); &lt;br /&gt;                        int iEJdepart2=sTest.LastIndexOf(sChaine); &lt;br /&gt;                        int iEJarrive2=sTest.LastIndexOf(sChaineFerme); &lt;br /&gt;                                 &lt;br /&gt;                    while(iEJdepart!=iEJdepart2) &lt;br /&gt;                    { &lt;br /&gt;                        string sDebut = sTest.Substring(0,iEJdepart2); &lt;br /&gt;                        string sFin = sTest.Substring(iEJarrive2+sChaineFerme.Length); &lt;br /&gt;                        sTest = sDebut+sFin; &lt;br /&gt;                        iEJdepart2 = sTest.LastIndexOf(sChaine); &lt;br /&gt;                        iEJarrive2 = sTest.LastIndexOf(sChaineFerme); &lt;br /&gt;                    } &lt;br /&gt;                        sTest = sTest.Replace("encoding="+'\u0022'+"UTF-16"+'\u0022',""); &lt;br /&gt;                         &lt;br /&gt;                        xml.Text = sTest; &lt;br /&gt;                        StreamWriter sw = new StreamWriter(MaBoite.FileName); &lt;br /&gt;                        sw.WriteLine(sTest); &lt;br /&gt;                        sw.Close();                                                        } &lt;br /&gt;             } &lt;br /&gt;         } &lt;br /&gt;         private void SQL( object sender, System.EventArgs e) &lt;br /&gt;         { &lt;br /&gt;             requete.Text = "";                                                                        sCreate = ""; &lt;br /&gt;foreach(DataTable DATTABLE in unDS.Tables)                                                     { &lt;br /&gt;sCreate = " CREATE TABLE " + DATTABLE.TableName + " (";                                        foreach(DataColumn DC in DATTABLE.Columns)                                                     { &lt;br /&gt;int iLong = 0;                                                                                 iLong = DC.ColumnName.Length;                                                             &lt;br /&gt;if (DC.ColumnName.Substring(0,(iLong-3)) == "_ID")                                        { &lt;br /&gt;if(DC.ColumnName.Substring(0,(iLong-3)) == DATTABLE.TableName)                                  { &lt;br /&gt;DC.ColumnName += " " + DC.DataType + " PRIMARY KEY ";                          } &lt;br /&gt;                        else&lt;br /&gt;                        { &lt;br /&gt;                            DC.ColumnName += " "+DC.DataType+ " CONSTRAINT " + "FK_" + DC.ColumnName.Substring(0,(iLong-3)) + "_" + DATTABLE.TableName + " FOREIGN KEY REFERENCE " + DC.ColumnName.Substring(0,(iLong-3)) + " (" + DC.ColumnName; &lt;br /&gt;                         } &lt;br /&gt;                    } &lt;br /&gt;                    else                     &lt;br /&gt; { &lt;br /&gt;    DC.ColumnName += " " + DC.DataType;                                                }                     &lt;br /&gt;sCreate += DC.ColumnName + ",";                                                        } &lt;br /&gt;                int iTailleInsert = sCreate.Length; &lt;br /&gt;sCreate = sCreate.Substring(0,(iTailleInsert-1));                                        sCreate += ") \n";                                                         &lt;br /&gt;            } &lt;br /&gt;                                                                                                    foreach(DataTable DATTABLE in unDS.Tables)                                                     { &lt;br /&gt;for(int j=0;j &lt;= DATTABLE.Rows.Count;j++)                                                         { &lt;br /&gt;                        sCreate += " INSERT INTO " + DATTABLE.TableName + " VALUES ( "; &lt;br /&gt;     for(int i=0;i&lt;=DATTABLE.Columns.Count;i++)                                                         { &lt;br /&gt;                                                                                                                        string srow = Convert.ToString(unDS.Tables[DATTABLE.TableName].Rows[j][i]);                                srow = srow.Replace("'","''");                             &lt;br /&gt;sCreate += "'" + srow + "'" + ",";                                                 } &lt;br /&gt;                    int iTaille = sCreate.Length; &lt;br /&gt;sCreate = sCreate.Substring(0,(iTaille-1));                                             sCreate += ") \n"; &lt;br /&gt;                    } &lt;br /&gt;            } &lt;br /&gt;sCreate = sCreate.Replace("System.String","varchar(255)");                                sCreate = sCreate.Replace("System.Int32","int"); &lt;br /&gt;requete.Text = sCreate;                                                                 } &lt;br /&gt;         private void Aide(object sender, System.EventArgs e) &lt;br /&gt;         { &lt;br /&gt;             MessageBox.Show("Génerateur de code SQL"); &lt;br /&gt;         } &lt;br /&gt;         private void Requette(object sender, System.EventArgs e) &lt;br /&gt;         { &lt;br /&gt;             try{ &lt;br /&gt;            Grille.DataSource = null; &lt;br /&gt;            DatTableSource = null; &lt;br /&gt;            da = null; &lt;br /&gt;            if(requete.Text != "") &lt;br /&gt;            { &lt;br /&gt;                da = new SqlDataAdapter(requete.Text, MaSqlCnx); &lt;br /&gt;                MaSqlCnx.ConnectionString = "Integrated security = SSPI ; server = CLEM_PORTABLE ; database =" + ChoixBase.SelectedItem.ToString(); &lt;br /&gt;                //MaSqlCnx.ConnectionString = "server = votre_serveur; user id = sa ;password = pwd"; database =" + ChoixBase.SelectedItem.ToString();                  MaSqlCnx.Open(); &lt;br /&gt;//membuat koneksi                                                                                        MySqlCmd.Connection = MaSqlCnx; &lt;br /&gt;da.Fill(ds,"toto");                                                                                     DatTableSource = ds.Tables[0];                                                                  &lt;br /&gt;Grille.DataSource = DatTableSource;                                                                         } &lt;br /&gt;                } &lt;br /&gt;                catch(System.Exception ex) &lt;br /&gt;                { &lt;br /&gt;                    MessageBox.Show(ex.Message); &lt;br /&gt;                } &lt;br /&gt;                finally &lt;br /&gt;                { &lt;br /&gt;                    MaSqlCnx.Close();                                                                                     } &lt;br /&gt;         } &lt;br /&gt;         private void MainFormLoad(object sender, System.EventArgs e) &lt;br /&gt;         { &lt;br /&gt;             //MaSqlCnx.ConnectionString = "server = votre_serveur; user id = sa ;password = pwd"; // koneksi ke database &lt;br /&gt;MaSqlCnx.ConnectionString = "Integrated security = SSPI ; server = CLEM_PORTABLE"; &lt;br /&gt;try                                                                                     //untuk mencoba apakah koneksi berhasil dilakukan&lt;br /&gt;                { &lt;br /&gt;MaSqlCnx.Open();                                                                       MySqlCmd.Connection = MaSqlCnx; &lt;br /&gt;                  MySqlCmd.CommanDatTableext = "SELECT NAME FROM SYSDATABASES ORDER BY name ASC" ; &lt;br /&gt;                  SqlDataReader monSqlDR = MySqlCmd.ExecuteReader(); &lt;br /&gt;                    while(monSqlDR.Read()) &lt;br /&gt;                    {                             &lt;br /&gt;ChoixBase.Items.Add(monSqlDR.GetValue(0).ToString()) ;                                                 } &lt;br /&gt;                    MaSqlCnx.Close();     &lt;br /&gt;                } &lt;br /&gt;                    catch(System.Exception ex) &lt;br /&gt;                    { &lt;br /&gt;                        MessageBox.Show(ex.Message); &lt;br /&gt;                    } &lt;br /&gt;         } &lt;br /&gt;         &lt;br /&gt;    } &lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111844823643040810?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111844823643040810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111844823643040810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111844823643040810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111844823643040810'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/mengubah-xml-ke-sql.html' title='Mengubah  XML ke SQL'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111844711079384288</id><published>2005-06-09T13:39:00.000-07:00</published><updated>2005-06-10T16:57:04.223-07:00</updated><title type='text'>Kirim SMS Melalui Web Service</title><content type='html'>Program ini memungkinkan pengiriman SMS antar negara melalui penggunaan web service&lt;br /&gt;Contoh tampilan yang ada :&lt;br /&gt;&lt;br /&gt;(radiio buton) SMS to India   sms to world&lt;br /&gt;Email ID :&lt;br /&gt;Country Code :&lt;br /&gt;Mobile/Cellnumber :&lt;br /&gt;Message:&lt;br /&gt;&lt;br /&gt;button SEND&lt;br /&gt;&lt;br /&gt;Listing :&lt;br /&gt;Listing Program :&lt;br /&gt;&lt;br /&gt;private void Send_Click(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;        SmsTest.net.webservicex.www.SendSMS smsIndia= &lt;br /&gt;              new SmsTest.net.webservicex.www.SendSMS();&lt;br /&gt;        SmsTest.com.webservicex.www.SendSMSWorld smsWorld =  &lt;br /&gt;         new SmsTest.com.webservicex.www.SendSMSWorld();&lt;br /&gt;        if(rdoType.SelectedValue == "1")&lt;br /&gt;            smsIndia.SendSMSToIndia(txtMobileNo.Text.Trim(), &lt;br /&gt;                    txtEmailId.Text.Trim(), txtMessage.Text);&lt;br /&gt;        else &lt;br /&gt;            smsWorld.sendSMS(txtEmailId.Text.Trim(), &lt;br /&gt;                    txtCountryCode.Text.Trim(), &lt;br /&gt;                    txtMobileNo.Text.Trim(), txtMessage.Text);&lt;br /&gt;        lblMessage.Visible = true;&lt;br /&gt;        lblMessage.Text="Message Send Succesfully";&lt;br /&gt;    }&lt;br /&gt;    catch(Exception ex)&lt;br /&gt;    {&lt;br /&gt;        lblMessage.Visible = true;&lt;br /&gt;        lblMessage.Text="Error in Sending message"+ex.ToString();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private void rdoType_SelectedIndexChanged(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;    if(rdoType.SelectedValue =="1")&lt;br /&gt;        txtCountryCode.Enabled = false;&lt;br /&gt;    else&lt;br /&gt;        txtCountryCode.Enabled = false;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111844711079384288?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111844711079384288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111844711079384288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111844711079384288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111844711079384288'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/kirim-sms-melalui-web-service.html' title='Kirim SMS Melalui Web Service'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111834549023438396</id><published>2005-06-09T12:25:00.001-07:00</published><updated>2005-06-09T16:42:00.823-07:00</updated><title type='text'>Menangani Posisi Scroll pada Postback</title><content type='html'>Browser modern menyediakan properti untuk mendapatkan posisi dari scroll horisontal dan vertikal, browser modern juga menyediakan fungsi yang dapat sercara automatis menset posisi scroll. Properti dan fungsi ini dapat diakses melalui program javascript pada client.&lt;br /&gt;&lt;br /&gt;Untuk dapat menangani atau mempertahankan posisi scroll pada saat post back, maka kita perlu melakukan hal-hal sebagai berikut:&lt;br /&gt;1. Ketika posisi scroll berubah, maka kita perlu merekam posisi scroll pada input field hidden "&amp;lt; input &amp;gt;"&lt;br /&gt;2. Ketika Web Form di post back, maka field-field "&amp;lt;input&amp;gt;" hidden ini akan dikirim kembali ke web server beserta field-field form yang lain. Pada program server kita, kita perlu mengirim kode kepada klien untuk menentukan posisi scroll.&lt;br /&gt;&lt;br /&gt;Melalui mekanisme seperti yang telah dijelaskan, maka kita dapat mempertahankan posisi scroll pada saat post back. Untuk dapat melakukan hal ini, kita perlu memperhatikan beberapa hal :&lt;br /&gt;1. Bagaimana kita dapat menentukan posisi scroll browser melalui program pada client.&lt;br /&gt;2. Bagaimana program pada server kita dapat mengambil nilai scroll lama dan menghasilkan kode yang dapat mereset posisi scroll pada client.&lt;br /&gt;&lt;br /&gt;Berikut ini adalah program javascript yang digunakan untuk menangani posisi scroll pada klien&lt;br /&gt;&lt;br /&gt;&amp;lt;script language = "javascript"&amp;gt;&lt;br /&gt;&amp;lt;!--&lt;br /&gt;  function sstchur_SmartScroller_GetCoords()&lt;br /&gt;  {&lt;br /&gt;     var scrollX, scrollY;&lt;br /&gt;   &lt;br /&gt;     if (document.all)&lt;br /&gt;     {&lt;br /&gt;        if (!document.documentElement.scrollLeft)&lt;br /&gt;           scrollX = document.body.scrollLeft;&lt;br /&gt;        else&lt;br /&gt;           scrollX = document.documentElement.scrollLeft;&lt;br /&gt;            &lt;br /&gt;        if (!document.documentElement.scrollTop)&lt;br /&gt;           scrollY = document.body.scrollTop;&lt;br /&gt;        else&lt;br /&gt;           scrollY = document.documentElement.scrollTop;&lt;br /&gt;     } &lt;br /&gt;     else&lt;br /&gt;     {&lt;br /&gt;        scrollX = window.pageXOffset;&lt;br /&gt;        scrollY = window.pageYOffset;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     document.forms[formID].xCoordHolder.value = scrollX;&lt;br /&gt;     document.forms[formID].yCoordHolder.value = scrollY;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  function sstchur_SmartScroller_Scroll()&lt;br /&gt;  {&lt;br /&gt;     var x = document.forms[formID].xCoordHolder.value;&lt;br /&gt;     var y = document.formsformID].yCoordHolder.value;&lt;br /&gt;     window.scrollTo(x, y);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  window.onload = sstchur_SmartScroller_Scroll;&lt;br /&gt;  window.onscroll = sstchur_SmartScroller_GetCoords;&lt;br /&gt;  window.onkeypress = sstchur_SmartScroller_GetCoords;&lt;br /&gt;  window.onclick = sstchur_SmartScroller_GetCoords;&lt;br /&gt;// --&amp;gt;&lt;br /&gt;&amp;lt;script&amp;gt;&lt;br /&gt;&lt;br /&gt;Fungsi sstchur_SmartScroller_GetCoords() digunakan untuk mendapatkan posisi scroll saat ini (horisontal maupun&lt;br /&gt;vertikal). Jika nilai dari scroll ini telah kita dapatkan, maka nilai dari posisi ini akan kita simpan melalui&lt;br /&gt;tag hidden &amp;lt;input&amp;gt;&lt;br /&gt;&lt;br /&gt;Fungsi sstchur_SmartScroller_Scroll() digunakan untuk mereset nilai posisi scroll pada saat page diload oleh&lt;br /&gt;klien&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111834549023438396?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111834549023438396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111834549023438396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111834549023438396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111834549023438396'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/menangani-posisi-scroll-pada-postback.html' title='Menangani Posisi Scroll pada Postback'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111834553283395909</id><published>2005-06-09T12:25:00.000-07:00</published><updated>2005-06-09T12:32:12.836-07:00</updated><title type='text'>Enumeration</title><content type='html'>Enumeration adalah tipe spesial pada .NET yang dapat digunakan untuk menangani beberapa konstan (constant)&lt;br /&gt;yang telah ditentukan sebelumnya.&lt;br /&gt;&lt;br /&gt;Berikut ini adalah syntax yang dapat digunakan untuk menghasilkan enumeration&lt;br /&gt;&lt;br /&gt;' -- VB.NET&lt;br /&gt;Public Enum EnumName [As Type]&lt;br /&gt;   Carriage-return delimited list of Named Constants&lt;br /&gt;End Enum&lt;br /&gt;&lt;br /&gt;// -- C#&lt;br /&gt;public enum EnumName [: Type]&lt;br /&gt;{&lt;br /&gt;   Comma-delimited list of Named Constants&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sedangkan contoh penggunaan syntax diatas adalah sebagai berikut&lt;br /&gt;&lt;br /&gt;' -- VB.NET&lt;br /&gt;Public Enum MenuItemType&lt;br /&gt;   Header&lt;br /&gt;   Item&lt;br /&gt;   AlternatingItem&lt;br /&gt;End Enum&lt;br /&gt;&lt;br /&gt;// -- C#&lt;br /&gt;public enum MenuItemType&lt;br /&gt;{&lt;br /&gt;   Header,&lt;br /&gt;   Item,&lt;br /&gt;   AlternatingItem&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111834553283395909?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111834553283395909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111834553283395909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111834553283395909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111834553283395909'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/enumeration.html' title='Enumeration'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111834542445879476</id><published>2005-06-09T12:24:00.000-07:00</published><updated>2005-06-09T12:30:24.480-07:00</updated><title type='text'>Kumpulan Combobox yang Terhubung Secara Dinamis</title><content type='html'>Dalam melakukan proses pada web site, seringkali kita perlu menggunakan elemen yang terpilih padacombobox pertama untuk mengisi nilai dari combobox kedua dari database, kemudian menggunakan elemen yang terpilih pada combobox kedua untuk mengisi combobox ketiga dan seterusnya. Pada saat yang bersamaan, kita mungkin perlu untuk merefresh halaman tanpa mensubmit.&lt;br /&gt;&lt;br /&gt;Saya mencoba untuk memecahkan permasalahan ini dengan menggunakan Custom control&lt;br /&gt;pada asp.Net.&lt;br /&gt;&lt;br /&gt;Cara Kerja:&lt;br /&gt;&lt;br /&gt;Source dari control server terletak pada loccontrol.cs. Kedua fungsi untuk mengisi combobox dengan menggunakan&lt;br /&gt;data provider sql atau oleDB terkandung pada file ini. Adalah perlu untuk menambahkan atribut sqlserver=true pada&lt;br /&gt;tag kar, jika tidak maka control akan menggunkan ole DB.&lt;br /&gt;&lt;br /&gt;Aliran kerja dari program adalah sebagai berikut:&lt;br /&gt;1. Custom control akan memulai kerjanya dengan membaca source dari loccontrol.cs dan menghasilkan code HTML yang&lt;br /&gt;akan dikiim pada client dan akan mengisi combobox pertama.&lt;br /&gt;2. User memilih item pada combo yang telah diisi pada client, client akan menjalankan onchange script untuk&lt;br /&gt;kemudian mengisi combo berikutnya pada hiddenfrm.aspx dan mengirimkannya&lt;br /&gt;3. Program server pada hiddenfrm.aspx.cs  akan mengisi combo berikutnya&lt;br /&gt;4. Program client pada hiddenfrmonload() akan mengisi combo pada container page dimana combobox sudah dipilih.&lt;br /&gt;   User akan melanjutkan memilih pada combobox berikutnya dan proses akan kembali pada langkah 2.&lt;br /&gt;&lt;br /&gt;potongan program dari LocControl :&lt;br /&gt;public class LocControl: System.Web.UI.Control&lt;br /&gt;   {&lt;br /&gt;      ...&lt;br /&gt;      ...&lt;br /&gt;&lt;br /&gt;public string SqlServer    // if this attribute value = true then&lt;br /&gt;                           // custom will use SQL Data Provider;&lt;br /&gt;                           // otherwise, OLE DB Provider&lt;br /&gt;      {&lt;br /&gt;         get{ return bSqlServer;}&lt;br /&gt;         set{ bSqlServer= value;}&lt;br /&gt;      }&lt;br /&gt;      public string ComboData&lt;br /&gt;      // String separated by ";" for each combobox.Between ";" write&lt;br /&gt;      // data needed for fill OPTION  elements of SELECT tag&lt;br /&gt;      // separated by space ' '.&lt;br /&gt;      //&lt;br /&gt;      // For First element: will be three parameters&lt;br /&gt;      // First parameter: Table name from assigned in ConString&lt;br /&gt;      // data source&lt;br /&gt;      // Second paramente: Field name of Table that will be text&lt;br /&gt;      // value of combobox&lt;br /&gt;      // Third parameter: Field name of Table that wi be the value&lt;br /&gt;      // for combobox item and will use for seek in following&lt;br /&gt;      // combobox&lt;br /&gt;      // For Follwing comboboxes will be four parameters:&lt;br /&gt;      // First three parameters have same meaning that was for&lt;br /&gt;      // First combobox.&lt;br /&gt;      // Fourth parameter point out the key field in the Table where&lt;br /&gt;      // you select data for this combobox.&lt;br /&gt;&lt;br /&gt;      {&lt;br /&gt;         get { return CDates;}&lt;br /&gt;         set {CDates = value;}&lt;br /&gt;      }&lt;br /&gt;      public string ConString    // set connection string for&lt;br /&gt;                                 // the appropriate provider&lt;br /&gt;      {&lt;br /&gt;         get{ return scon;}&lt;br /&gt;         set{ scon = value;}&lt;br /&gt;      }&lt;br /&gt;      public string Captions     //comboboxes captions&lt;br /&gt;      {&lt;br /&gt;         get{ return  sCaptions;}&lt;br /&gt;         set{ sCaptions = value;}&lt;br /&gt;      }&lt;br /&gt;   protected override void Render(HtmlTextWriter writer)&lt;br /&gt;   // fill custom control HTML code on page&lt;br /&gt;   //&lt;br /&gt;      {&lt;br /&gt;         string htextname = "";&lt;br /&gt;         //check ComboData attribute for empty&lt;br /&gt;         if(CDates == null)&lt;br /&gt;            return;&lt;br /&gt;&lt;br /&gt;         ArrayComboDates = CDates.Split(';');  // separate ComboData&lt;br /&gt;                                               // attribute's data&lt;br /&gt;         int comboquantity = ArrayComboDates.Length;&lt;br /&gt;&lt;br /&gt;// hidden textbox to save ComboData attribute of control&lt;br /&gt;         writer.WriteBeginTag("input");&lt;br /&gt;&lt;br /&gt;         ...&lt;br /&gt;&lt;br /&gt;// hidden textbox to save connection string&lt;br /&gt;         writer.WriteBeginTag("input");&lt;br /&gt;         writer.WriteAttribute("type","hidden");&lt;br /&gt;         string hconnection = UniqueID+"_sconn";&lt;br /&gt;         writer.WriteAttribute("name",hconnection);&lt;br /&gt;         if(bSqlServer == "true")&lt;br /&gt;            writer.WriteAttribute("value", scon&lt;br /&gt;               + "??" + "true");&lt;br /&gt;         else&lt;br /&gt;            writer.WriteAttribute("value",scon );&lt;br /&gt;         writer.Write(HtmlTextWriter.TagRightChar);&lt;br /&gt;&lt;br /&gt;         // begin &amp;lt;table tag to arrange control's elements&lt;br /&gt;         writer.WriteBeginTag("table");&lt;br /&gt;            ...&lt;br /&gt;&lt;br /&gt;         // print captions for each combobox&lt;br /&gt;         writer.WriteFullBeginTag("tr");&lt;br /&gt;         writer.WriteLine();&lt;br /&gt;         if(sCaptions !=null)&lt;br /&gt;          capsarray  = sCaptions.Split(';');&lt;br /&gt;            ...&lt;br /&gt;&lt;br /&gt;         // print SELECT tags for each combobox&lt;br /&gt;         writer.WriteFullBeginTag("tr");&lt;br /&gt;&lt;br /&gt;         string[]  ctrlname = new string[comboquantity];&lt;br /&gt;         for(int i=0; i &amp;lt; comboquantity; i++)&lt;br /&gt;         {&lt;br /&gt;            //begin td&lt;br /&gt;            writer.WriteBeginTag("td");&lt;br /&gt;            writer.WriteAttribute("align","center");&lt;br /&gt;            writer.Write(HtmlTextWriter.TagRightChar);&lt;br /&gt;            writer.WriteLine();&lt;br /&gt;            writer.WriteBeginTag("select");&lt;br /&gt;&lt;br /&gt;            ctrlname[i] = string.Format("{0}_{1}",this.UniqueID,i+1);&lt;br /&gt;&lt;br /&gt;            writer.WriteAttribute("name", ctrlname[i]);&lt;br /&gt;            if(i != (comboquantity - 1))&lt;br /&gt;            writer.Write("OnChange=\"OnChange(this.options&lt;br /&gt;                         [this.selectedIndex].value,&lt;br /&gt;                         this.name,this.form.name," +&lt;br /&gt;                         comboquantity.ToString() + "," + htextname&lt;br /&gt;                         + "," + hconnection + ")\"");&lt;br /&gt;            if(ID!=null)&lt;br /&gt;               writer.WriteAttribute("id",this.ClientID);&lt;br /&gt;            writer.Write(HtmlTextWriter.TagRightChar);&lt;br /&gt;            // fill up first combobox&lt;br /&gt;            if(i == 0)&lt;br /&gt;               if(bSqlServer == "true")&lt;br /&gt;                  FillClCombo(i,writer);      // fill up by SQL&lt;br /&gt;                                              // provider&lt;br /&gt;               else&lt;br /&gt;                  FillClCombo_uni(i,writer);  // fill up by OLE DB&lt;br /&gt;                                              // provider&lt;br /&gt;            writer.Write("&amp;lt;/select&amp;gt;");&lt;br /&gt;            writer.WriteEndTag("td");&lt;br /&gt;            writer.WriteLine();&lt;br /&gt;&lt;br /&gt;         }&lt;br /&gt;         writer.WriteEndTag("tr");&lt;br /&gt;         writer.Write("&amp;lt;/Table&amp;gt;");&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;ketika user memilih item pada combo, maka data yang bersesuaian akan ditransfer dari hidden frame&lt;br /&gt;(hiddenfrm.aspx) oleh function onchange() pada file subscript.js berikut&lt;br /&gt;&lt;br /&gt;void function OnChange(combovalue,name,frmname,comboquantity,htext,&lt;br /&gt;                       hconnection)&lt;br /&gt;{&lt;br /&gt;   // get general base of combobox names using active combobox name&lt;br /&gt;   var baseofname = name.substr(0,name.lastIndexOf("_") + 1);&lt;br /&gt;   var number = name.substr(name.lastIndexOf("_")+1,name.length);&lt;br /&gt;   var intnumber = parseInt(number) + 1;&lt;br /&gt;   var nextcomboname;&lt;br /&gt;//clean up subsequent comboboxes&lt;br /&gt;   for( i=intnumber; i &amp;lt; comboquantity; i++)&lt;br /&gt;   {&lt;br /&gt;      var n = i+1;&lt;br /&gt;      nextcomboname = baseofname + n&lt;br /&gt;      eval("document." + frmname + "." + nextcomboname +&lt;br /&gt;           ".length = 0;");&lt;br /&gt;   }&lt;br /&gt;   //passing data from active page to Hidden form(HiddenFrm.aspx)&lt;br /&gt;   eval("var cfrm = document." + frmname);&lt;br /&gt;   eval("parent.bottomFrame.document.HiddenFrm.combotext.value=" +&lt;br /&gt;        combovalue);&lt;br /&gt;   parent.bottomFrame.document.HiddenFrm.comboname.value=frmname +&lt;br /&gt;          "." + name;&lt;br /&gt;   parent.bottomFrame.document.HiddenFrm.TextCDatas.value =&lt;br /&gt;          htext.value;&lt;br /&gt;   parent.bottomFrame.document.HiddenFrm.TextConnection.value =&lt;br /&gt;          hconnection.value;&lt;br /&gt;   parent.bottomFrame.document.HiddenFrm.submit();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;kembali ke bagian server, bagian hiddenfrm.aspx.cs akan berisi&lt;br /&gt;&lt;br /&gt;namespace HiddenFrm_ns&lt;br /&gt;{&lt;br /&gt;   public class HiddenFrm : System.Web.UI.Page&lt;br /&gt;   {&lt;br /&gt;      ...&lt;br /&gt;      ...&lt;br /&gt;&lt;br /&gt;      private void Page_Load(object sender, System.EventArgs e)&lt;br /&gt;      {&lt;br /&gt;         string apppath =Context.Request.ApplicationPath;&lt;br /&gt;         //register script block&lt;br /&gt;         string scrsrc = "&amp;lt;script src=" + apppath +&lt;br /&gt;                          "/KarControl/script.js&amp;gt;&amp;lt;/script&amp;gt;";&lt;br /&gt;         if(!IsClientScriptBlockRegistered("cSrcript"))&lt;br /&gt;            RegisterClientScriptBlock("cScript", scrsrc);&lt;br /&gt;            Response.Write("&amp;lt;br&amp;gt;");&lt;br /&gt;         // Get filled from active page data and fill up the&lt;br /&gt;         // intermediate combo&lt;br /&gt;         NameValueCollection fnv = Request.Form;&lt;br /&gt;         if(fnv.Count !=0)&lt;br /&gt;         {&lt;br /&gt;            string[] condata = (Request.Form.GetValues(&lt;br /&gt;                                "TextConnection")[0]).Split('?');&lt;br /&gt;            con = condata[0];&lt;br /&gt;            string combotext = fnv.GetValues("combotext")[0];&lt;br /&gt;               //key value for filter data from next table in&lt;br /&gt;               //database&lt;br /&gt;            string comboname = (fnv.GetValues("comboname"))[0];&lt;br /&gt;               //name of combo that initiate submit in active page&lt;br /&gt;               //get name of next combo&lt;br /&gt;            char[] d = {'_'};&lt;br /&gt;            int ind = comboname.LastIndexOfAny(d);&lt;br /&gt;            string cnum = comboname.Substring(ind+1,&lt;br /&gt;                          comboname.Length -(ind + 1));&lt;br /&gt;            int  icombonum =(int)Convert.ChangeType(cnum,&lt;br /&gt;                                                    ind.GetType());&lt;br /&gt;            icombonum = icombonum + 1;&lt;br /&gt;            string ctrlname = comboname.Substring(0,ind+1);&lt;br /&gt;            string nextcombo = ctrlname + icombonum.ToString();&lt;br /&gt;            // if after connection string is ; and "true" word this&lt;br /&gt;            // is SqlServer mode&lt;br /&gt;            if(condata.Length == 3 &amp;&amp;amp; condata[1] == "" &amp;&amp;amp;&lt;br /&gt;                                      condata[2]=="true")&lt;br /&gt;               FillComboSql(combotext,icombonum);    // fill combo (SQL Provider)&lt;br /&gt;            else&lt;br /&gt;               FillComboUni(combotext,icombonum);    // fill combo (OleDB)&lt;br /&gt;               this.comboname.Text  = nextcombo;&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;      ...&lt;br /&gt;      ...&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Nilai function HiddenFrmOnLoad merupakan data dari page pada file subscript.js&lt;br /&gt;&lt;br /&gt;//send filled up combobox.s data from HiddenFrm.aspx to your&lt;br /&gt;//active page&lt;br /&gt;void function HiddenFrmOnLoad()&lt;br /&gt;{&lt;br /&gt;   var op;&lt;br /&gt;   var text;&lt;br /&gt;   if(document.HiddenFrm.comboname.value != "")&lt;br /&gt;   {&lt;br /&gt;      text = "var mcombo = parent.mainFrame.document." +&lt;br /&gt;             HiddenFrm.comboname.value;&lt;br /&gt;      eval(text);&lt;br /&gt;      mcombo.options[0]= new Option("","");&lt;br /&gt;      for(i=0; i &amp;lt; document.HiddenFrm.hcombo.length; i++)&lt;br /&gt;      {&lt;br /&gt;&lt;br /&gt;         op = document.HiddenFrm.hcombo.options[i];&lt;br /&gt;         mcombo.options[i+1] = new Option(op.text,op.value);&lt;br /&gt;      }&lt;br /&gt;      mcombo.length = document.HiddenFrm.hcombo.length + 1;&lt;br /&gt;   }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111834542445879476?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111834542445879476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111834542445879476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111834542445879476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111834542445879476'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/kumpulan-combobox-yang-terhubung.html' title='Kumpulan Combobox yang Terhubung Secara Dinamis'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111826764190968927</id><published>2005-06-08T14:44:00.000-07:00</published><updated>2005-06-08T14:54:01.916-07:00</updated><title type='text'>Membuat Template Control</title><content type='html'>Contoh di bawah ini membuat suatu template control yang menampilkan waktu saat ini pada server dan dapat ditambahkan teks dinamis&lt;br /&gt;&lt;br /&gt;Dengan control ini dapat menambahkan template dan memilih bagaiman data akan ditampilkan, control ini terdiri dari dua class : DateTimeControl adalah control yang ditambahkan ke page, sedangkan DateTimeContanter adalah control yang menyimpan template data. Jika tidak menginginkan property yang dapat diuba-ubah, maka tidak memerlukan container.&lt;br /&gt;&lt;br /&gt;Class utama &lt;span style="font-weight: bold;"&gt;DateTimeControl&lt;/span&gt;:&lt;br /&gt;Imports System&lt;br /&gt;Imports System.Web.UI&lt;br /&gt;Imports System.Web.UI.WebControls&lt;br /&gt;Imports System.ComponentModel&lt;br /&gt;&lt;br /&gt;Namespace AspNetCookbook&lt;br /&gt; &amp;lt;ToolboxData("&amp;lt;{0}:DateTimeControl _&lt;br /&gt;     runat=server&amp;gt;&amp;lt;/{0}:DateTimeControl&amp;gt;"), _&lt;br /&gt;  ParseChildren(True)&amp;gt; _&lt;br /&gt; Public Class DateTimeControl&lt;br /&gt;  Inherits Control&lt;br /&gt;  Implements INamingContainer&lt;br /&gt;  Private _template As ITemplate&lt;br /&gt;  Private _container As DateTimeContainer&lt;br /&gt;  Private _text As String&lt;br /&gt;&lt;br /&gt;  &amp;lt;TemplateContainer(GetType(DateTimeContainer))&amp;gt; _&lt;br /&gt;  Public Overridable Property Template() As ITemplate&lt;br /&gt;   Get&lt;br /&gt;    Return _template&lt;br /&gt;   End Get&lt;br /&gt;   Set(ByVal Value As ITemplate)&lt;br /&gt;    _template = Value&lt;br /&gt;   End Set&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public Overridable ReadOnly Property Container() As DateTimeContainer&lt;br /&gt;   Get&lt;br /&gt;    Return _container&lt;br /&gt;   End Get&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public Overridable Property Text() As String&lt;br /&gt;   Get&lt;br /&gt;    Return _text&lt;br /&gt;   End Get&lt;br /&gt;   Set(ByVal Value As String)&lt;br /&gt;    _text = Value&lt;br /&gt;   End Set&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public Overridable ReadOnly Property DateTime() As String&lt;br /&gt;   Get&lt;br /&gt;    Return System.DateTime.Now.ToShortTimeString()&lt;br /&gt;   End Get&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Protected Overrides Sub OnDataBinding(ByVal e As EventArgs)&lt;br /&gt;   EnsureChildControls()&lt;br /&gt;   MyBase.OnDataBinding(e)&lt;br /&gt;  End Sub   'OnDataBinding&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Protected Overrides Sub CreateChildControls()&lt;br /&gt;   If Not (Template Is Nothing) Then&lt;br /&gt;    _container = New DateTimeContainer(Text, DateTime)&lt;br /&gt;    Template.InstantiateIn(Container)&lt;br /&gt;    Controls.Add(Container)&lt;br /&gt;   Else&lt;br /&gt;    Controls.Add(New LiteralControl("" + [Text] + " " + DateTime))&lt;br /&gt;   End If&lt;br /&gt;  End Sub&lt;br /&gt; End Class&lt;br /&gt;&lt;br /&gt;Berikutnya ada container control &lt;span style="font-weight: bold;"&gt;DateTimeContainer&lt;/span&gt;&lt;br /&gt;&amp;lt;%# Container.Text %&amp;gt;&lt;br /&gt;Public Class DateTimeContainer&lt;br /&gt;  Inherits Control&lt;br /&gt;  Implements INamingContainer&lt;br /&gt;  Private _text As String&lt;br /&gt;  Private _dateTime As String&lt;br /&gt;&lt;br /&gt;  Public Sub New(ByVal text As String, ByVal dateTime As String)&lt;br /&gt;   Me._text = text&lt;br /&gt;   Me._dateTime = dateTime&lt;br /&gt;  End Sub   'New&lt;br /&gt;&lt;br /&gt;  Public ReadOnly Property Text() As String&lt;br /&gt;   Get&lt;br /&gt;    Return _text&lt;br /&gt;   End Get&lt;br /&gt;  End Property&lt;br /&gt;&lt;br /&gt;  Public ReadOnly Property DateTime() As String&lt;br /&gt;   Get&lt;br /&gt;    Return _dateTime&lt;br /&gt;   End Get&lt;br /&gt;  End Property&lt;br /&gt; End Class&lt;br /&gt;End Namespace&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111826764190968927?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111826764190968927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111826764190968927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111826764190968927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111826764190968927'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/membuat-template-control.html' title='Membuat Template Control'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111826679546468893</id><published>2005-06-08T14:32:00.000-07:00</published><updated>2005-06-08T14:39:55.466-07:00</updated><title type='text'>Contoh Extend Web Control yang sudah ada - Pada Label</title><content type='html'>Contoh ini adalah pengembangan fungsi dari Label control menjadi Label Rainbow&lt;br /&gt;&lt;br /&gt;Imports System&lt;br /&gt;Imports System.Web.UI&lt;br /&gt;Imports System.Web.UI.WebControls&lt;br /&gt;Imports System.ComponentModel&lt;br /&gt;&lt;br /&gt;Public Class RainbowLabel&lt;br /&gt; Inherits System.Web.UI.WebControls.Label&lt;br /&gt;&lt;br /&gt; Public Property EnableRainbowMode() As Boolean&lt;br /&gt;  Get&lt;br /&gt;   If ViewState("EnableRainbowMode") Is Nothing Then&lt;br /&gt;    Return True&lt;br /&gt;   Else&lt;br /&gt;    Return Boolean.Parse(CStr(ViewState("EnableRainbowMode")))&lt;br /&gt;   End If&lt;br /&gt;  End Get&lt;br /&gt;  Set(ByVal Value As Boolean)&lt;br /&gt;   ViewState("EnableRainbowMode") = Value&lt;br /&gt;  End Set&lt;br /&gt; End Property&lt;br /&gt;&lt;br /&gt; Protected Overrides Sub Render(ByVal output As HtmlTextWriter)&lt;br /&gt;  If EnableRainbowMode Then&lt;br /&gt;   output.Write(ColorizeString([Text]))&lt;br /&gt;  Else&lt;br /&gt;   output.Write([Text])&lt;br /&gt;  End If&lt;br /&gt; End Sub 'Render&lt;br /&gt;&lt;br /&gt; Private Function ColorizeString(ByVal input As String) As String&lt;br /&gt;  Dim output As New System.Text.StringBuilder(input.Length)&lt;br /&gt;  Dim rand As Random = New Random(DateTime.Now.Millisecond)&lt;br /&gt;&lt;br /&gt;  Dim i As Integer&lt;br /&gt;  For i = 0 To input.Length - 1&lt;br /&gt;   Dim red As Integer = rand.Next(0, 255)&lt;br /&gt;   Dim green As Integer = rand.Next(0, 255)&lt;br /&gt;   Dim blue As Integer = rand.Next(0, 255)&lt;br /&gt;&lt;br /&gt;   output.Append("&lt;span #")&lt;br /&gt;   output.Append(Convert.ToString(red, 16))&lt;br /&gt;   output.Append(Convert.ToString(green, 16))&lt;br /&gt;   output.Append(Convert.ToString(blue, 16))&lt;br /&gt;   output.Append("""&gt;")&lt;br /&gt;   output.Append(input.Substring(i, 1))&lt;br /&gt;   output.Append("&lt;/span&gt;")&lt;br /&gt;  Next i&lt;br /&gt;&lt;br /&gt;  Return output.ToString()&lt;br /&gt; End Function&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;Cara menggunakannya adalah:&lt;br /&gt;&amp;lt;%@ Page language="VB" %&amp;gt;&lt;br /&gt;&amp;lt;%@ Register TagPrefix="AspNetCookbook" Namespace="AspNetCookbook"&lt;br /&gt;Assembly="AspNetCookbook" %&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" &amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;03 Custom Controls - 02 Extending Existing Web Controls&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;form id="Form1" method="post" runat="server"&amp;gt;&lt;br /&gt; &amp;lt;AspNetCookbook:RainbowLabel&lt;br /&gt;      text="This is a rainbow colored test string"&lt;br /&gt;  runat="server"/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt; &amp;lt;AspNetCookbook:RainbowLabel EnableRainbowMode="false"&lt;br /&gt;  text="This is a test string" runat="server"/&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;Control ini memberikan warna pelangi pada Label, warna untuk setiap karakter dirandom. Meskipun control ini tidak terlalu berguna, tetapi ini mendemonstrasikan bahwa kita dapat mengembangkan fungsi control yang sudah ada.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111826679546468893?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111826679546468893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111826679546468893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111826679546468893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111826679546468893'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/contoh-extend-web-control-yang-sudah.html' title='Contoh Extend Web Control yang sudah ada - Pada Label'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111826635309373002</id><published>2005-06-08T14:26:00.000-07:00</published><updated>2005-06-08T14:32:33.103-07:00</updated><title type='text'>WebClient dan RegEx, dua class yang dapat digunakan untuk Screen Scraping (ambil sales rank Amazon)</title><content type='html'>&lt;p class="MsoNormal"&gt;Screen Scraping dapat dilakukan dengan mengambil bagian spesifik dari sebuah halaman(bukan seluruh halaman) dengan dua class yang dapat digunakan bersama-sama yaitu class WebClient dan RegEx.&lt;br /&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;br /&gt;Sebagai contoh adalah membuat service yang mengambil data sales rank (tingkat penjualan) dari web site Amazon.com. Nomor ISBN akan dipassingkan dan kemudian akan diperoleh tingkat penjualan untuk buku dengan ISBN yang dipassingkan.&lt;br /&gt;&lt;br /&gt;Tahap pertama adalah membuat struktur dasar untuk Web Service dan methodnya&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SalesRank.asmx&lt;/span&gt;&lt;br /&gt;&amp;lt;%@ WebService Language="VB" Class="SalesRank" %&amp;gt;&lt;br /&gt;&lt;br /&gt;Imports System.Net&lt;br /&gt;Imports System.Text&lt;br /&gt;Imports System.Text.RegularExpressions&lt;br /&gt;Imports System.Web.Services&lt;br /&gt;&lt;br /&gt;&amp;lt;WebService(Namespace:="http://www.graymad.com/webservices/")&amp;gt; _&lt;br /&gt;Public Class SalesRank&lt;br /&gt;   Inherits WebService&lt;br /&gt;&lt;br /&gt;   &amp;lt;WebMethod()&amp;gt; _&lt;br /&gt;   Public Function GetSalesRankAmazon(Isbn As String) As Integer&lt;br /&gt;&lt;br /&gt;      ' implementasi&lt;br /&gt;&lt;br /&gt;   End Function&lt;br /&gt;&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Implementasinya :&lt;/span&gt;&lt;br /&gt;&amp;lt;WebMethod()&amp;gt; _&lt;br /&gt;   Public Function GetSalesRankAmazon(Isbn As String) As Integer&lt;br /&gt;&lt;br /&gt;      Dim WC as New WebClient()&lt;br /&gt;      Dim strUrl As String&lt;br /&gt;      Dim strHTML As String&lt;br /&gt;      Dim strRegEx As String&lt;br /&gt;&lt;br /&gt;      strUrl = "http://www.amazon.com/exec/obidos/ASIN/" &amp; Isbn &amp;amp; "/"&lt;br /&gt;      strRegEx = "Rank:"&lt;br /&gt;&lt;br /&gt;      Dim UTF8 as New UTF8Encoding()&lt;br /&gt;      strHTML = UTF8.GetString(WC.DownloadData(strUrl))&lt;br /&gt;&lt;br /&gt;      Dim r As Regex = New Regex(strRegEx, RegexOptions.IgnoreCase Or _&lt;br /&gt;         RegexOptions.Compiled)&lt;br /&gt;      Dim m As Match = r.Match(strHTML)&lt;br /&gt;      Dim MatchLoc As Integer&lt;br /&gt;      Dim RankBegin As Integer&lt;br /&gt;      Dim RankEnd As Integer&lt;br /&gt;&lt;br /&gt;      MatchLoc = m.Index&lt;br /&gt;      RankBegin = strHTML.IndexOf("&amp;gt;", MatchLoc) + 1&lt;br /&gt;      RankEnd = strHTML.IndexOf("&amp;lt;", RankBegin)&lt;br /&gt;      Return CInt(strHTML.Substring(RankBegin, RankEnd - RankBegin))&lt;br /&gt;&lt;br /&gt;   End Function&lt;br /&gt;&lt;br /&gt;strUrl adalah URL yang akan diambil datanya, strHTML adalah HTML dari halaman yang di-scrape dan strRegEx adalah teks untuk class RegEx.&lt;br /&gt;&lt;br /&gt;Kemudian digunakan instance dari class UTFEncoding untuk data yang diambil dari class WebClient, selanjutnya diambil fullHTML dari halaman target dengan memanggil method GetString dari UTFEncoding sebagai hasil dari method DownloadData dari instance WebClient.&lt;br /&gt;&lt;br /&gt;Setelah memperoleh HTMLnya, kita berganti ke mode regular expression. Pertama buat instance dari class RegEx, kemudian instance dari class Match.Lalu kita mengambil lokasi dari permulaan teks sasaran, dan menggunakannya untuk mencari posisi dari HTML terakhir sebelum sales rank. Nilai ini digunakan untuk mencari lokasi dari tag HTML perama setelah data sales rank. Kita menggunakan RankBegin dan RankEnd untuk mengambil string yang merepresentasikan data sales rank, mengubahnya menjadi integer, dan mengembalikan nialinya.&lt;br /&gt;&lt;br /&gt;Program di atas yang disimpan ke file dengan ekstensi .asmx, kemudian compile hingga menjadi salesrank.dll dan panggil dengan menggunakan kode:&lt;/p&gt; &lt;p class="MsoNormal"&gt;Dim SR As New SalesRank&lt;br /&gt;'Literal control digunakan untuk menampilkan sales rank&lt;br /&gt;SalesRank.Text = "Amazon.com Sales Rank: " &amp;amp; SR.GetSalesRankAmazon("0735612870").ToString()&lt;br /&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;Sebagai fasilitas tambahan kita dapat menyediakan textbox atau metode lain untuk user sehingga dapat menginputkan ISBN untuk look up secara dinamis&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111826635309373002?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111826635309373002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111826635309373002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111826635309373002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111826635309373002'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/webclient-dan-regex-dua-class-yang.html' title='WebClient dan RegEx, dua class yang dapat digunakan untuk Screen Scraping (ambil sales rank Amazon)'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111826572021030534</id><published>2005-06-08T14:15:00.000-07:00</published><updated>2005-06-08T14:22:00.226-07:00</updated><title type='text'>Menyembunyikan Tombol pada ASP.NET dengan menggunakan OnClick JavaScript</title><content type='html'>Ada kebiasaan beberapa orang yang meng-click tombol Submit dua kali saat mengkonfirmasi sebuah transaksi atau mengirimkan request apapun. Hal ini bermasalah jika user akan membeli sesuatu, maka dia dapat di-charge dua kali pada kartu kreditnya. &lt;br /&gt;&lt;br /&gt;Anda tentu telah melihat banyak message pada halaman checkout ecommerce : “Please click only once to avoid duplicate charges”, yaitu click sekali saja agar tidak dikenakan biaya 2 kali.&lt;br /&gt;&lt;br /&gt;Untuk menangani hal ini, gantilah tombol asp.net dengan tombol HTML biasa tetapi pastikan berjalan pada server, bukan pada client.&lt;br /&gt;&lt;br /&gt;Caranya:&lt;br /&gt;&lt;br /&gt;Masukkan potongan program di bawah pada head&lt;br /&gt;&amp;lt;style type="text/css"&amp;gt;&lt;br /&gt;       .HIDDEN { VISIBILITY: hidden } &lt;br /&gt;       .VISIBLE { VISIBILITY: visible }&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&lt;br /&gt;Kemudian gunakan DIV untuk pesan tunggu&lt;br /&gt;&amp;lt;DIV class=HIDDEN id=WaitID style="FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Tahoma"&amp;gt;Please stay with us, your request is being processed ........&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;Contoh tombol HTML yang dijalankan pada server&lt;br /&gt;&amp;lt;INPUT id=ConfirmAction style="VISIBILITY: visible" onclick=ConfirmAction_ServerClick(); type=button value=Confirm name=confirmation runat="server"&amp;gt;&lt;br /&gt;&lt;br /&gt;Pada HTML di atas digunakan CSS untuk menyembunyikan pesan tunggu dan menampilkan tombol sebagai default, kemudian tambahkan program JavaScript setelah tag &amp;lt; form &amp;gt;&lt;br /&gt;&amp;lt;script language="javascript"&amp;gt;&lt;br /&gt;     function ConfirmAction_ServerClick()&lt;br /&gt;     {  &lt;br /&gt;        document.Form1.ConfirmAction.style.visibility="hidden";&lt;br /&gt;        WaitID.className="VISIBLE"; &lt;br /&gt;     } &lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;Kemudian dapat dituliskan program, sebagai contoh, redirect ke someaction.aspx yang tidak melakukan apapun.&lt;br /&gt;&lt;br /&gt;private void ConfirmAction_ServerClick(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;     Response.Redirect("someaction.aspx");&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111826572021030534?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111826572021030534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111826572021030534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111826572021030534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111826572021030534'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/menyembunyikan-tombol-pada-aspnet.html' title='Menyembunyikan Tombol pada ASP.NET dengan menggunakan OnClick JavaScript'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111844761180175000</id><published>2005-06-08T13:47:00.000-07:00</published><updated>2005-06-10T16:53:31.806-07:00</updated><title type='text'>Membuat GuestBook dari XML</title><content type='html'>Dim myDataSet as DataSet&lt;br /&gt;    Dim strFilePath As String&lt;br /&gt;    &lt;br /&gt;    Sub Page_Load(Src As Object, E As EventArgs)&lt;br /&gt;    &lt;br /&gt;            'Path to the XML data&lt;br /&gt;            strFilePath = Server.MapPath("guestbook.xml")&lt;br /&gt;    &lt;br /&gt;            If Not Page.IsPostBack Then&lt;br /&gt;    &lt;br /&gt;                'If XML file not exists, create a new one&lt;br /&gt;                If Not File.Exists(strFilePath) Then&lt;br /&gt;                    InitializeXMLFile()&lt;br /&gt;                End If&lt;br /&gt;    &lt;br /&gt;                PopulateDataSet()&lt;br /&gt;    &lt;br /&gt;                DisplayData()&lt;br /&gt;            end If&lt;br /&gt;    End Sub&lt;br /&gt;    &lt;br /&gt;    Sub InitializeXMLFile()&lt;br /&gt;            'Create a new dataset&lt;br /&gt;            myDataSet = New DataSet()&lt;br /&gt;    &lt;br /&gt;            'Create a new datatable&lt;br /&gt;            Dim myTable As DataTable = myDataSet.Tables.Add("myguestbook")&lt;br /&gt;    &lt;br /&gt;            'Define column id&lt;br /&gt;            Dim myDataColumn as DataColumn = myTable.Columns.Add("id", Type.GetType("System.Int32"))&lt;br /&gt;            With myDataColumn&lt;br /&gt;                .AutoIncrement = true&lt;br /&gt;                .AutoIncrementSeed = 1&lt;br /&gt;                .AutoIncrementStep = 1&lt;br /&gt;            End With&lt;br /&gt;    &lt;br /&gt;            'Set column id as the primary key&lt;br /&gt;            Dim arrPrimaryKey(1) As DataColumn&lt;br /&gt;            arrPrimaryKey(0) = myDataColumn&lt;br /&gt;            myTable.PrimaryKey = arrPrimaryKey&lt;br /&gt;    &lt;br /&gt;            'Define the other columns&lt;br /&gt;            myTable.Columns.Add("datetime", Type.GetType("System.DateTime"))&lt;br /&gt;            myTable.Columns.Add("author", Type.GetType("System.String"))&lt;br /&gt;            myTable.Columns.Add("subject", Type.GetType("System.String"))&lt;br /&gt;            myTable.Columns.Add("comments", Type.GetType("System.String"))&lt;br /&gt;    &lt;br /&gt;            'Write table structure to XML&lt;br /&gt;            myDataSet.WriteXml(strFilePath, XMLWriteMode.WriteSchema)&lt;br /&gt;    End Sub&lt;br /&gt;    &lt;br /&gt;    Sub PopulateDataSet()&lt;br /&gt;            myDataSet = New DataSet()&lt;br /&gt;            myDataSet.ReadXml(strFilePath, XmlReadMode.ReadSchema)&lt;br /&gt;    End Sub&lt;br /&gt;    &lt;br /&gt;    Sub DisplayData()&lt;br /&gt;            'Bind data to Repeater&lt;br /&gt;            Dim myDataView As DataView = myDataSet.Tables(0).DefaultView&lt;br /&gt;    &lt;br /&gt;            'Uncomment next line to display the newer messages first&lt;br /&gt;            myDataView.Sort = "id DESC"&lt;br /&gt;    &lt;br /&gt;            myRepeater.DataSource = myDataView&lt;br /&gt;            myRepeater.DataBind()&lt;br /&gt;    End Sub&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    Sub btnSubmit_Click(src as Object, e as EventArgs)&lt;br /&gt;            PopulateDataSet()&lt;br /&gt;    &lt;br /&gt;            'Add new entry to DataSet&lt;br /&gt;            Dim myDataRow As DataRow = myDataSet.Tables(0).NewRow()&lt;br /&gt;            myDataRow("datetime") = DateTime.Now()&lt;br /&gt;            myDataRow("author") = txtAuthor.Text.toString()&lt;br /&gt;            myDataRow("subject") = txtSubject.Text.toString()&lt;br /&gt;            myDataRow("comments") = txtComments.Text.toString()&lt;br /&gt;            myDataSet.Tables(0).Rows.Add(myDataRow)&lt;br /&gt;    &lt;br /&gt;            'Write to XML&lt;br /&gt;            myDataSet.WriteXml(strFilePath, XMLWriteMode.WriteSchema)&lt;br /&gt;    &lt;br /&gt;            DisplayData()&lt;br /&gt;    &lt;br /&gt;            'Clear textboxes&lt;br /&gt;            txtAuthor.Text = ""&lt;br /&gt;            txtSubject.Text = ""&lt;br /&gt;            txtComments.Text = ""&lt;br /&gt;    &lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;Namespace yang digunakan adalah system.IO dan system.data&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111844761180175000?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111844761180175000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111844761180175000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111844761180175000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111844761180175000'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/membuat-guestbook-dari-xml.html' title='Membuat GuestBook dari XML'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111844715085052803</id><published>2005-06-08T13:40:00.000-07:00</published><updated>2005-06-10T16:45:50.870-07:00</updated><title type='text'>Membentuk Parser XML</title><content type='html'>Suatu XML dapat dicari rootnya dan dibentuk melalui program di bawah&lt;br /&gt;&lt;br /&gt;public class TreeXML &lt;br /&gt;{ &lt;br /&gt;    private static TreeNode DoElement(XmlNode xn) &lt;br /&gt;    { &lt;br /&gt;        TreeNode tn = new TreeNode(xn.Name); &lt;br /&gt;       &lt;br /&gt;        if (xn.Attributes != null &amp;&amp; xn.Attributes.Count &gt; 0) &lt;br /&gt;        { &lt;br /&gt;            TreeNode attr_node = tn.Nodes.Add("Attibutes"); &lt;br /&gt;             &lt;br /&gt;            foreach (XmlAttribute attr in xn.Attributes) // parcours des attributs &lt;br /&gt;                attr_node.Nodes.Add(attr.Name + "=" + attr.Value); &lt;br /&gt;        } &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;        if (xn.Value != null &amp;&amp; xn.Value != "") &lt;br /&gt;            tn.Text = xn.Value; &lt;br /&gt;        else &lt;br /&gt;        { &lt;br /&gt;            foreach (XmlNode subxn in xn.ChildNodes) &lt;br /&gt;                tn.Nodes.Add(DoElement(subxn)); &lt;br /&gt;        } &lt;br /&gt;        return (tn); &lt;br /&gt;     }&lt;br /&gt;  &lt;br /&gt;    public static TreeNode GetTreeNodeFromXML(string xml_file) &lt;br /&gt;    { &lt;br /&gt;        XmlDocument doc = new XmlDocument(); &lt;br /&gt;        doc.Load(xml_file); &lt;br /&gt;  &lt;br /&gt;        XmlNode root = doc.DocumentElement; &lt;br /&gt;  &lt;br /&gt;        return (DoElement(root)); &lt;br /&gt;    } &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;List Control DataBinding using XML&lt;br /&gt;&lt;br /&gt;Program di bawah ini menyatakan bahwa ada berbagai macam cara untuk menampilkan daftar kontrol dengan berbagai maca tipe data yang mana pada saat ini difokuskan pada penggunaan file XML. Melalui penggunaan listbox di bawah dapat diketahui perluasan tehnik penggunaannya ke daftar kontrol yang lain yang merupakan turunan dari kelas System.Web.UI.WebControls.ListControl  yang anggotanya termasuk CheckBoxList, DropDownList, dan RadioButtonList.&lt;br /&gt;Input:&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;br /&gt;- &lt;lookup&gt;&lt;br /&gt;- &lt;!--  START OF: Topping &lt;br /&gt;  --&gt; &lt;br /&gt;- &lt;topping&gt;&lt;br /&gt;  &lt;value&gt;supreme&lt;/value&gt; &lt;br /&gt;  &lt;desc&gt;Supreme&lt;/desc&gt; &lt;br /&gt;  &lt;/topping&gt;&lt;br /&gt;- &lt;topping&gt;&lt;br /&gt;  &lt;value&gt;capricciosa&lt;/value&gt; &lt;br /&gt;  &lt;desc&gt;Capricciosa&lt;/desc&gt; &lt;br /&gt;  &lt;/topping&gt;&lt;br /&gt;- &lt;topping&gt;&lt;br /&gt;  &lt;value&gt;hawaiian&lt;/value&gt; &lt;br /&gt;  &lt;desc&gt;Hawaiian&lt;/desc&gt; &lt;br /&gt;  &lt;/topping&gt;&lt;br /&gt;- &lt;topping&gt;&lt;br /&gt;  &lt;value&gt;mexicanfiesta&lt;/value&gt; &lt;br /&gt;  &lt;desc&gt;Mexican Fiesta&lt;/desc&gt; &lt;br /&gt;  &lt;/topping&gt;&lt;br /&gt;- &lt;topping&gt;&lt;br /&gt;  &lt;value&gt;italianclassic&lt;/value&gt; &lt;br /&gt;  &lt;desc&gt;Italian Classic&lt;/desc&gt; &lt;br /&gt;  &lt;/topping&gt;&lt;br /&gt;- &lt;topping&gt;&lt;br /&gt;  &lt;value&gt;margherita&lt;/value&gt; &lt;br /&gt;  &lt;desc&gt;Margherita&lt;/desc&gt; &lt;br /&gt;  &lt;/topping&gt;&lt;br /&gt;- &lt;topping&gt;&lt;br /&gt;  &lt;value&gt;meatlover&lt;/value&gt; &lt;br /&gt;  &lt;desc&gt;Meat Lover&lt;/desc&gt; &lt;br /&gt;  &lt;/topping&gt;&lt;br /&gt;- &lt;topping&gt;&lt;br /&gt;  &lt;value&gt;pepperoni&lt;/value&gt; &lt;br /&gt;  &lt;desc&gt;Pepperoni&lt;/desc&gt; &lt;br /&gt;  &lt;/topping&gt;&lt;br /&gt;- &lt;topping&gt;&lt;br /&gt;  &lt;value&gt;vegetarian&lt;/value&gt; &lt;br /&gt;  &lt;desc&gt;Vegetarian&lt;/desc&gt; &lt;br /&gt;  &lt;/topping&gt;&lt;br /&gt;- &lt;!--  END OF: Topping &lt;br /&gt;  --&gt;&lt;br /&gt;isi selanjutnya dapat dibuat sendiri&lt;br /&gt;&lt;br /&gt;Listing program :&lt;br /&gt;Dim strXmlFilePath As String = Server.MapPath("xmlboundlistcontrol.xml")&lt;br /&gt;    &lt;br /&gt;    Sub Page_Load(obj as Object, e as EventArgs)&lt;br /&gt;    &lt;br /&gt;            If not Page.IsPostBack Then&lt;br /&gt;    &lt;br /&gt;                'Create a new DataSet&lt;br /&gt;                Dim myDataSet as DataSet = New DataSet&lt;br /&gt;    &lt;br /&gt;                'Read XML file and populate tables&lt;br /&gt;                myDataSet.ReadXml(strXmlFilePath)&lt;br /&gt;    &lt;br /&gt;                'Data bind RadioButtonList the verbose way&lt;br /&gt;                rblCrust.DataSource = myDataSet&lt;br /&gt;                rblCrust.DataMember = "crust"&lt;br /&gt;                rblCrust.DataBind()&lt;br /&gt;    &lt;br /&gt;                'Data bind ListBox the shortcut way&lt;br /&gt;                lstTopping.DataSource = myDataSet.Tables("topping").DefaultView&lt;br /&gt;                lstTopping.DataBind()&lt;br /&gt;    &lt;br /&gt;                'Data bind CheckBoxList in sorted order&lt;br /&gt;                Dim myDataView as DataView = myDataSet.Tables("addtopping").DefaultView&lt;br /&gt;                myDataView.Sort  = "desc ASC"&lt;br /&gt;                cblAdditionalTopping.DataSource = myDataView&lt;br /&gt;                cblAdditionalTopping.DataBind()&lt;br /&gt;    &lt;br /&gt;                'Data bind RadioButtonList&lt;br /&gt;                rblDoubleCheese.DataSource = myDataSet.Tables("yesno").DefaultView&lt;br /&gt;                rblDoubleCheese.DataBind()&lt;br /&gt;    &lt;br /&gt;            End If&lt;br /&gt;    End Sub&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    Sub btnSubmit_Click(obj as Object, e as EventArgs)&lt;br /&gt;            Dim strOutput As String&lt;br /&gt;    &lt;br /&gt;            'Output TextBox&lt;br /&gt;            strOutput ="&lt;p&gt;&lt;b&gt;Patron Name&lt;/b&gt;: " + txtName.Text&lt;br /&gt;    &lt;br /&gt;            'Output RadioButtonList&lt;br /&gt;            strOutput += "&lt;p&gt;&lt;b&gt;Pizza Crust&lt;/b&gt;: " + rblCrust.SelectedItem.Value&lt;br /&gt;    &lt;br /&gt;            'Output ListBox&lt;br /&gt;            strOutput += "&lt;p&gt;&lt;b&gt;Pizza Topping&lt;/b&gt;: " + lstTopping.SelectedItem.Value&lt;br /&gt;    &lt;br /&gt;            'Output CheckBoxList&lt;br /&gt;            Dim i as Integer&lt;br /&gt;            strOutput += "&lt;p&gt;&lt;b&gt;Additional toppings&lt;/b&gt;: &lt;br&gt;&lt;br&gt;"&lt;br /&gt;            For i = 0 to cblAdditionalTopping.Items.Count-1&lt;br /&gt;                If cblAdditionalTopping.Items(i).Selected Then&lt;br /&gt;                    strOutput += cblAdditionalTopping.Items(i).Value + "&lt;br&gt;"&lt;br /&gt;                End If&lt;br /&gt;            Next&lt;br /&gt;    &lt;br /&gt;            'Output RadioButtonList&lt;br /&gt;            strOutput += "&lt;p&gt;&lt;b&gt;Double Cheese&lt;/b&gt;?" + rblDoubleCheese.SelectedItem.Value&lt;br /&gt;    &lt;br /&gt;            lblOutput.Text = strOutput&lt;br /&gt;    &lt;br /&gt;    End Sub&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111844715085052803?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111844715085052803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111844715085052803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111844715085052803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111844715085052803'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/membentuk-parser-xml.html' title='Membentuk Parser XML'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111823972625544132</id><published>2005-06-08T07:07:00.000-07:00</published><updated>2005-06-08T07:08:46.256-07:00</updated><title type='text'>Add JavaScript popup to ASP Button</title><content type='html'>public void Page_Load(Object sender, EventArgs E)&lt;br /&gt; {&lt;br /&gt;btnSubmit.Attributes.Add("onclick","javascript:if(confirm('Are you sure everything is correct?')== false) return false;");&lt;br /&gt;}&lt;br /&gt;void btnSubmit_Click(object sender, EventArgs e) {&lt;br /&gt;        Message.Text = "You entered your name as: " + txtName.Text;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111823972625544132?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111823972625544132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111823972625544132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111823972625544132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111823972625544132'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/add-javascript-popup-to-asp-button.html' title='Add JavaScript popup to ASP Button'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111823951897844848</id><published>2005-06-08T07:03:00.000-07:00</published><updated>2005-06-08T07:05:18.980-07:00</updated><title type='text'>Adding control to PlaceHolder dynamically</title><content type='html'>Salah satu kelebihan pada .net adalah penggunaan .ASPX yang dapat menempatkan pengaturan placeholder pada area screen. Yang perlu diingat bahwa method “FindControl” yang mengidentifikasikan tiap kontrol. Jika ingin melakukan pengontrolan pada JavaScript dapat menggunakan ClientId untuk mengakses. &lt;br /&gt;&lt;br /&gt;        private void Page_Load(object sender, System.EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            //buat placeholder&lt;br /&gt;            for(int x = 0; x &lt;= 10; x++) {&lt;br /&gt;                Label title = new Label();&lt;br /&gt;                title.Text = "Item " + x.ToString();&lt;br /&gt;                title.ID = "Item" + x.ToString();&lt;br /&gt;                Area1.Controls.Add(title);&lt;br /&gt;                Area1.Controls.Add(new LiteralControl("&lt;br&gt;"));&lt;br /&gt;            }     &lt;br /&gt;        }         &lt;br /&gt;        &lt;br /&gt;        private void ButtonChange_Click(object sender, System.EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            ((Label)(Area1.FindControl("Item" + txtId.Text.ToString()))).Text = txtName.Text.ToString();&lt;br /&gt;        }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111823951897844848?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111823951897844848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111823951897844848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111823951897844848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111823951897844848'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/adding-control-to-placeholder.html' title='Adding control to PlaceHolder dynamically'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111823935663726712</id><published>2005-06-08T07:01:00.000-07:00</published><updated>2005-06-08T07:02:36.643-07:00</updated><title type='text'>Dynamic Thumbnail Image from ASP.Net</title><content type='html'>contoh code ini adalah implementasi IhttpHandler yang membaca sebuah file .JPG dari filestream dan menghasilkan sebuah versi ukuran image secara langsung sesuai dengan inputan pada stream. Yang perlu dilakukan adalah membuat sebuah file pada filesystem yang dapat tetap terletak pada memori&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Web;&lt;br /&gt;&lt;br /&gt;public class ImageHandler : IHttpHandler&lt;br /&gt;{&lt;br /&gt;    // ukuran maksimum dari thumbnail&lt;br /&gt;    const int MaxDim = 120;&lt;br /&gt;&lt;br /&gt;    public void ProcessRequest(HttpContext ctx)&lt;br /&gt;    {&lt;br /&gt;        // cache image untuk 1 hari&lt;br /&gt;        ctx.Response.ContentType = "image/jpeg";&lt;br /&gt;        ctx.Response.Cache.SetCacheability(HttpCacheability.Public);&lt;br /&gt;        ctx.Response.Cache.SetExpires(DateTime.Now.AddDays(1));&lt;br /&gt;&lt;br /&gt;        // temukan directory untuk penyimpanan image&lt;br /&gt;        string imageDir = ConfigurationSettings.AppSettings["imageDir"];&lt;br /&gt;        imageDir = Path.Combine(&lt;br /&gt;            ctx.Request.PhysicalApplicationPath, imageDir);&lt;br /&gt;&lt;br /&gt;        // temukan image yang diminta&lt;br /&gt;        string file = ctx.Request.QueryString["File"];&lt;br /&gt;        file = Path.Combine(imageDir, file);&lt;br /&gt;        // load gambar&lt;br /&gt;        using (Image img = new Bitmap(file))&lt;br /&gt;        {&lt;br /&gt;            // lakukan beberapa perhitungan matematika untuk mengubah ukuran image &lt;br /&gt;            int h = img.Height;&lt;br /&gt;            int w = img.Width;&lt;br /&gt;            int b = h &gt; w ? h : w;&lt;br /&gt;            double per = (b &gt; MaxDim) ? (MaxDim * 1.0) / b : 1.0;&lt;br /&gt;            h = (int)(h * per);&lt;br /&gt;            w = (int)(w * per);&lt;br /&gt;&lt;br /&gt;            // create the thumbnail image&lt;br /&gt;            using (Image img2 =&lt;br /&gt;                      img.GetThumbnailImage(w, h,&lt;br /&gt;                      new Image.GetThumbnailImageAbort(Abort),&lt;br /&gt;                      IntPtr.Zero))&lt;br /&gt;            {&lt;br /&gt;                // emit it to the response strea,&lt;br /&gt;                img2.Save(ctx.Response.OutputStream,&lt;br /&gt;                    System.Drawing.Imaging.ImageFormat.Jpeg);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public bool IsReusable&lt;br /&gt;    {&lt;br /&gt;        get { return true; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private bool Abort()&lt;br /&gt;    {&lt;br /&gt;        return false;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;di bawah ini dituliskan class dari IhttpHandler&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.SessionState;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;&lt;br /&gt;namespace Thumb&lt;br /&gt;{&lt;br /&gt; // class untuk show image&lt;br /&gt;public class ShowImages : System.Web.UI.Page&lt;br /&gt; {&lt;br /&gt;  protected System.Web.UI.WebControls.DataList dl;&lt;br /&gt;        protected System.Web.UI.WebControls.PlaceHolder ph;&lt;br /&gt;&lt;br /&gt;  protected string ShowName(object o)&lt;br /&gt;  {&lt;br /&gt;   DictionaryEntry d = (DictionaryEntry)o;&lt;br /&gt;   string file = d.Value.ToString();&lt;br /&gt;   return file.Substring(0, file.Length-4);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  protected string GetJpgName(object o)&lt;br /&gt;  {&lt;br /&gt;   DictionaryEntry d = (DictionaryEntry)o;&lt;br /&gt;   return d.Value.ToString();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  protected string GetImagePath(object o)&lt;br /&gt;  {&lt;br /&gt;   string imageDir = System.Configuration.ConfigurationSettings.AppSettings["imageDir"];&lt;br /&gt;   imageDir = Path.Combine(Request.ApplicationPath, imageDir);&lt;br /&gt;   DictionaryEntry d = (DictionaryEntry)o;&lt;br /&gt;   string file = d.Value.ToString();&lt;br /&gt;   file = Path.Combine(imageDir, file);&lt;br /&gt;   return file.Replace(@"\", @"/");&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  class ReverseComparer : IComparer&lt;br /&gt;  {&lt;br /&gt;   public int Compare(object x, object y)&lt;br /&gt;   {&lt;br /&gt;    DateTime l = (DateTime)x;&lt;br /&gt;    return -(l.CompareTo(y));&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;    &lt;br /&gt;  private void Page_Load(object sender, System.EventArgs e)&lt;br /&gt;  {&lt;br /&gt;   string imageDir = System.Configuration.ConfigurationSettings.AppSettings["imageDir"];&lt;br /&gt;            DirectoryInfo d = new DirectoryInfo(Path.Combine(Request.PhysicalApplicationPath, imageDir));&lt;br /&gt;            FileInfo[] f = d.GetFiles("*.jpg");&lt;br /&gt;   &lt;br /&gt;   SortedList sl = new SortedList(new ReverseComparer());&lt;br /&gt;   for (int i = 0; i &lt; f.Length; i++)&lt;br /&gt;   {&lt;br /&gt;    sl.Add(f[i].CreationTime, f[i].Name);&lt;br /&gt;   }&lt;br /&gt;   dl.DataSource = sl;&lt;br /&gt;   dl.DataBind();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;  #region Web Form Designer generated code&lt;br /&gt;  override protected void OnInit(EventArgs e)&lt;br /&gt;  {&lt;br /&gt;     InitializeComponent();&lt;br /&gt;   base.OnInit(e);&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  private void InitializeComponent()&lt;br /&gt;  {    &lt;br /&gt;   this.Load += new System.EventHandler(this.Page_Load);&lt;br /&gt;  }&lt;br /&gt;  #endregion&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111823935663726712?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111823935663726712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111823935663726712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111823935663726712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111823935663726712'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/dynamic-thumbnail-image-from-aspnet.html' title='Dynamic Thumbnail Image from ASP.Net'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111823908861663032</id><published>2005-06-08T06:57:00.000-07:00</published><updated>2005-06-08T06:58:08.616-07:00</updated><title type='text'>Membuat dynamic Graphics dengan return .jpg</title><content type='html'>code di bawah ini dapat membuat .aspx dapat menerima parameter seperti namafile dan ukuran gambar dan mengembalikan hasil kembalian sebuah .jpg sehingga dengan HTML code user dapat mengakses image dengan sintaks : src="SmartPicture.aspx?f=Employee878.jpg&amp;w=50"  dan file Employee878.jpg akan ditampilkan dengan lebar 50 dan perhitungan tingginya dihitung dengan perkiraan yang proporsional.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;void Page_Load(Object s, EventArgs e) { &lt;br /&gt;        &lt;br /&gt;       double photoWidth,photoHeight; &lt;br /&gt;       double percentageDifference = 0; &lt;br /&gt;       bool heHasAccess = false; &lt;br /&gt;       System.Drawing.Image inputImage; &lt;br /&gt;        &lt;br /&gt;       //get information being sent &lt;br /&gt;       heHasAccess = true; &lt;br /&gt;        &lt;br /&gt;       //get file name &lt;br /&gt;       string pictureFileName = Request.QueryString["f"]; &lt;br /&gt;       if(pictureFileName == null || pictureFileName == "") { &lt;br /&gt;           heHasAccess = false; &lt;br /&gt;       } &lt;br /&gt;        &lt;br /&gt;       //get width &lt;br /&gt;       try { &lt;br /&gt;           if (Request.QueryString["w"] == null) { &lt;br /&gt;               photoWidth = 0; &lt;br /&gt;           } else { &lt;br /&gt;               photoWidth = Int32.Parse(Request.QueryString["w"]); &lt;br /&gt;           } &lt;br /&gt;       } &lt;br /&gt;       catch { &lt;br /&gt;           photoWidth = 0; &lt;br /&gt;       } &lt;br /&gt;        &lt;br /&gt;       //if anything went wrong, show error picture &lt;br /&gt;       if(!heHasAccess) { &lt;br /&gt;           inputImage = System.Drawing.Image.FromFile(Server.MapPath("images/pictureNoAccess.jpg")); &lt;br /&gt;       } else { &lt;br /&gt;           inputImage = System.Drawing.Image.FromFile(Server.MapPath("images/" + pictureFileName)); &lt;br /&gt;       } &lt;br /&gt;        &lt;br /&gt;       //if no width was given, assume the default now &lt;br /&gt;       if(photoWidth==0) { &lt;br /&gt;           if(!heHasAccess) { &lt;br /&gt;               photoWidth = 100; &lt;br /&gt;           } else { &lt;br /&gt;               photoWidth = inputImage.Width; &lt;br /&gt;           } &lt;br /&gt;       } &lt;br /&gt;        &lt;br /&gt;       //define size for new image &lt;br /&gt;       percentageDifference = inputImage.Width / photoWidth; &lt;br /&gt;       photoHeight = inputImage.Height / percentageDifference; &lt;br /&gt;        &lt;br /&gt;       //output new image with different size &lt;br /&gt;       Bitmap outputBitMap = new Bitmap(inputImage,Convert.ToInt32(photoWidth),Convert.ToInt32(photoHeight)); &lt;br /&gt;       Response.ContentType = "image/jpeg"; &lt;br /&gt;       outputBitMap.Save(Response.OutputStream, ImageFormat.Jpeg); &lt;br /&gt;        &lt;br /&gt;   }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111823908861663032?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111823908861663032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111823908861663032' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111823908861663032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111823908861663032'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/membuat-dynamic-graphics-dengan-return.html' title='Membuat dynamic Graphics dengan return .jpg'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111823897188205889</id><published>2005-06-08T06:51:00.000-07:00</published><updated>2005-06-08T06:56:11.886-07:00</updated><title type='text'>Akses MySQL dari ASP.Net</title><content type='html'>Jika belum punya MySQL dapat di download dan diinstal dulu kemudian dijalanakan pada c:\mysql\bin\winmysqladmin.exe. User juga harus mendownload driver ODBC kemudian pilih Windows Downloads Driver Installer. Kemudian gunakan code di bawah untuk mengakses database MySQL. &lt;br /&gt;Namespace yang digunakan adalah system.Data dan system.Data.odbc&lt;br /&gt;&lt;br /&gt;public void Page_Load(Object sender, EventArgs e) {&lt;br /&gt;    DataTable dtRecords = GetDataTable("SELECT * FROM newone");&lt;br /&gt;    foreach(DataRow dr in dtRecords.Rows) {&lt;br /&gt;        Response.Write(dr["FirstName"].ToString() + " " + dr["LastName"].ToString() + "&lt;br/&gt;");&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private static string GetConnection() {&lt;br /&gt;    return "DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Database=testdatabase";&lt;br /&gt;}&lt;br /&gt;public static DataTable GetDataTable(string sql) {&lt;br /&gt;    DataTable rt = new DataTable();&lt;br /&gt;    DataSet ds = new DataSet();&lt;br /&gt;    OdbcDataAdapter da = new OdbcDataAdapter();&lt;br /&gt;    OdbcConnection con = new OdbcConnection(GetConnection());&lt;br /&gt;    OdbcCommand cmd = new OdbcCommand(sql, con);&lt;br /&gt;    da.SelectCommand = cmd;&lt;br /&gt;    da.Fill(ds);&lt;br /&gt;    try {&lt;br /&gt;        rt = ds.Tables[0];&lt;br /&gt;    }&lt;br /&gt;    catch {&lt;br /&gt;        rt = null;&lt;br /&gt;    }&lt;br /&gt;    return rt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111823897188205889?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111823897188205889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111823897188205889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111823897188205889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111823897188205889'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/akses-mysql-dari-aspnet.html' title='Akses MySQL dari ASP.Net'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111823828807496930</id><published>2005-06-08T06:43:00.000-07:00</published><updated>2005-06-08T06:49:50.736-07:00</updated><title type='text'>Dynamic Coloumn Sorting and Paging</title><content type='html'>Sorting kolom pada halaman ASP adalah bnetuk yang sangat berguna yang mampu untuk menampilkan data ke link yang dituju yang mana dapat dengan mudah dilakukan dengan memasingkan urutan sorting kolom pada query string &lt;br /&gt;Pada bagian Page langguage="VB" tambahkan tag berikut:&lt;br /&gt;Page Language="VB" Debug="False" Strict="True" Explicit="True" Buffer="True&lt;br /&gt;Namespace yang digunakan adalah system, system.Data, Syste.Data.SqlClient&lt;br /&gt;&lt;br /&gt;Sub Page_Load (sender As Object, e As EventArgs)&lt;br /&gt;    If SortExp.Text = "" then&lt;br /&gt;        BindSQL ("title asc")&lt;br /&gt;    Else&lt;br /&gt;        BindSQL (SortExp.Text)&lt;br /&gt;    End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Sub BindSQL (SortField As String)&lt;br /&gt;    Dim MyConnection As SqlConnection&lt;br /&gt;    Dim MyCommand As SqlDataAdapter&lt;br /&gt;    Dim DS as Dataset&lt;br /&gt;    Dim sqlStr As String = "SELECT authors.au_fname, authors.au_lname, titles.title, titles.price FROM authors, titleauthor, titles WHERE titleauthor.au_id = authors.au_id AND titleauthor.title_id = titles.title_id ORDER BY title asc"&lt;br /&gt;    Dim strConn As String = "server=(local);uid=sa;pwd=;database=pubs;Trusted_Connection=yes;"&lt;br /&gt;    Dim RcdCount As Integer&lt;br /&gt;    SortExp.Text = SortField&lt;br /&gt;    MyConnection = New SqlConnection(strConn)&lt;br /&gt;    MyCommand = New SqlDataAdapter(sqlStr, MyConnection)&lt;br /&gt;    DS = new Dataset()&lt;br /&gt;    MyCommand.Fill(DS, "pubs")&lt;br /&gt;    Dim Source As DataView = DS.Tables(0).DefaultView&lt;br /&gt;    Source.Sort = SortField&lt;br /&gt;    Pubs.DataSource = Source&lt;br /&gt;    Pubs.Databind()&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Function SortOrder (Field As String) As String&lt;br /&gt;    Dim so As String = SortExp.Text&lt;br /&gt;    If Field = so Then&lt;br /&gt;        SortOrder = Replace (Field,"asc","desc")&lt;br /&gt;    Else&lt;br /&gt;        SortOrder = Replace (Field,"desc","asc")&lt;br /&gt;    End If&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Sub BookList_Sort (Sender As Object, E As DataGridSortCommandEventArgs)&lt;br /&gt;    pubs.CurrentPageIndex = 0 'To sort from top&lt;br /&gt;    BindSQL (SortOrder (E.SortExpression).ToString()) 'Rebind our Datagrid&lt;br /&gt;End Sub&lt;br /&gt;Sub BookList_PageChange (Source As Object, E As DataGridPageChangedEventArgs)&lt;br /&gt;    pubs.CurrentPageIndex = E.NewPageIndex&lt;br /&gt;    BindSQL(SortOrder(SortExp.Text))&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;//yang harus diletakkan pada bagian HTML&lt;br /&gt;&lt;br /&gt;    //Pada ASP:DataGrid tambahkan :&lt;br /&gt;    id="Pubs" runat="server"&lt;br /&gt;    Pagesize="10"&lt;br /&gt;    AllowSorting="True"&lt;br /&gt;    AllowPaging="True"&lt;br /&gt;    AllowCustomPaging="False"&lt;br /&gt;    PagerStyle-Visible = "True"&lt;br /&gt;    PagerStyle-Mode = "NumericPages"&lt;br /&gt;    HeaderStyle-BackColor="Blue"&lt;br /&gt;    HeaderStyle-ForeColor="White"&lt;br /&gt;    OnSortCommand="BookList_Sort"&lt;br /&gt;    OnPageIndexChanged="BookList_PageChange"&lt;br /&gt;    AutoGenerateColumns="false"&lt;br /&gt;    &lt;br /&gt;    //Pada pembentukan boundColumn yang harus ditambahkan SortExpression="&lt;sesuai dengan nama field&gt;", ItemStyle-Wrap="false&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111823828807496930?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111823828807496930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111823828807496930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111823828807496930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111823828807496930'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/dynamic-coloumn-sorting-and-paging.html' title='Dynamic Coloumn Sorting and Paging'/><author><name>Dessy Theresia - 201114381</name><uri>http://www.blogger.com/profile/06954776236518029060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111812119724013284</id><published>2005-06-06T21:58:00.000-07:00</published><updated>2005-06-06T22:13:17.240-07:00</updated><title type='text'>Melindungi file menggunakan form authentication</title><content type='html'>&lt;div align="justify"&gt;Diasumsikan bahwa Website telah dikonfigurasi untuk menggunakan &lt;em&gt;forms authentication&lt;/em&gt;. Pastikan kalau tipe authentication yang diperbolehkan oleh IIS adalah aninomus. Pertama-tama buka IIS MAanagement Console dan buka halaman property pada site yang dikonfigurasi untuk menggunakan form authentication. Dari halaman Properties, tekan "Configuration" pada tab "Directory". Lalu klik tombol "add". Carilah file aspnet_isapi.dll . file ini diletakkan pada &lt;/div&gt;&lt;div align="justify"&gt;direktori %windir%\Microsoft.NET\FrameworkSDK\[version].&lt;br /&gt;Sebagai contoh, bila ingin agar ekstensi file gif di mapping agar semua file image dilindungi maka masukkan lokasi aspnet_isapi.dll file pada teks box "Executable" dan extension ".gif" pada teks box"Extension" lalu klik "OK". Setelah itu , restart IIS.&lt;br /&gt;Setelah IIS direstart, pastikan agar tidak ada persistantcookies dari site yang memiliki form authentication.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Andreas - 201114160&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111812119724013284?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111812119724013284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111812119724013284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111812119724013284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111812119724013284'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/melindungi-file-menggunakan-form_06.html' title='Melindungi file menggunakan form authentication'/><author><name>Ayas</name><uri>http://www.blogger.com/profile/09022040874276905817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111806928514434928</id><published>2005-06-06T07:46:00.000-07:00</published><updated>2005-06-06T07:48:05.146-07:00</updated><title type='text'>Button Print</title><content type='html'>&lt;pre&gt;Membuat button untuk print page&lt;br /&gt;&lt;br /&gt;Pada event page load tambahkan atribut pada buttonnya&lt;br /&gt;&lt;br /&gt;btnPrint.Attributes(&amp;quot;onClick&amp;quot;) =&amp;quot;javascript:window.print();&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111806928514434928?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111806928514434928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111806928514434928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806928514434928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806928514434928'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/button-print.html' title='Button Print'/><author><name>Steve Ardianto (201114169)</name><uri>http://www.blogger.com/profile/01680207886475111826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111806911640234747</id><published>2005-06-06T07:43:00.000-07:00</published><updated>2005-06-06T07:45:16.406-07:00</updated><title type='text'>Menggunakan UDL untuk connectionstring</title><content type='html'>just store it's path in your Web.Config file:&lt;br /&gt;pertama simpan udl tersebut pada file web.config&lt;br /&gt;&lt;pre&gt;&lt;blockquote&gt;&lt;add key="My-UDL" value="c:\YourPath\YourUDL.udl"&gt;&lt;/add&gt;&lt;/blockquote&gt;&lt;/pre&gt; buat koneksistringnya:&lt;br /&gt;&lt;pre&gt;&lt;blockquote&gt;Dim strConn = "File name=" &amp;amp; ConfigurationSettings.AppSettings("My-UDL") &lt;/blockquote&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111806911640234747?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111806911640234747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111806911640234747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806911640234747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806911640234747'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/menggunakan-udl-untuk-connectionstring.html' title='Menggunakan UDL untuk connectionstring'/><author><name>Steve Ardianto (201114169)</name><uri>http://www.blogger.com/profile/01680207886475111826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111806878739664556</id><published>2005-06-06T07:38:00.000-07:00</published><updated>2005-06-06T07:39:47.396-07:00</updated><title type='text'>List tabel pada MSAccess</title><content type='html'>&lt;span style="font-style: italic;"&gt;SELECT [Name] FROM MSysObjects WHERE [Type] = 1&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111806878739664556?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111806878739664556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111806878739664556' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806878739664556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806878739664556'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/list-tabel-pada-msaccess.html' title='List tabel pada MSAccess'/><author><name>Steve Ardianto (201114169)</name><uri>http://www.blogger.com/profile/01680207886475111826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111806863720194130</id><published>2005-06-06T07:29:00.000-07:00</published><updated>2005-06-06T07:37:17.203-07:00</updated><title type='text'>Komparasi waktu</title><content type='html'>Dim t1 As String = DateTime.Parse(&amp;quot;3:30 PM&amp;quot;).ToString(&amp;quot;t&amp;quot;)&lt;br&gt;&lt;br /&gt;Dim t2 As String = DateTime.Now.ToString(&amp;quot;t&amp;quot;)&lt;br&gt;&lt;br /&gt;If DateTime.Compare(t1, t2) &amp;lt; 0 Then&lt;br&gt;&lt;br /&gt;Response.Write(t1.ToString() &amp;amp; &amp;quot; is &amp;lt; than &amp;quot; &amp;amp; t2.ToString())&lt;br&gt;&lt;br /&gt;Else&lt;br&gt;&lt;br /&gt;Response.Write(t1.ToString() &amp;amp; &amp;quot; is &amp;gt; than &amp;quot; &amp;amp; t2.ToString())&lt;br&gt;&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;semoga membantu...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111806863720194130?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111806863720194130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111806863720194130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806863720194130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806863720194130'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/komparasi-waktu.html' title='Komparasi waktu'/><author><name>Steve Ardianto (201114169)</name><uri>http://www.blogger.com/profile/01680207886475111826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111806813071019497</id><published>2005-06-06T07:25:00.000-07:00</published><updated>2005-06-06T07:28:50.716-07:00</updated><title type='text'>DataReader vs DataSet</title><content type='html'>Whenever you have a one-time hit of data from a database - use a DataReader - it's much faster than a DataSet - AND -- a Dataset uses a DataReader to get its data.....&lt;br /&gt;If you are requesting data that is going to be used/accessed multiple times, use the DataSet - It grabs the data from the table, puts it in memory and then closes the connection&lt;br /&gt;&lt;br /&gt;DataReader lebih cepat dari dataset.&lt;br /&gt;tetapi jika request data berulangkali atau mengakses berulangkali lebih baik menggunakan dataset, karena dataset mengrab table ke memory dan menutup koneksi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111806813071019497?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111806813071019497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111806813071019497' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806813071019497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806813071019497'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/datareader-vs-dataset.html' title='DataReader vs DataSet'/><author><name>Steve Ardianto (201114169)</name><uri>http://www.blogger.com/profile/01680207886475111826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111806789084265777</id><published>2005-06-06T07:23:00.000-07:00</published><updated>2005-06-06T07:24:50.843-07:00</updated><title type='text'>Cek dataset jika empty</title><content type='html'>ds adalah dataset&lt;br /&gt;tables(0) adalah table ke 0. &lt;br /&gt;dataset dapat menampung banyak tabel.&lt;br /&gt;&lt;br /&gt;If ds.Tables(0).Rows.Count &gt;0 then&lt;br /&gt;   'databinding&lt;br /&gt;Else&lt;br /&gt;   ' pesan bahwa dataset empty&lt;br /&gt;End if&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111806789084265777?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111806789084265777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111806789084265777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806789084265777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806789084265777'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/cek-dataset-jika-empty.html' title='Cek dataset jika empty'/><author><name>Steve Ardianto (201114169)</name><uri>http://www.blogger.com/profile/01680207886475111826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111806774094660021</id><published>2005-06-06T07:20:00.000-07:00</published><updated>2005-06-06T07:22:20.946-07:00</updated><title type='text'>Kalkulasi umur dari tanggal lahir</title><content type='html'>Dim CurrentDate as DateTime = DateTime.Today()&lt;br /&gt;Dim BirthDate as DateTime &lt;br /&gt;     ' konversi dulu input ke datetime&lt;br /&gt;BirthDate = CDate(txtBirthDate.text)&lt;br /&gt;Dim diff as TimeSpan  = CurrentDate.Subtract(BirthDate) &lt;br /&gt; '    "Cint" konversikan ke integer value (tanpa koma)&lt;br /&gt;lblShowAge.text=Cint(diff.Days/365)&lt;br /&gt;&lt;br /&gt;semoga membantu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111806774094660021?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111806774094660021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111806774094660021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806774094660021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806774094660021'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/kalkulasi-umur-dari-tanggal-lahir.html' title='Kalkulasi umur dari tanggal lahir'/><author><name>Steve Ardianto (201114169)</name><uri>http://www.blogger.com/profile/01680207886475111826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111806736350910196</id><published>2005-06-06T07:12:00.000-07:00</published><updated>2005-06-06T07:18:47.770-07:00</updated><title type='text'>Membuat link Mailto pada Datagrid</title><content type='html'>Suppose you have a database table which contains an email field, and you'd like to display that field, as well as others in a DataGrid. Let's go one step further - - let's say you'd like to display that email field as a clickable MailTo link. One way that this can be easily be done using TemplateColumns. First, you create your DataGrid start and end tags. Then, inside these tags, you include 'Columns' start and end tags. That's where you put your TemplateColumn. Here's how to do it:&lt;br /&gt;&lt;br /&gt;misalnya punya tabel database dimana ada field email. Trus kalau diklik bisa membuka outlook express, spt "href=mailto:aa@aa.com"&lt;br /&gt;Pertama buat datagridnya dulu, trus diantara start dan end tag pada datagrid diberi tag start dan end 'Columns' . Dimana pada start, end tag 'columns' diberi templateColumn,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Columns&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;i&amp;gt;....taruh boundcolumns lainnya yang ingin kmu taruh disini&amp;lt;/i&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;asp:TemplateColumn HeaderText=&amp;quot;Email Address&amp;quot; HeaderStyle-Font-Bold=&amp;quot;True&amp;quot;&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;ItemTemplate&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;A HREF=&amp;quot;Mailto:&amp;lt;%# Container.DataItem(&amp;quot;email&amp;quot;) %&amp;gt;&amp;quot;&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;%# Container.DataItem(&amp;quot;email&amp;quot;) %&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;/asp:TemplateColumn&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;/Columns&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111806736350910196?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111806736350910196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111806736350910196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806736350910196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806736350910196'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/membuat-link-mailto-pada-datagrid.html' title='Membuat link Mailto pada Datagrid'/><author><name>Steve Ardianto (201114169)</name><uri>http://www.blogger.com/profile/01680207886475111826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111806703348442894</id><published>2005-06-06T07:06:00.000-07:00</published><updated>2005-06-06T07:10:33.486-07:00</updated><title type='text'>attachment pada email</title><content type='html'>objMail adalah object dari class MailMessage&lt;br /&gt;&lt;br /&gt;objMail.Attachments.Add(new MailAttachment(server.MapPath("/Fileattachment.zip")))&lt;br /&gt;&lt;br /&gt;semoga membantu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111806703348442894?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111806703348442894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111806703348442894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806703348442894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111806703348442894'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/attachment-pada-email.html' title='attachment pada email'/><author><name>Steve Ardianto (201114169)</name><uri>http://www.blogger.com/profile/01680207886475111826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111805409942407026</id><published>2005-06-06T03:23:00.000-07:00</published><updated>2005-06-06T04:17:14.850-07:00</updated><title type='text'>Membuat aplikasi notepad menggunakan MDI dan file stream</title><content type='html'>Dim fs As FileStream&lt;br /&gt;   Dim sw As StreamWriter&lt;br /&gt;   Dim sr As StreamReader&lt;br /&gt;   Public nm As String = ""&lt;br /&gt;   Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick&lt;br /&gt;&lt;br /&gt;       If ToolBar1.Buttons.IndexOf(e.Button) = 0 Then&lt;br /&gt;           If nm = "" Then&lt;br /&gt;               SaveFileDialog1.ShowDialog()&lt;br /&gt;&lt;br /&gt;               nm = SaveFileDialog1.FileName&lt;br /&gt;              &lt;br /&gt;                   fs = New FileStream(nm, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)&lt;br /&gt;                   sw = New StreamWriter(fs)&lt;br /&gt;                   sw.WriteLine(RichTextBox1.Text)&lt;br /&gt;                   sw.Close()&lt;br /&gt;                   fs.Close()&lt;br /&gt;           Else&lt;br /&gt;               fs = New FileStream(nm, FileMode.OpenOrCreate)&lt;br /&gt;               sw = New StreamWriter(fs)&lt;br /&gt;               sw.BaseStream.Seek(0, SeekOrigin.Begin)&lt;br /&gt;               sw.WriteLine(RichTextBox1.Text)&lt;br /&gt;               sw.Flush()&lt;br /&gt;               sw.Close()&lt;br /&gt;               fs.Close()&lt;br /&gt;           End If&lt;br /&gt;       Else&lt;br /&gt;               OpenFileDialog1.ShowDialog()&lt;br /&gt;               nm = OpenFileDialog1.FileName&lt;br /&gt;               fs = New FileStream(nm, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)&lt;br /&gt;               sr = New StreamReader(fs)&lt;br /&gt;               RichTextBox1.Text = sr.ReadToEnd()&lt;br /&gt;               sr.Close()&lt;br /&gt;           fs.Close()&lt;br /&gt;       End If&lt;br /&gt;   End Sub&lt;br /&gt;&lt;br /&gt;   Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click&lt;br /&gt;       SaveFileDialog1.ShowDialog()&lt;br /&gt;       Dim nm As String = SaveFileDialog1.FileName&lt;br /&gt;       fs = New FileStream(nm, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)&lt;br /&gt;       sw = New StreamWriter(fs)&lt;br /&gt;       sw.WriteLine(RichTextBox1.Text)&lt;br /&gt;       sw.Flush()&lt;br /&gt;       sw.Close()&lt;br /&gt;   End Sub&lt;br /&gt;&lt;br /&gt;   Private Sub MenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem5.Click&lt;br /&gt;       Close()&lt;br /&gt;   End Sub&lt;br /&gt;&lt;br /&gt;   Private Sub MenuItem7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem7.Click&lt;br /&gt;       FontDialog1.ShowApply = True&lt;br /&gt;       FontDialog1.ShowColor = True&lt;br /&gt;       FontDialog1.ShowEffects = True&lt;br /&gt;       FontDialog1.ShowDialog()&lt;br /&gt;       RichTextBox1.Font = FontDialog1.Font&lt;br /&gt;       RichTextBox1.ForeColor = FontDialog1.Color&lt;br /&gt;   End Sub&lt;br /&gt;&lt;br /&gt;   Private Sub MenuItem9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem9.Click&lt;br /&gt;       RichTextBox1.Text = ""&lt;br /&gt;       nm = ""&lt;br /&gt;   End Sub&lt;br /&gt;&lt;br /&gt;   Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click&lt;br /&gt;       OpenFileDialog1.ShowDialog()&lt;br /&gt;       nm = OpenFileDialog1.FileName&lt;br /&gt;       fs = New FileStream(nm, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)&lt;br /&gt;       sr = New StreamReader(fs)&lt;br /&gt;       RichTextBox1.Text = sr.ReadToEnd()&lt;br /&gt;       sr.Close()&lt;br /&gt;       fs.Close()&lt;br /&gt;   End Sub&lt;br /&gt;&lt;br /&gt;   Private Sub MenuItem8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem8.Click&lt;br /&gt;       ColorDialog1.ShowDialog()&lt;br /&gt;       RichTextBox1.ForeColor = ColorDialog1.Color&lt;br /&gt;   End Sub&lt;br /&gt;End Class&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111805409942407026?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111805409942407026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111805409942407026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111805409942407026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111805409942407026'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/membuat-aplikasi-notepad-menggunakan.html' title='Membuat aplikasi notepad menggunakan MDI dan file stream'/><author><name>alexand - 201114155</name><uri>http://www.blogger.com/profile/16494332431286188734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111795948041352284</id><published>2005-06-05T01:10:00.000-07:00</published><updated>2005-06-05T01:18:00.416-07:00</updated><title type='text'>Mendapatkan Panjang dan lebar dari stringmu untuk image yang dinamis</title><content type='html'>ketika anda bekerja dengan pembuatan image yang dinamis, akan sangat diperlukan untuk mengetahui ukutan panjang dan lebar dari image yang akan dibuat, ketika menggambar dengan spesifikasi ukuran dan jenis font yang digunakan. dibawah ini adalah sebuah metode yang akan mengambil sebuah string sebagai parameter, menggunakan font yang dispesifikasikan, akan mengembalikan ukuran dari string tersebut.&lt;br /&gt;&lt;br /&gt;private SizeF CheckWidth(string mystring){ &lt;br /&gt;  String FontFace; &lt;br /&gt;  int FontSize;&lt;br /&gt;  FontFace="Arial"; &lt;br /&gt;  FontSize=8;&lt;br /&gt;  Font menuFont = new Font(FontFace,FontSize,System.Drawing.FontStyle.Bold); &lt;br /&gt;  SizeF CurrentWidth = new SizeF(0,0); &lt;br /&gt;  Bitmap b = new Bitmap(12,12);  Graphics g = Graphics.FromImage(b); &lt;br /&gt;  CurrentWidth = g.MeasureString(mystring,menuFont); &lt;br /&gt;  g.Dispose(); &lt;br /&gt;  b.Dispose(); &lt;br /&gt;  return CurrentWidth;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111795948041352284?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111795948041352284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111795948041352284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111795948041352284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111795948041352284'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/mendapatkan-panjang-dan-lebar-dari.html' title='Mendapatkan Panjang dan lebar dari stringmu untuk image yang dinamis'/><author><name>Great Tjeng - 201114335</name><uri>http://www.blogger.com/profile/07891899075237713060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111796699932860786</id><published>2005-06-05T00:20:00.000-07:00</published><updated>2005-06-05T03:25:27.633-07:00</updated><title type='text'>Prompt User agar Save saat meninggalkan halaman/page</title><content type='html'>Berikut ini adalah cara untuk menampilkan messagebox konfirmasi saat user berusaha untuk meninggalkan halaman data-entry setelah mengubah isi data tanpa menyimpan data.&lt;br /&gt;&lt;br /&gt;Kita membuat extended class dari Page class dengan method yang bila dipanggil dapat melakukan script client-side sehingga apabila user hendak meninggalkan halaman setelah merubah tanpa menyimpannya, konfirmasi akan ditampilkan&lt;br /&gt;&lt;br /&gt;MonitorChanges(webControl)&lt;br /&gt;Method ini menerima webControl seperti TextBox, CheckBox, DropDownList, dan sebagainya)&lt;br /&gt;dan menambahkan script client-side yang diperlukan untuk memonitor nilai dari control. Jika nilai dari control berubah dan user akan meninggalkan halaman tanpa menyimpannya, maka akan muncul warning&lt;br /&gt;&lt;br /&gt;BypassModifiedMethod(webControl)&lt;br /&gt;Method ini digunakan untuk mengindikasikan agar Web Control tertentu tidak boleh menyebabkan konfirmasi ditampilkan. Umumnya digunakan pada Web Control Button dan LinkButton, yaitu WebControl yang menyebabkan postback, tetapi jika dilakukan perubahan, tidak perlu menampilkan konfirmasi&lt;br /&gt;&lt;br /&gt;Untuk menghasilkan client-side script yang benar, ada 3 method pada class Page yaitu&lt;br /&gt;1.RegisterClientScriptBlock(key,script)&lt;br /&gt;2.RegisterStartUpScript(key,script)&lt;br /&gt;3.RegisterArrayDeclaration(namaArray,nilaiArray)&lt;br /&gt;Method server-side ini menambahkan code client-side ke page ASP.NET yang markupnya dirender.&lt;br /&gt;&lt;br /&gt;Pada RegisterClientScriptBlock(key,script) dan RegisterStartUpScript(key,script), key secara unik mengidentifikasikan blok script yang akan di-inject dan script bernilai script yang sebenarnya ajan di-inject (harus ada markup yang benar, termasuk tag &amp;lt; script&amp;gt;  itu sendiri).Kedua method ini meng-inject(memasukkan) script dalam tag &amp;lt; form&amp;gt; , perbedaannya adalah  RegisterClientScriptBlock(key,script) memasukkan script sebelum Web controls dalam form, sedangkan RegisterStartUpScript(key,script) dimasukkan setelah markup Web controls.&lt;br /&gt;&lt;br /&gt;Contoh penggunaan RegisterArrayDeclaration(namaArray,nilaiArray)&lt;br /&gt;Page.RegisterArrayDeclaration("foo", "1");&lt;br /&gt;Page.RegisterArrayDeclaration("foo", "2");&lt;br /&gt;...&lt;br /&gt;Page.RegisterArrayDeclaration("foo", "n");&lt;br /&gt;&lt;br /&gt;Method ini membuat array client-side dengan nilai yang ditentukan. Code di atas digunakan untuk membuat array dengan nama foo dengan nilai 1 sampai n&lt;br /&gt;&lt;br /&gt;MonitorChanges(webControl) merupakan method dari ClientSidePage (turunan class Page) yang melakukan dua hal:&lt;br /&gt;1.Menambahkan client-side Web control ID ke client-side array(array ini mengambil nilai awal dari input control dan saat page exit digunakan untuk mengetahui apakah nilainya berubah)&lt;br /&gt;2.Memasukkan script client-code yang menyimpan nilai awal field dan menangani event onbeforeunload client-side&lt;br /&gt;&lt;br /&gt;Public Class ClientSidePage&lt;br /&gt;    Inherits System.Web.UI.Page&lt;br /&gt;    Public Sub MonitorChanges(ByVal wc As WebControl)&lt;br /&gt;       If wc Is Nothing Then Exit Sub&lt;br /&gt;       If TypeOf wc Is CheckBoxList OrElse TypeOf wc Is RadioButtonList Then&lt;br /&gt;            'Menambahkan elemen array untuk setiap item dalam checkbox/radiobutton list&lt;br /&gt;            For i As Integer = 0 To CType(wc, ListControl).Items.Count - 1&lt;br /&gt;                Page.RegisterArrayDeclaration("monitorChangesIDs", """" &amp; _&lt;br /&gt;                                       String.Concat(wc.ClientID, "_", i) &amp; """")&lt;br /&gt;                Page.RegisterArrayDeclaration("monitorChangesValues", "null")&lt;br /&gt;            Next&lt;br /&gt;       Else&lt;br /&gt;            Page.RegisterArrayDeclaration("monitorChangesIDs", _&lt;br /&gt;                                                    """" &amp; wc.ClientID &amp; """")&lt;br /&gt;            Page.RegisterArrayDeclaration("monitorChangesValues", "null")&lt;br /&gt;       End If&lt;br /&gt;       AssignMonitorChangeValuesOnPageLoad()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub AssignMonitorChangeValuesOnPageLoad()&lt;br /&gt;       If Not Page.IsStartupScriptRegistered("monitorChangesAssignment") Then&lt;br /&gt;            Page.RegisterStartupScript("monitorChangesAssignment", _&lt;br /&gt;               "&amp;lt; script language=""JavaScript""&amp;gt; " &amp; vbCrLf &amp; _&lt;br /&gt;               " assignInitialValuesForMonitorChanges();" &amp; vbCrLf &amp; _&lt;br /&gt;               "&amp;lt; /script&amp;gt; ")&lt;br /&gt;&lt;br /&gt;            Page.RegisterClientScriptBlock("monitorChangesAssignmentFunction", _&lt;br /&gt;               "&amp;lt; script language=""JavaScript""&amp;gt; " &amp; vbCrLf &amp; _&lt;br /&gt;               " function assignInitialValuesForMonitorChanges() {" &amp; vbCrLf &amp; _&lt;br /&gt;               "    for (var i = 0; i &amp;lt;  monitorChangesIDs.length; i++) {" &amp; vbCrLf &amp; _&lt;br /&gt;               "      var elem = document.getElementById(monitorChangesIDs[i]);" &amp; vbCrLf &amp; _&lt;br /&gt;               "      if (elem) if (elem.type == 'checkbox' || elem.type == 'radio') " &amp; _&lt;br /&gt;               "          monitorChangesValues[i] = elem.checked; " &amp; _&lt;br /&gt;               "      else monitorChangesValues[i] = elem.value;" &amp; vbCrLf &amp; _&lt;br /&gt;               "    }" &amp; vbCrLf &amp; _&lt;br /&gt;               " }" &amp; vbCrLf &amp; vbCrLf &amp; vbCrLf &amp; _&lt;br /&gt;               " var needToConfirm = true;" &amp; vbCrLf &amp; _&lt;br /&gt;               " window.onbeforeunload = confirmClose;" &amp; vbCrLf &amp; vbCrLf &amp; _&lt;br /&gt;               " function confirmClose() {" &amp; vbCrLf &amp; _&lt;br /&gt;               "    if (!needToConfirm) return;" &amp; vbCrLf &amp; _&lt;br /&gt;               "    for (var i = 0; i &amp;lt;  monitorChangesValues.length; i++) {" &amp; vbCrLf &amp; _&lt;br /&gt;               "      var elem = document.getElementById(monitorChangesIDs[i]);" &amp; vbCrLf &amp; _&lt;br /&gt;               "      if (elem) if (((elem.type == 'checkbox' || elem.type == 'radio') &amp;&amp; elem.checked != monitorChangesValues[i]) || (elem.type != 'checkbox' &amp;&amp; elem.type != 'radio' &amp;&amp; elem.value != monitorChangesValues[i])) { needToConfirm = false; setTimeout('resetFlag()', 750); return ""You have modified the data entry fields since last savings. If you leave this page, any changes will be lost. To save these changes, click Cancel to return to the page, and then Save the data.""; }" &amp; vbCrLf &amp; _&lt;br /&gt;               "    }" &amp; vbCrLf &amp; _&lt;br /&gt;               " }" &amp; vbCrLf &amp; vbCrLf &amp; _&lt;br /&gt;               " function resetFlag() { needToConfirm = true; } " &amp; vbCrLf &amp; _&lt;br /&gt;               "&amp;lt; /script&amp;gt; ")&lt;br /&gt;       End If&lt;br /&gt;    End Sub&lt;br /&gt;    ...&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;Pengecualian Button agar tidak prompt ke user&lt;br /&gt;Public Class ClientSidePage&lt;br /&gt;    Inherits System.Web.UI.Page&lt;br /&gt;    ...&lt;br /&gt;    Public Sub BypassModifiedMethod(ByVal wc As WebControl)&lt;br /&gt;       wc.Attributes("onclick") = "javascript:" &amp; GetBypassModifiedMethodScript()&lt;br /&gt;    End Sub&lt;br /&gt;    Public Function GetBypassModifiedMethodScript() As String&lt;br /&gt;       Return "needToConfirm = false;"&lt;br /&gt;    End Function&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;Penggunaan class ClientSidePage pada ASP.NET WebPage&lt;br /&gt;Public Class WebForm1&lt;br /&gt;    Inherits ClientSidePage&lt;br /&gt;    Private Sub Page_Load(ByVal sender As System.Object, _&lt;br /&gt;                   ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        'Memonitor perubahan pada Web control yang nilainya perlu diamati&lt;br /&gt;        MonitorChanges(name)&lt;br /&gt;        MonitorChanges(useASPNET)&lt;br /&gt;        MonitorChanges(favColor)&lt;br /&gt;        MonitorChanges(musicLikes)&lt;br /&gt;        MonitorChanges(favSport)&lt;br /&gt;        'Untuk control seperti button save yang menyebabkan postback yang TIDAK BOLEH  &lt;br /&gt;        'prompt ke user, panggil method  BypassModifiedMethod&lt;br /&gt;        BypassModifiedMethod(btnSave)&lt;br /&gt;    End Sub&lt;br /&gt;    ...&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;Mematikan prompt untuk AutoPostback Web Control &lt;br /&gt;Contoh :&lt;br /&gt;DropDownListInstance.Attributes("onchange") = GetBypassModifiedMethodScript()&lt;br /&gt;&lt;br /&gt;Selamat mencoba!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10824654-111796699932860786?l=kuliah-online.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kuliah-online.blogspot.com/feeds/111796699932860786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10824654&amp;postID=111796699932860786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111796699932860786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10824654/posts/default/111796699932860786'/><link rel='alternate' type='text/html' href='http://kuliah-online.blogspot.com/2005/06/prompt-user-agar-save-saat.html' title='Prompt User agar Save saat meninggalkan halaman/page'/><author><name>Esther (202114538)</name><uri>http://www.blogger.com/profile/11002765242365101383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10824654.post-111795586782903277</id><published>2005-06-05T00:16:00.000-07:00</published><updated>2005-06-05T00:17:47.833-07:00</updated><title type='text'>Aplikasi Web Integrated Quiz dengan Graphical Score Report</title><content type='html'>Aplikasi kuis ini digunakan untuk memproses pertanyaan multiple choice seperti IQ kuis. Database &lt;br /&gt;yang digunakan adalah file XML. Pemegang data antar halaman adalah session bag(Viewstate[ data ]).&lt;br /&gt;Ada 3 panel yaitu panel kuis(quiz panel), panel review dan panel laporan skor(score report). Di laporan skor, progress bar control dibuat&lt;br /&gt;sendiri.&lt;br /&gt;Database yang digunakan adalah sebagai berikut:&lt;br /&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&amp;lt;quiz&amp;gt;&lt;br /&gt;  &amp;lt;mc&amp;gt;&lt;br /&gt;     &amp;lt;question correctAnsNo='1'&amp;gt;Which of the fol....?&lt;br /&gt;     &amp;lt;/question&amp;gt;&lt;br /&gt;     &amp;lt;answer correct='No' &amp;gt;&amp;lt;![CDATA[  &amp;lt;img src="x...]]&amp;gt;&lt;br /&gt;     &amp;lt;/answer&amp;gt;&lt;br /&gt;     &amp;lt;answer correct='No' &amp;gt;&amp;lt;![CDATA[  &amp;lt;img src="x...]]&amp;gt;&lt;br /&gt;     &amp;lt;/answer&amp;gt;&lt;br /&gt;     &amp;lt;answer correct='Yes'&amp;gt;&amp;lt;![CDATA[  &amp;lt;img src="x...]]&amp;gt;&lt;br /&gt;     &amp;lt;/answer&amp;gt;&lt;br /&gt;     &amp;lt;answer correct='No' &amp;gt;&amp;lt;![CDATA[  I Don't Know  ]]&amp;gt;&lt;br /&gt;     &amp;lt;/answer&amp;gt;&lt;br /&gt;  &amp;lt;/mc&amp;gt;&lt;br /&gt;&amp;lt;/quiz&amp;gt;&lt;br /&gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;Quiz user control mempunyai 4 metode:&lt;br /&gt;&lt;br /&gt;ShowQuestion(int _qNo)&lt;br /&gt;Review()&lt;br /&gt;ReAnswer()&lt;br /&gt;ShowResult()&lt;br /&gt;&lt;br /&gt;Pertama kali,di bawah ini adalah beberapa variabel yang digunakan :&lt;br /&gt;    //membuat xmlDocument holder&lt;br /&gt;    XmlDocument doc=new XmlDocument();&lt;br /&gt;    //membuat empty navigator dengan tujuan untuk navigasi&lt;br /&gt;    //di XMLDocument&lt;br /&gt;    XPathNavigator nav;&lt;br /&gt;    //untuk loop&lt;br /&gt;    XPathNodeIterator nodeItrator;   &lt;br /&gt;    //memegang jawaban user&lt;br /&gt;    ArrayList historyALst=new ArrayList();&lt;br /&gt;    //memegang pertanyaan yang di-bookmark&lt;br /&gt;    ArrayList bookmarkLst=new ArrayList();&lt;br /&gt;    digunakan untuk mengganti index 1 dengan A dan 2 dengan B&lt;br /&gt;    char[] perfix=new char[10] {'A','B','C','D','F','G','H','J','K','L'};   &lt;br /&gt;    int currentQNo; //nomer pertanyaan sekarang&lt;br /&gt;    int totalQNumber; // totral pertanyaan kuis&lt;br /&gt;    int totalMarkedQuestion; // total pertanyaan yang ditandai&lt;br /&gt;        int currentMarkedQuestion; //nomer pertanyaan yang ditandai sekarang&lt;br /&gt;        int markLoop; &lt;br /&gt;    DateTime startTime; // waktu kuis dimulai&lt;br /&gt;    TimeSpan spentTime;&lt;br /&gt;    bool isReview; //untuk mengindikasikan status pertanyaan sekarang&lt;br /&gt;    bool wasChecked=false; //ditandai sebagai Q yang bertanda dalam Review report.&lt;br /&gt;Code pada page load:    &lt;br /&gt;    private void Page_Load(object sender, System.EventArgs e)&lt;br /&gt;    {   &lt;br /&gt;        //load database XML &lt;br /&gt;        doc.Load(Server.MapPath("quiz.xml"));&lt;br /&gt;        //menciptakan navigator untuk load file xml &lt;br /&gt;        nav=doc.CreateNavigator();&lt;br /&gt;           &lt;br /&gt;        //Apakah kuis baru??&lt;br /&gt;        if(!IsPostBack)&lt;br /&gt;        {&lt;br /&gt;            //Ya&lt;br /&gt;            quizPanal.Visible=true;// tampilkan layar kuis.&lt;br /&gt;               &lt;br /&gt;            //mencatat waktu mulai&lt;br /&gt;            startTime=DateTime.Now;&lt;br /&gt;            currentQNo=1;&lt;br /&gt;            //menhitung dan mencatat Total nomer pertanyaan &lt;br /&gt;            //menggunakan XmlDocumentnavigator dengan passing&lt;br /&gt;            //XPath string dari node pertanyaan(question) ( &amp;lt;mc&amp;gt;...&amp;lt;/mc&amp;gt;)&lt;br /&gt;                totalQNumber=nav.Select("//mc").Count;&lt;br /&gt;                //simpan data pada Session Viewstate&lt;br /&gt;            ViewState["startTime"]=startTime;&lt;br /&gt;            ViewState["totalQNumber"]=totalQNumber;&lt;br /&gt;            ViewState["currentQNo"]=currentQNo;&lt;br /&gt;            ViewState["score"]=0;&lt;br /&gt;            //pergi ke pertanyaan yang pertama &lt;br /&gt;            ShowQuestion(currentQNo);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;Render pertanyaan multiple choice yang khusus. metode ini mengambil nomer pertanyaan sebagai &lt;br /&gt;parameter, dan menggunakan nomer ini di dalam string XPath yang berbeda untuk&lt;br /&gt;navigasi diantara node XML&lt;br /&gt;    public void ShowQuestion(int _qNo)&lt;br /&gt;    {&lt;br /&gt;        quizPanal.Visible=true;&lt;br /&gt;        answersRBL.Items.Clear();&lt;br /&gt;        //menerima Data dari session and menghitung waktu yang telah digunakan&lt;br /&gt;        startTime=(DateTime)ViewState["startTime"];&lt;br /&gt;        totalQNumber=Convert.ToInt32(ViewState["totalQNumber"]);&lt;br /&gt;        spentTime=DateTime.Now.Subtract(startTime);&lt;br /&gt;        //XPath String dari node pertanyaan yang sekarang&lt;br /&gt;        //quiz/mc[current question number]&lt;br /&gt;        string xPath="quiz/mc["+_qNo.ToString()+"]";&lt;br /&gt;       &lt;br /&gt;        int counter=1;&lt;br /&gt;        string str;&lt;br /&gt;        nodeItrator=nav.Select(xPath+"/question");&lt;br /&gt;        nodeItrator.MoveNext();&lt;br /&gt;        //menampilkan beberapa data&lt;br /&gt;        qNoLbl.Text="Q: "+_qNo.ToString()+" / "+totalQNumber.ToString();&lt;br /&gt;        questionLbl.Text=_qNo.ToString()+": "+nodeItrator.Current.Value;&lt;br /&gt;        spentTimeLbl.Text=spentTime.Minutes.ToString()&lt;br /&gt;                   +"~"+spentTime.Seconds.ToString();&lt;br /&gt;&lt;br /&gt;        nodeItrator=nav.Select(xPath+"/answer");&lt;br /&gt;       &lt;br /&gt;        while(nodeItrator.MoveNext())&lt;br /&gt;        {   &lt;br /&gt;            str=counter.ToString();&lt;br /&gt;            answersRBL.Items.Add(new ListItem(perfix[counter-1].ToString()&lt;br /&gt;                           +":"+nodeItrator.Current.Value,str));&lt;br /&gt;               &lt;br /&gt;            if(nodeItrator.Current.GetAttribute("correct","")=="Yes")&lt;br /&gt;            {&lt;br /&gt;                ViewState["correctAnswer"]=counter;&lt;br /&gt;            }&lt;br /&gt;            counter++;//next&lt;br /&gt;        }  &lt;br /&gt;        &lt;br /&gt;Setelah itu, user review history jawaban dan diiji
