A = m a s t e r pernyataan berikut yang tidak benar adalah

Perbaikan data BC 1.1 atau Redress adalah Perbaikan yang dilakukan terhadap kesalahan pada data BC 1.1 yang telah dilaporkan pada saat kedatangan atau keberangkatan sarana pengangkut. Perbaikan data BC 1.1 dilakukan dalam hal :

  • terdapat kesalahan mengenai nomor, merek, ukuran dan jenis kemasan dan/atau peti kemas
  • terdapat kesalahan mengenai jumlah kemasan dan/atau petikemas serta jumlah barang curah;
  • terdapat kesalahan nama consignee dan/atau notify party pada Manifes
  • diperlukan penggabungan beberapa pos menjadi satu pos, dengan syarat: 1] pos BC 1.1 yang akan digabungkan berasal dari BC 1.1 yang sama, 2] nama dan alamat shipper/supplier, consignee, notify address/notify party, dan pelabuhan pemuatan harus sama untuk masing-masing pos yang akan digabungkan, 3] telah diterbitkan revisi Bill of Lading/AirwayBill
  • terdapat kesalahan data lainnya atau perubahan pos manifes

Perbaikan data BC 1.1 ini diperlukan  karena Data yang telah masuk ke dalam sistem Bea dan Cukai akan menjadi acuan bagi petugas Bea dan Cukai dalam proses pengeluaran barang impor. Data BC 1.1 yang ada di sistem PDE kepabeanan harus sesuai dengan kondisi sebenarnya dari barang tersebut. Kesalahan pada data BC 1.1 akan mengakibatkan proses pengeluaran barang impor tidak dapat dilakukan. Oleh sebab itu diperlukan perubahan data yang telah dilaporkan oleh pihak pengangkut menjadi data yang sebenarnya dengan cara pengajuan perbaikan data BC 1.1

Yang dapat mengajukan perbaikan data BC 1.1 adalah pengangkut atau pihak-pihak lain yang bertanggung jawab atas barang tersebut dengan dibuktikan oleh dokumen-dokumen pendukung yang cukup. Untuk perubahan consignee dan/atau notify party dan berdasarkan Surat Dirjen Bea dan Cukai Nomor S-85/BC/2005 tanggal 28 Januari 2005 maka permohonan perubahan harus diajukan oleh pengangkut. Dalam hal berdasarkan penelitian pejabat Bea dan Cukai menunjuk bahwa perubahan tidak dapat dilakukan  karena kurangnya bukti yang kuat maka permohonan dapat ditolak

Berikut kami sertakan jenis-jenis perbaikan data BC 1.1 dan dokumen persyaratan yang harus dipenuhi dalam pengajuan permohonannya.

No

Jenis Perbaikan BC 1.1 [Redress Inward Manifest]

PERSYARATAN KELENGKAPAN DOKUMEN

1

Nama consignee dan/atau notify party

  1. Surat Permohonan dari pengangkut [pihak yg submitee manifes]
  2. House BL / AWB dan master B/L berupa second B/L / copy original B/L / PrintOut Telex Release Bukan fotocopy yg di endors
  3. Copy Invoice/Packing List
  4. Copy Delivery Order/sales contract
  5. Surat Pernyataan [bermaterai] tentang kepemilikan barang, kesanggupan untuk tidak akan melakukan tuntutan hukum. [dari consignee awal]
  6. Surat Pernyataan [bermaterai] tentang kepemilikan barang, kesanggupan akan membebaskan tuntutan hukum dan akan bertanggungjawab penuh atas redress tersebut. [dari consignee baru]
  7. Surat tugas dari atasan dan foto copy identits dari pihak yang di BAW [jika BAW diperlukan]
  8. Print out komunikasi e-mail dari semua pihak yang terkait atas shipment barang impor tersebut.
  9. Surat pernyataan [bila diperlukan] tentang terjadinya kesalahan dari pihak yang melakukannya.

10. Statement letter dari pihak shipper

11. NIK, API/API-U, SIUP dan TDP

12. Berkas lain yang diperlukan [SKEP Kaber & Fasilitas KITE]

2

Alamat  consignee dan/atau notify party

  1. Surat Permohonan dari pengangkut [pihak yg submitee manifes ]
  2. House BL / AWB dan master B/L berupa second B/L / copy original B/L / PrintOut Telex Release Bukan fotocopy yg di endors
  3. Copy Invoice/Packing List
  4. NIK, API/API-U, SIUP dan TDP
  5. Berkas lain yang diperlukan [SKEP Kaber & Fasilitas KITE]
