Bagikan melalui


Menggunakan nilai string kueri untuk memfilter data dengan pengikatan model dan formulir web

oleh Tom FitzMacken

Seri tutorial ini menunjukkan aspek dasar penggunaan pengikatan model dengan proyek ASP.NET Web Forms. Pengikatan model membuat interaksi data lebih lurus ke depan daripada berurusan dengan objek sumber data (seperti ObjectDataSource atau SqlDataSource). Seri ini dimulai dengan materi pengantar dan beralih ke konsep yang lebih canggih dalam tutorial selanjutnya.

Tutorial ini menunjukkan cara meneruskan nilai dalam string kueri dan menggunakan nilai tersebut untuk mengambil data melalui pengikatan model.

Tutorial ini dibangun pada proyek yang dibuat di bagian sebelumnya dari seri.

Anda dapat mengunduh proyek lengkap di C# atau VB. Kode yang dapat diunduh berfungsi dengan Visual Studio 2012 atau Visual Studio 2013. Ini menggunakan templat Visual Studio 2012, yang sedikit berbeda dari templat Visual Studio 2013 yang ditunjukkan dalam tutorial ini.

Apa yang akan Anda bangun

Dialam tutorial ini, Anda akan:

  1. Menambahkan halaman baru untuk memperlihatkan kursus terdaftar untuk siswa
  2. Mengambil kursus terdaftar untuk siswa yang dipilih berdasarkan nilai dalam string kueri
  3. Menambahkan hyperlink dengan nilai string kueri dari tampilan kisi ke halaman baru

Langkah-langkah dalam tutorial ini cukup mirip dengan apa yang Anda lakukan dalam tutorial sebelumnya untuk memfilter siswa yang ditampilkan berdasarkan pilihan pengguna dalam daftar drop-down. Dalam tutorial itu, Anda menggunakan atribut Kontrol dalam metode pilih untuk menentukan bahwa nilai parameter berasal dari kontrol. Dalam tutorial ini, Anda akan menggunakan atribut QueryString dalam metode pilih untuk menentukan bahwa nilai parameter berasal dari string kueri.

Menambahkan halaman baru untuk menampilkan kursus siswa

Tambahkan formulir web baru yang menggunakan halaman master Site.master, dan beri nama halaman Kursus.

Dalam file Courses.aspx , tambahkan tampilan kisi untuk menampilkan kursus untuk siswa yang dipilih.

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <asp:GridView runat="server" ID="coursesGrid"
        ItemType="ContosoUniversityModelBinding.Models.Enrollment"
        SelectMethod="coursesGrid_GetData" AutoGenerateColumns="false">
        <Columns>
            <asp:BoundField HeaderText="Title" DataField="Course.Title" />
            <asp:BoundField HeaderText="Credits" DataField="Course.Credits" />
            <asp:BoundField HeaderText="Grade" DataField="Grade" />
        </Columns>
        <EmptyDataTemplate>
            <asp:Label Text="No Enrolled Courses" runat="server" />
        </EmptyDataTemplate>
    </asp:GridView>
</asp:Content>

Tentukan metode pilih

Di Courses.aspx.cs, Anda akan menambahkan metode pilih dengan nama yang Anda tentukan di properti SelectMethod tampilan kisi. Dalam metode itu, Anda akan menentukan kueri untuk mengambil kursus siswa, dan menentukan bahwa parameter berasal dari nilai string kueri dengan nama yang sama dengan parameter .

Pertama, Anda harus menambahkan pernyataan penggunaan berikut.

using ContosoUniversityModelBinding.Models;
using System.Web.ModelBinding;
using System.Data.Entity;

Kemudian, tambahkan kode berikut ke Courses.aspx.cs:

public IQueryable<Enrollment> coursesGrid_GetData([QueryString] int? studentID)
{
    SchoolContext db = new SchoolContext();
    var query = db.Enrollments.Include(e => e.Course)
        .Where(e => e.StudentID == studentID);
    return query;
}

Atribut QueryString berarti bahwa nilai string kueri bernama StudentID secara otomatis ditetapkan ke parameter dalam metode ini.

Dalam tampilan kisi di Students.aspx, Anda akan menambahkan bidang hyperlink yang ditautkan ke halaman Kursus baru Anda. Hyperlink akan menyertakan nilai string kueri dengan id siswa.

Di Students.aspx, tambahkan bidang berikut ke kolom tampilan kisi tepat di bawah bidang untuk Total Kredit.

<asp:TemplateField HeaderText="Total Credits">  
    <ItemTemplate>
        <asp:Label Text="<%# Item.Enrollments.Sum(en => en.Course.Credits) %>" 
            runat="server" />
    </ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField Text="Courses" DataNavigateUrlFormatString="~/Courses.aspx?StudentID={0}"
    DataNavigateUrlFields="StudentID" />

Jalankan aplikasi dan perhatikan bahwa tampilan kisi sekarang menyertakan tautan Kursus.

Tambahkan hyperlink

Saat Anda mengklik salah satu tautan, Anda akan melihat kursus siswa yang terdaftar.

tampilkan kursus

Kesimpulan

Dalam tutorial ini, Anda menambahkan tautan dengan nilai string kueri. Anda menggunakan nilai string kueri tersebut untuk nilai parameter dalam metode pilih.

Dalam tutorial berikutnya, Anda akan memindahkan kode dari file code-behind ke lapisan logika bisnis dan lapisan akses data.