Pada esai penelitian sebelumnya, kita dapat menggunakan DataKeyNames dan DataKeys untuk melakukan akses data pada kolom kunci utama GridView. Dalam percobaan selanjutnya, saya menemukan bahwa kita dapat menggunakan TemplateField untuk mencapai akses data
lainnya
<Templat Barang>
<asp:Literal id="litUserName" runat="Server" Text='<%#Eval("UserName")%>'/>
</Templat Barang>
</asp:TemplateField>
// Implementasi backend
String userName = ((Literal)GridView1.SelectedRow.FindControl("litUserName")).Text;
Properti AutoGenerateSelectButton dari GridView dapat langsung mengaktifkan pemilihan tabel. Jika kita tidak ingin menambahkan kolom tambahan untuk seleksi, kita dapat menggunakan TemplateField untuk mengimplementasikan pemilihan GridView.
Kode ASP.NET adalah sebagai berikut:
<asp:BoundField DataField="ObjectID " HeaderTeks="ID"/>
<asp:TemplateField>
<Templat Tajuk>
Nama
</Templat Tajuk>
<Templat Barang>
<asp:LinkButton id="lbName" runat="Server" CommandName="Pilih">
<%#Eval("Nama")%>
</asp:Tombol Tautan>
</Templat Barang>
</asp:TemplateField>
<asp:BoundField DataField="Status" HeaderText="Status"/>
Pada saat yang sama, kita perlu menambahkan dua event handler ke GridView: RowCreated dan RowCommand.
//Penanganan event RowCreated
void GridView1_RowCreated(pengirim objek, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{ ((LinkButton)e.Row.FindControl("lbName")).CommandArgument = e.Row.RowIndex.ToString();
}
}
//Penanganan event RowCommand
void GridView1_RowCommand(sumber objek, System.Web.UI.WebControls.GridViewCommandEventArgs e)
{
GridView1.SelectedIndex = int.Parse(e.CommandArgument.ToString());
}
Dengan cara ini, Anda dapat memilih sekaligus mengklik namanya, tanpa harus menggunakan kolom pilihan.