4

Shipper, nomor B/L, tanggal B/L, jumlah kemasan, volume, bruto, netto, jumlah kontainer, nomor kontainer, ukuran kontainer, uraian barang, marking, jenis muatan dan kode HS serta nama kapal

  1. Surat Permohonan dari pengangkut [pihak ug submitee manifest]
  2.  House BL / AWB dan master B/L berupa second B/L / copy original B/L / PrintOut Telex Release Bukan fotocopy yg di endors
  3. Copy Invoice/Packing List
  4. Copy Form D/E/LS
8

Penambahan pos dan pemecahan pos

  1. Surat Permohonan dari pengangkut [pihak ug submitee manifest]
  2. Semua House BL / AWB dan master B/L berupa second B/L / copy original B/L / PrintOut Telex Release Bukan fotocopy yg di endors, sejumlah pos yang akan ditambah dan dipecah.
  3. Soft copy [flas disk] yang berisi flat file dalam bentuk notepad sejumlah pos yang ditambahkan dan dipecahkan
  4. Surat Pemberitahuan Selisih Bongkar [NOREC]
  5. Copy Invoice/Packing List
  6. Berita Acara Wawancara [BAW] jika diperlukan
9

Pemindahan kelompok pos dan penutupan pos

  1. Surat Permohonan dari pengangkut [pihak ug submitee manifest]
  2. Surat pernyataan diatas materai dari pihak terkait
  3. Berita Acara Wawancara [BAW] jika diperlukan
No

Jenis Perbaikan BC 1.1 [Redress Outward Manifest]

PERSYARATAN KELENGKAPAN DOKUMEN

1

Nama, alamat shipper, consignee dan/atau notify party, nomor B/L, tanggal B/L, jumlah kemasan, volume, bruto, netto, jumlah kontainer, nomor kontainer, ukuran kontainer, uraian barang, marking, jenis muatan dan kode HS serta nama kapal

  1. Surat Permohonan dari pengangkut [pihak yg submitee manifes]
  2. House BL / AWB dan master B/L berupa second B/L / copy original B/L / PrintOut Telex Release Bukan fotocopy yg di endors
  3. Copy Invoice/Packing List
  4. Copy NPE, PKBE [jika konsolidator] yang ada tanda tangan petugas gate dan hanggar.
  5. Hardcopy PEB dicocokan dengan soft copy di CEISA Ekspor. Apabila tidak sama maka disarankan untuk notul di sie. Ekspor terlebih dahulu.
2

Penambahan pos dan pemecahan pos

  1. Surat Permohonan dari pengangkut [pihak yg submitee manifest]
  2. House BL / AWB dan master B/L berupa second B/L / copy original B/L / PrintOut Telex Release Bukan fotocopy yg di endors sejumlah pos yang akan ditambah dan dipecah.
  3. Soft copy [flas disk] yang berisi flat file dalam bentuk notepad sejumlah pos yang ditambahkan dan dipecahkan
  4. Surat pernyataan diatas materai dari pelayaran bahwa kontainer benar-benar termuat di kapal dan dibawa ke negara tujuan.
  5. Surat pernyataan dari eksportir bahwa barang tersebut sudah di ekspor.
  6. Copy Invoice/Packing List
  7. Copy NPE, PKBE [jika konsolidator] yang ada tanda tangan petugas gate dan hanggar.
  8. Hardcopy PEB dicocokan dengan soft copy di CEISA Ekspor. Apabila tidak sama maka dianjurkan notul di sie. Ekspor dahulu
  9. Berita Acara Wawancara [BAW] jika diperlukan
3

Pemindahan kelompok pos dan penutupan pos

  1. Surat Permohonan dari pengangkut [pihak ug submitee manifest]
  2. Surat pernyataan diatas materai dari pihak terkait tentang alasan.
  3. Berita Acara Wawancara [BAW] jika diperlukan. Bahwa pemindahan kelompok pos tidak bisa dilakukan apabila sudah disending PIB-nya [belum tertutup pos-nya].

  • Artikel
  • 16 menit untuk membaca

oleh Scott Mitchell

Memeriksa cara memanggil metode, mengatur properti, dll. Halaman Master dari kode di Halaman Konten.

Pengantar

Selama lima tutorial terakhir, kita telah melihat cara membuat halaman master, menentukan wilayah konten, mengikat halaman ASP.NET ke halaman master, dan menentukan konten khusus halaman. Saat pengunjung meminta halaman konten tertentu, markup konten dan halaman master menyatu saat runtime, menghasilkan penyajian hierarki kontrol terpadu. Oleh karena itu, kita telah melihat salah satu cara di mana halaman master dan salah satu halaman kontennya dapat berinteraksi: halaman konten mengeja markup untuk ditransfusikan ke kontrol ContentPlaceHolder halaman master.

