Di asp.net 2.0, Anda dapat membuat daftar dropdown di tampilan grid. Ini sangat mudah, dan yang kita bicarakan di sini adalah,
Di setiap daftar dropdown, konten yang berbeda terikat. Misalnya, di database northwind, Anda dapat menggunakan GRIDVIEW untuk menampilkan setiap kategori. Pada saat yang sama, kategori di setiap baris dapat dicantumkan dalam bentuk kotak drop-down dropdonwlist. Semua produk di bawah. Metode implementasi diperkenalkan di bawah
.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound">
<Kolom>
<asp:BoundField DataField="CategoryID" HeaderText="CategoryID" />
<asp:BoundField DataField="CategoryName" HeaderText="Nama Kategori" />
<asp:TemplateField HeaderText="Produk">
<ItemTemplate>
< asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Di bagian belakang kode,
dilindungi kekosongan Page_Load (pengirim objek, EventArgs e)
{
jika (!Halaman.IsPostBack)
{
// Hal ini karena Tabel[1] berisi Kategori
GridView1.DataSource = GetDataSet().Tables[1
]
;
}
Kumpulan Data pribadi GetDataSet()
{
string query = @"PILIH p.CategoryID,p.ProductID, p.ProductName FROM Produk p
SELECT c.CategoryID,c.CategoryName FROM Kategori c"
; ;kata sandi=123456";
SqlConnection myConnection = new SqlConnection(connectionString);
SqlDataAdapter ad = new SqlDataAdapter(query, myConnection);
DataSet ds = new DataSet();
ad.Fill(ds);
return ds;
}
Dalam kode di atas, pertama kita mengembalikan kumpulan data tipikal dan mengikatnya ke tampilan kisi. Perhatikan bahwa ada dua kalimat dalam pernyataan SQL. Kalimat pertama adalah mengembalikan produk, dan kalimat kedua adalah mengembalikan semua kategori mengikat Saat menggunakan gridview, kami menggunakan
GridView1.DataSource = GetDataSet().Tables[1];, ikat record kategori pada tabel tabel pertama ke gridview. Selanjutnya kita harus memproses dropdownlist pada kolom template kode sebagai berikut
dilindungi kekosongan GridView1_RowDataBound (pengirim objek, GridViewRowEventArgs e)
{
DataTable myTable = new DataTable();
productIDColumn = new
DataColumn("ProductID
"
)
; = DataSet baru();
ds = GetDataSet();
int
ID kategori = 0;
ekspresi string = String.Empty;
{
ID kategori = Int32.Parse(e.Row.Cells[0].Teks);
ekspresi = "ID Kategori = " + ID kategori;
DropDownListddl
= (DropDownList)e.Row.FindControl("DropDownList1");
ds.Tables[0].Select(ekspresi);
foreach (baris DataRow dalam baris)
{
DataRow newRow = myTable.NewRow();
newRow["ProductID"] = baris["ProductID"];
newRow
[
"ProductName"] = baris["ProductName"]
; Sumber Data = Tabel Saya;
ddl.DataTextField = "Nama Produk";
ddl.DataValueField
= "ID Produk
"
;
Prinsipnya di sini kira-kira sebagai berikut:
Pertama, kita membuat tabel data, termasuk kolom productid dan productname, lalu mengikatnya ke gridview, lalu digunakan
kategoriID = Int32.Parse(e.Row.Cells[0].Text);
ekspresi = "CategoryID = " + kategoriID;
Buat ekspresi filter, yang di sini ditentukan sebagai ID kategori, lalu teruskan
DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");
DataRow[] baris = ds.Tables[0].Select(ekspresi);
, temukan semua produk yang kategorinya sama dengan ID kategori tertentu. Di sini, kumpulan baris data dibuat
, tambahkan semua produk dalam kategori tertentu ke tabel data, dan terakhir ikat tabel data dan daftar dropdown untuk mencapai fungsi tersebut.