TemplateField
เพื่อเข้าถึงข้อมูลอื่นๆ ได้
<เทมเพลตรายการ>
<asp:Literal id="litUserName" runat="Server" Text='<%#Eval("ชื่อผู้ใช้")%>'/>
</เทมเพลตรายการ>
</asp:TemplateField>
//การใช้งานแบ็กเอนด์
String userName = ((ตัวอักษร)GridView1.SelectedRow.FindControl("litUserName")).Text;
คุณสมบัติ AutoGenerateSelectButton ของ GridView สามารถเปิดใช้งานการเลือกตารางได้โดยตรง หากเราไม่ต้องการเพิ่มคอลัมน์เพิ่มเติมสำหรับการเลือก เราสามารถใช้ TemplateField เพื่อใช้การเลือก GridView ได้
รหัส ASP.NET เป็นดังนี้:
<asp:BoundField DataField="ObjectID " HeaderText="ID"/>
<asp:TemplateField>
<เทมเพลตส่วนหัว>
ชื่อ
</เทมเพลตส่วนหัว>
<เทมเพลตรายการ>
<asp:LinkButton id = "lbName" runat = "เซิร์ฟเวอร์" CommandName = "เลือก">
<%#Eval("ชื่อ")%>
</asp:LinkButton>
</เทมเพลตรายการ>
</asp:TemplateField>
<asp:BoundField DataField = "สถานะ" HeaderText = "สถานะ"/>
ในเวลาเดียวกัน เราจำเป็นต้องเพิ่มตัวจัดการเหตุการณ์สองตัวใน GridView: RowCreated และ RowCommand
//การจัดการเหตุการณ์ RowCreated
เป็นโมฆะ GridView1_RowCreated (ผู้ส่งวัตถุ GridViewRowEventArgs e)
-
ถ้า (e.Row.RowType == DataControlRowType.DataRow)
{ ((LinkButton)e.Row.FindControl("lbName")).CommandArgument = e.Row.RowIndex.ToString();
-
-
//การจัดการเหตุการณ์ RowCommand
เป็นโมฆะ GridView1_RowCommand (แหล่งวัตถุ, System.Web.UI.WebControls.GridViewCommandEventArgs e)
-
GridView1.SelectedIndex = int.Parse(e.CommandArgument.ToString());
}
ด้วยวิธีนี้ คุณสามารถเลือกพร้อมกันได้เมื่อคุณคลิกที่ชื่อ โดยไม่ต้องใช้คอลัมน์การเลือก