Apa yang belum kita periksa adalah bagaimana halaman master dan halaman konten dapat berinteraksi secara terprogram. Selain menentukan markup untuk kontrol ContentPlaceHolder halaman master, halaman konten juga dapat menetapkan nilai ke properti publik halaman masternya dan memanggil metode publiknya. Demikian pula, halaman master dapat berinteraksi dengan halaman kontennya. Meskipun interaksi terprogram antara halaman master dan konten kurang umum daripada interaksi antara markup deklaratif mereka, ada banyak skenario di mana interaksi terprogram tersebut diperlukan.

Dalam tutorial ini kita memeriksa bagaimana halaman konten dapat berinteraksi secara terprogram dengan halaman masternya; dalam tutorial berikutnya kita akan melihat bagaimana halaman master dapat berinteraksi dengan halaman kontennya.

Contoh Interaksi Terprogram Antara Halaman Konten dan Halaman Master-nya

Ketika wilayah tertentu dari halaman perlu dikonfigurasi berdasarkan halaman demi halaman, kami menggunakan kontrol ContentPlaceHolder. Tetapi bagaimana dengan situasi di mana sebagian besar halaman perlu memancarkan output tertentu, tetapi sejumlah kecil halaman perlu menyesuaikannya untuk menunjukkan sesuatu yang lain? Salah satu contoh seperti itu, yang kami periksa di Tutorial Beberapa ContentPlaceHolders dan Konten Default , melibatkan menampilkan antarmuka login di setiap halaman. Meskipun sebagian besar halaman harus menyertakan antarmuka login, halaman tersebut harus ditekan untuk beberapa halaman, seperti: halaman login utama [Login.aspx]; halaman Buat Akun; dan halaman lain yang hanya dapat diakses oleh pengguna yang diautentikasi. Tutorial Beberapa ContentPlaceHolders dan Konten Default menunjukkan cara menentukan konten default untuk ContentPlaceHolder di halaman master lalu cara menggantinya di halaman tersebut di mana konten default tidak diinginkan.

Opsi lain adalah membuat properti atau metode publik dalam halaman master yang menunjukkan apakah akan menampilkan atau menyembunyikan antarmuka login. Misalnya, halaman master mungkin menyertakan properti publik bernama ShowLoginUI yang nilainya digunakan untuk mengatur Visible properti kontrol Masuk di halaman master. Halaman konten tempat antarmuka pengguna masuk harus ditekan kemudian dapat secara terprogram mengatur properti ke ShowLoginUIFalse.

Mungkin contoh paling umum dari konten dan interaksi halaman master terjadi ketika data yang ditampilkan di halaman master perlu disegarkan setelah beberapa tindakan ditranspitasi di halaman konten. Pertimbangkan halaman master yang menyertakan GridView yang menampilkan lima rekaman terbaru yang ditambahkan dari tabel database tertentu, dan bahwa salah satu halaman kontennya menyertakan antarmuka untuk menambahkan rekaman baru ke tabel yang sama.

Saat pengguna mengunjungi halaman untuk menambahkan rekaman baru, dia melihat lima rekaman yang terakhir ditambahkan yang ditampilkan di halaman master. Setelah mengisi nilai untuk kolom rekaman baru, dia mengirimkan formulir. Dengan asumsi bahwa GridView di halaman master memiliki properti yang EnableViewState diatur ke True [default], kontennya dimuat ulang dari status tampilan dan, akibatnya, lima rekaman yang sama ditampilkan meskipun rekaman yang lebih baru baru baru ditambahkan ke database. Ini mungkin membingungkan pengguna.

Catatan

Bahkan jika Anda menonaktifkan status tampilan GridView sehingga terikat kembali ke sumber data yang mendasar pada setiap postback, itu masih tidak akan menampilkan rekaman yang baru ditambahkan karena data terikat ke GridView sebelumnya dalam siklus hidup halaman daripada saat rekaman baru ditambahkan ke database.

Untuk memperbaiki ini sehingga rekaman yang baru saja ditambahkan ditampilkan di GridView halaman master pada postback, kita perlu menginstruksikan GridView untuk mengikat kembali ke sumber datanya setelah rekaman baru ditambahkan ke database. Ini memerlukan interaksi antara konten dan halaman master karena antarmuka untuk menambahkan rekaman baru [dan penanganan aktivitasnya] ada di halaman konten tetapi GridView yang perlu disegarkan ada di halaman master.

Karena me-refresh tampilan halaman master dari penanganan aktivitas di halaman konten adalah salah satu kebutuhan paling umum untuk konten dan interaksi halaman master, mari kita jelajahi topik ini secara lebih rinci. Unduhan untuk tutorial ini mencakup database Microsoft SQL Server 2005 Express Edition bernama NORTHWIND.MDF di folder situs webApp_Data. Database Northwind menyimpan informasi produk, karyawan, dan penjualan untuk perusahaan fiktif, Northwind Traders.

Langkah 1 berjalan melalui menampilkan lima produk yang terakhir ditambahkan di GridView di halaman master. Langkah 2 membuat halaman konten untuk menambahkan produk baru. Langkah 3 melihat cara membuat properti dan metode publik di halaman master, dan Langkah 4 menggambarkan cara berinteraksi secara terprogram dengan properti dan metode ini dari halaman konten.

Catatan

Tutorial ini tidak mempelajari secara spesifik tentang bekerja dengan data dalam ASP.NET. Langkah-langkah untuk menyiapkan halaman master untuk menampilkan data dan halaman konten untuk menyisipkan data selesai, namun mudah. Untuk tampilan yang lebih mendalam dalam menampilkan dan menyisipkan data dan menggunakan kontrol SqlDataSource dan GridView, lihat sumber daya di bagian Bacaan Lebih Lanjut di akhir tutorial ini.

Langkah 1: Menampilkan Lima Produk yang Terakhir Ditambahkan di Halaman Master

Buka halaman master Site.master dan tambahkan Label dan kontrol GridView ke leftContent

. Hapus properti Label Text , atur propertinya EnableViewState ke False, dan propertinya ID ke GridMessage; atur properti GridView ID ke RecentProducts. Selanjutnya, dari Perancang, perluas tag pintar GridView dan pilih untuk mengikatnya ke sumber data baru. Ini meluncurkan wizard Konfigurasi Sumber Data. Karena database Northwind dalam App_Data folder adalah database Microsoft SQL Server, pilih untuk membuat SqlDataSource dengan memilih [lihat Gambar 1]; beri nama SqlDataSource RecentProductsDataSource.

Gambar 01: Ikat GridView ke Kontrol SqlDataSource Bernama RecentProductsDataSource [Klik untuk melihat gambar ukuran penuh]

Langkah berikutnya meminta kami untuk menentukan database apa yang akan disambungkan. NORTHWIND.MDF Pilih file database dari daftar drop-down dan klik Berikutnya. Karena ini adalah pertama kalinya kita menggunakan database ini, wizard akan menawarkan untuk menyimpan string koneksi di Web.config. Minta string koneksi disimpan menggunakan nama NorthwindConnectionString.

Gambar 02: Menyambungkan ke Database Northwind [Klik untuk melihat gambar ukuran penuh]

Wizard Konfigurasi Sumber Data menyediakan dua cara untuk menentukan kueri yang digunakan untuk mengambil data:

  • Dengan menentukan pernyataan SQL kustom atau prosedur tersimpan, atau
  • Dengan memilih tabel atau tampilan lalu menentukan kolom yang akan dikembalikan

Karena kita ingin mengembalikan hanya lima produk yang terakhir ditambahkan, kita perlu menentukan pernyataan SQL kustom. Gunakan kueri berikut SELECT :

SELECT TOP 5 ProductName, UnitPrice FROM Products ORDER BY ProductID DESC

Kata TOP 5 kunci hanya mengembalikan lima rekaman pertama dari kueri. Kunci Products primer tabel, ProductID, adalah IDENTITY kolom, yang meyakinkan kita bahwa setiap produk baru yang ditambahkan ke tabel akan memiliki nilai yang lebih besar dari entri sebelumnya. Oleh karena itu, mengurutkan hasil menurut ProductID dalam urutan menuram mengembalikan produk yang dimulai dengan yang baru dibuat.

Gambar 03: Mengembalikan Lima Produk yang Terakhir Ditambahkan [Klik untuk melihat gambar ukuran penuh]

Setelah menyelesaikan wizard, Visual Studio menghasilkan dua BoundFields untuk GridView untuk menampilkan ProductName bidang dan UnitPrice yang dikembalikan dari database. Pada titik ini markup deklaratif halaman master Anda harus menyertakan markup yang mirip dengan yang berikut ini:

Seperti yang Anda lihat, markup berisi: kontrol Label Web [GridMessage]; GridView RecentProducts, dengan dua BoundFields; dan kontrol SqlDataSource yang mengembalikan lima produk yang terakhir ditambahkan.

Dengan GridView ini dibuat dan kontrol SqlDataSource-nya dikonfigurasi, kunjungi situs web melalui browser. Seperti yang ditunjukkan Gambar 4, Anda akan melihat kisi di sudut kiri bawah yang mencantumkan lima produk yang terakhir ditambahkan.

Gambar 04: GridView Menampilkan Lima Produk yang Terakhir Ditambahkan [Klik untuk melihat gambar ukuran penuh]

Catatan

Jangan ragu untuk membersihkan penampilan GridView. Beberapa saran termasuk memformat nilai yang ditampilkan UnitPrice sebagai mata uang dan menggunakan warna latar belakang dan font untuk meningkatkan tampilan kisi.

Langkah 2: Membuat Halaman Konten untuk Menambahkan Produk Baru

Tugas kami berikutnya adalah membuat halaman konten tempat pengguna dapat menambahkan produk baru ke Products tabel. Tambahkan halaman konten baru ke Admin folder bernama AddProduct.aspx, pastikan untuk mengikatnya ke Site.master halaman master. Gambar 5 memperlihatkan Penjelajah Solusi setelah halaman ini ditambahkan ke situs web.

Gambar 05: Tambahkan Halaman ASP.NET Baru ke Admin Folder [Klik untuk melihat gambar ukuran penuh]

Ingat bahwa dalam Menentukan Judul, Tag Meta, dan Header HTML Lainnya dalam tutorial Halaman Master , kami membuat kelas halaman dasar kustom bernama BasePage yang menghasilkan judul halaman jika tidak diatur secara eksplisit. Buka kelas kode di AddProduct.aspx belakang halaman dan dapatkan dari BasePage [bukan dari System.Web.UI.Page].

Terakhir, perbarui Web.sitemap file untuk menyertakan entri untuk pelajaran ini. Tambahkan markup berikut di bawah untuk pelajaran Masalah Penamaan ID Kontrol:

Seperti yang ditunjukkan pada Gambar 6, penambahan elemen ini tercermin dalam daftar Pelajaran.

Kembali ke AddProduct.aspx. Di kontrol Konten untuk MainContent ContentPlaceHolder, tambahkan kontrol DetailsView dan beri nama NewProduct. Ikat DetailsView ke kontrol SqlDataSource baru bernama NewProductDataSource. Seperti SqlDataSource di Langkah 1, konfigurasikan wizard sehingga menggunakan database Northwind dan pilih untuk menentukan pernyataan SQL kustom. Karena DetailsView akan digunakan untuk menambahkan item ke database, kita perlu menentukan SELECT pernyataan dan INSERT pernyataan. Gunakan kueri berikut SELECT :

SELECT ProductName, UnitPrice FROM Products

Kemudian, dari tab INSERT, tambahkan pernyataan berikut INSERT :

INSERT INTO Products[ProductName, UnitPrice] VALUES[@ProductName, @UnitPrice]

Setelah menyelesaikan wizard, buka tag pintar DetailsView dan centang kotak centang "Aktifkan Penyisipan". Ini menambahkan CommandField ke DetailsView dengan propertinya ShowInsertButton diatur ke True. Karena DetailsView ini hanya akan digunakan untuk menyisipkan data, atur properti DetailsView DefaultMode ke Insert.

Hanya itu saja! Mari kita uji halaman ini. Kunjungi AddProduct.aspx melalui browser, masukkan nama dan harga [lihat Gambar 6].

Gambar 06: Tambahkan Produk Baru ke Database [Klik untuk melihat gambar ukuran penuh]

Setelah mengetikkan nama dan harga untuk produk baru Anda, klik tombol Sisipkan. Ini menyebabkan formulir untuk postback. Pada postback, pernyataan kontrol INSERT SqlDataSource dijalankan; dua parameternya diisi dengan nilai yang dimasukkan pengguna di dua kontrol TextBox DetailsView. Sayangnya, tidak ada umpan balik visual bahwa sisipan telah terjadi. Akan lebih baik untuk menampilkan pesan, mengonfirmasi bahwa rekaman baru telah ditambahkan. Saya meninggalkan ini sebagai latihan untuk pembaca. Selain itu, setelah menambahkan rekaman baru dari DetailsView GridView di halaman master masih menampilkan lima rekaman yang sama seperti sebelumnya; ini tidak termasuk rekaman yang baru ditambahkan. Kami akan memeriksa cara memperbaikinya dalam langkah-langkah mendatang.

Catatan

Selain menambahkan beberapa bentuk umpan balik visual bahwa sisipan telah berhasil, saya akan mendorong Anda untuk juga memperbarui antarmuka penyisipan DetailsView untuk menyertakan validasi. Saat ini, tidak ada validasi. Jika pengguna memasukkan nilai yang tidak valid untuk UnitPrice bidang, seperti "Terlalu mahal," pengecualian akan dilemparkan pada postback ketika sistem mencoba mengonversi string tersebut menjadi desimal. Untuk informasi selengkapnya tentang menyesuaikan antarmuka penyisipan, lihat tutorial Menyesuaikan Antarmuka Modifikasi Data dari seri tutorial Bekerja dengan Data saya.

Langkah 3: Membuat Properti dan Metode Publik di Halaman Master

Di Langkah 1 kami menambahkan kontrol Web Label bernama GridMessage di atas GridView di halaman master. Label ini dimaksudkan untuk menampilkan pesan secara opsional. Misalnya, setelah menambahkan rekaman baru ke Products tabel, kami mungkin ingin menampilkan pesan yang berbunyi: "ProductName telah ditambahkan ke database." Daripada mengkodekan teks secara permanen untuk Label ini di halaman master, kita mungkin ingin pesan dapat disesuaikan oleh halaman konten.

Karena kontrol Label diimplementasikan sebagai variabel anggota yang dilindungi dalam halaman master, kontrol label tidak dapat diakses langsung dari halaman konten. Untuk bekerja dengan Label dalam halaman master dari halaman konten [atau, untuk hal ini, kontrol Web apa pun di halaman master] kita perlu membuat properti publik di halaman master yang mengekspos kontrol Web atau berfungsi sebagai proksi di mana salah satu propertinya dapat diakses. Tambahkan sintaks berikut ke kelas code-behind halaman master untuk mengekspos properti Label Text :

Public Property GridMessageText[] As String Get Return GridMessage.Text End Get Set[ByVal Value As String] GridMessage.Text = Value End Set End Property

Saat rekaman baru ditambahkan ke Products tabel dari halaman RecentProducts konten, GridView di halaman master perlu digabungkan kembali ke sumber data yang mendasarnya. Untuk mengikat kembali GridView, panggil metodenya DataBind . Karena GridView di halaman master tidak dapat diakses secara terprogram ke halaman konten, kita perlu membuat metode publik di halaman master yang, ketika dipanggil, mengikat kembali data ke GridView. Tambahkan metode berikut ke kelas kode di belakang halaman master:

Public Sub RefreshRecentProductsGrid[] RecentProducts.DataBind[] End Sub

GridMessageText Dengan properti dan RefreshRecentProductsGrid metode di tempat, halaman konten apa pun dapat mengatur atau membaca nilai GridMessage properti Label Text secara terprogram atau mengikat kembali data ke RecentProducts GridView. Langkah 4 memeriksa cara mengakses properti dan metode publik halaman master dari halaman konten.

Catatan

Jangan lupa untuk menandai properti dan metode halaman master sebagai Public. Jika Anda tidak secara eksplisit menunjukkan properti dan metode ini sebagai Public, properti dan metode tersebut tidak akan dapat diakses dari halaman konten.

Langkah 4: Memanggil Anggota Publik Halaman Master dari Halaman Konten

Sekarang setelah halaman master memiliki properti dan metode publik yang diperlukan, kami siap untuk memanggil properti dan metode ini dari AddProduct.aspx halaman konten. Secara khusus, kita perlu mengatur properti halaman GridMessageText master dan memanggil metodenya RefreshRecentProductsGrid setelah produk baru ditambahkan ke database. Semua data ASP.NET Web mengontrol peristiwa kebakaran segera sebelum dan sesudah menyelesaikan berbagai tugas, yang memudahkan pengembang halaman untuk mengambil beberapa tindakan terprogram baik sebelum atau sesudah tugas. Misalnya, ketika pengguna akhir mengeklik tombol Sisipkan DetailsView, pada postback DetailsView menaikkan peristiwanya ItemInserting sebelum memulai alur kerja penyisipan. Kemudian menyisipkan rekaman ke dalam database. Setelah itu, DetailsView menaikkan peristiwanya ItemInserted . Oleh karena itu, untuk bekerja dengan halaman master setelah produk baru ditambahkan, buat penanganan aktivitas untuk peristiwa DetailsView ItemInserted .

Ada dua cara agar halaman konten dapat berinteraksi secara terprogram dengan halaman masternya:

  • Page.Master Menggunakan properti , yang mengembalikan referensi yang ditik secara longgar ke halaman master, atau
  • Tentukan jenis halaman master halaman atau jalur file melalui @MasterType direktif; ini secara otomatis menambahkan properti yang sangat ditik ke halaman bernama Master.

Mari kita periksa kedua pendekatan.

Menggunakan Properti Yang DititikPage.MasterLonggar

Semua halaman web ASP.NET harus berasal dari Page kelas , yang terletak di System.Web.UI namespace layanan. Kelas Page menyertakan Master properti yang mengembalikan referensi ke halaman master halaman. Jika halaman tidak memiliki halaman Master master mengembalikan Nothing.

Properti Master mengembalikan objek jenis MasterPage [juga terletak di System.Web.UI namespace] yang merupakan jenis dasar dari mana semua halaman master berasal. Oleh karena itu, untuk menggunakan properti publik atau metode yang ditentukan di halaman master situs web kami, kita harus mentransmisikan objek yang MasterPage dikembalikan dari Master properti ke jenis yang sesuai. Karena kami menamai file Site.masterhalaman master kami , kelas code-behind diberi nama Site. Oleh karena itu, kode berikut melemparkan Page.Master properti ke instans Site kelas .

' Cast the loosely-typed Page.Master property and then set the GridMessageText property Dim myMasterPage As Site = CType[Page.Master, Site]

Sekarang setelah kita mentransmisikan properti yang diketik Page.Master secara longgar ke jenis Situs, kita dapat mereferensikan properti dan metode khusus untuk Situs. Seperti yang ditunjukkan Gambar 7, properti GridMessageText publik muncul di menu drop-down IntelliSense.

Gambar 07: IntelliSense Menunjukkan Properti dan Metode Publik Halaman Master kami [Klik untuk melihat gambar ukuran penuh]

Catatan

Jika Anda menamai file MasterPage.master halaman master Anda, maka nama kelas kode belakang halaman master adalah MasterPage. Ini dapat menyebabkan kode ambigu saat transmisi dari jenis System.Web.UI.MasterPage ke kelas Anda MasterPage . Singkatnya, Anda perlu sepenuhnya memenuhi syarat jenis yang Anda transmisikan, yang bisa sedikit rumit saat menggunakan model Proyek Situs Web. Saran saya adalah memastikan bahwa ketika Anda membuat halaman master Anda, Anda menamainya sesuatu selain MasterPage.master atau, bahkan lebih baik, membuat referensi yang sangat ditik ke halaman master.

Membuat Referensi Strongly-Typed dengan@MasterTypeDirektif

Jika Anda melihat lebih dekat, Anda dapat melihat bahwa kelas code-behind halaman ASP.NET adalah kelas parsial [perhatikan Partial kata kunci dalam definisi kelas]. Kelas parsial diperkenalkan dalam C# dan Visual Basic with.NET Framework 2.0 dan, singkatnya, memungkinkan anggota kelas ditentukan di beberapa file. File kelas code-behind - AddProduct.aspx.vb, misalnya - berisi kode yang kami, pengembang halaman, buat. Selain kode kami, mesin ASP.NET secara otomatis membuat file kelas terpisah dengan properti dan penanganan aktivitas yang menerjemahkan markup deklaratif ke dalam hierarki kelas halaman.

Pembuatan kode otomatis yang terjadi setiap kali halaman ASP.NET dikunjungi membuka jalan untuk beberapa kemungkinan yang agak menarik dan berguna. Dalam kasus halaman master, jika kami memberi tahu mesin ASP.NET halaman master apa yang digunakan oleh halaman konten kami, halaman tersebut menghasilkan properti yang sangat ditik Master untuk kami.

Gunakan direktif@MasterType untuk menginformasikan mesin ASP.NET dari jenis halaman master halaman konten. Direktif @MasterType dapat menerima nama jenis halaman master atau jalur filenya. Untuk menentukan bahwa AddProduct.aspx halaman menggunakan Site.master sebagai halaman masternya, tambahkan direktif berikut ke bagian AddProduct.aspxatas :

Direktif ini menginstruksikan mesin ASP.NET untuk menambahkan referensi yang sangat ditik ke halaman master melalui properti bernama Master. Dengan direktif @MasterType di tempat, kita dapat memanggil Site.master properti dan metode publik halaman master langsung melalui Master properti tanpa transmisi apa pun.

Catatan

Jika Anda menghilangkan direktif @MasterType , sintaks Page.Master dan Master mengembalikan hal yang sama: objek yang ditik secara longgar ke halaman master halaman. Jika Anda menyertakan direktif @MasterType , maka Master mengembalikan referensi yang ditik dengan kuat ke halaman master yang ditentukan. Page.Master, namun, masih mengembalikan referensi yang dititik secara longgar. Untuk melihat lebih menyeluruh mengapa ini terjadi dan bagaimana Master properti dibangun ketika @MasterType direktif disertakan, lihat entri @MasterTypeblog K. Scott Allen di ASP.NET 2.0.

Memperbarui Halaman Master Setelah Menambahkan Produk Baru

Sekarang setelah kita tahu cara memanggil properti dan metode publik halaman master dari halaman konten, kita siap untuk memperbarui AddProduct.aspx halaman sehingga halaman master di-refresh setelah menambahkan produk baru. Di awal Langkah 4 kami membuat penanganan aktivitas untuk peristiwa kontrol ItemInserting DetailsView, yang dijalankan segera setelah produk baru ditambahkan ke database. Tambahkan kode berikut ke penanganan aktivitas tersebut:

Protected Sub NewProduct_ItemInserted[ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewInsertedEventArgs] Handles NewProduct.ItemInserted ' Cast the loosely-typed Page.Master property and then set the GridMessageText property Dim myMasterPage As Site = CType[Page.Master, Site] myMasterPage.GridMessageText = String.Format["{0} added to grid...", e.Values["ProductName"]] ' Use the strongly-typed Master property Master.RefreshRecentProductsGrid[] End Sub

Kode di atas menggunakan properti yang ditik Page.Master secara longgar dan properti yang ditik Master dengan kuat. Perhatikan bahwa GridMessageText properti diatur ke "ProductName ditambahkan ke kisi..." Nilai produk yang baru ditambahkan dapat diakses melalui e.Values koleksi; seperti yang Anda lihat, nilai just-added ProductName diakses melalui e.Values["ProductName"].

Gambar 8 memperlihatkan AddProduct.aspx halaman segera setelah produk baru - Soda Scott - telah ditambahkan ke database. Perhatikan bahwa nama produk yang baru saja ditambahkan dicatat di Label halaman master dan bahwa GridView telah disegarkan untuk menyertakan produk dan harganya.

Gambar 08: Label Halaman Master dan Tampilan Kisi Memperlihatkan Produk Just-Added [Klik untuk melihat gambar ukuran penuh]

Idealnya, halaman master dan halaman kontennya benar-benar terpisah satu sama lain dan tidak memerlukan tingkat interaksi. Meskipun halaman master dan halaman konten harus dirancang dengan ingat tujuan tersebut, ada sejumlah skenario umum di mana halaman konten harus berinteraksi dengan halaman masternya. Salah satu alasan paling umum berpusat pada pembaruan bagian tertentu dari tampilan halaman master berdasarkan beberapa tindakan yang ditranspitasikan di halaman konten.

Kabar baiknya adalah relatif mudah untuk memiliki halaman konten yang berinteraksi secara terprogram dengan halaman masternya. Mulailah dengan membuat properti atau metode publik di halaman master yang merangkum fungsionalitas yang perlu dipanggil oleh halaman konten. Kemudian, di halaman konten, akses properti dan metode halaman master melalui properti yang ditik Page.Master secara longgar atau gunakan direktif @MasterType untuk membuat referensi yang ditik dengan kuat ke halaman master.

Dalam tutorial berikutnya kami memeriksa cara agar halaman master berinteraksi secara terprogram dengan salah satu halaman kontennya.

Selamat Pemrograman!

Bacaan lebih lanjut

Untuk informasi selengkapnya tentang topik yang dibahas dalam tutorial ini, lihat sumber daya berikut:

Scott Mitchell, penulis beberapa buku ASP/ASP.NET dan pendiri 4GuysFromRolla.com, telah bekerja dengan teknologi Microsoft Web sejak 1998. Scott bekerja sebagai konsultan, pelatih, dan penulis independen. Buku terbarunya adalah Sams Teach Yourself ASP.NET 3,5 dalam 24 Jam. Scott dapat dijangkau di atau melalui blognya di //ScottOnWriting.NET.

Terima kasih khusus kepada

Seri tutorial ini ditinjau oleh banyak peninjau yang bermanfaat. Peninjau prospek untuk tutorial ini adalah Zack Jones. Tertarik untuk meninjau artikel MSDN saya yang akan datang? Jika demikian, letakkan saya antrean di

Video yang berhubungan

Bài mới nhất

Chủ Đề