Cần một số trợ giúp để giải quyết vấn đề này.Chọn hộp kiểm asp.net gridview
Tôi có chế độ xem lưới và bên trong GridView Tôi có hộp kiểm và sau khi nhấp vào hộp kiểm, tôi đang thực hiện sự kiện postback và cố gắng cập nhật hàng cụ thể này chỉ trên cơ sở dữ liệu.
Đây là mã kiểm tra chế độ xem lưới của tôi. xem OnCheckedChanged.
<asp:TemplateField HeaderText="Sample">
<ItemTemplate>
<asp:CheckBox runat="server"
ID="chkSample"
Checked='<%# Bind("Sample") %>'
OnCheckedChanged="UpdateSupplyLed"
AutoPostBack="True">
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
Code:
protected void UpdateSupplyLed(object sender, EventArgs e)
{
foreach (GridViewRow di in SamplingGridView.Rows)
{
CheckBox chkBx = (CheckBox)di.FindControl("chkSample");
if (chkBx != null && chkBx.Checked)
{
//update database logic here.
}
}
}
Đoạn mã trên hoạt động tốt nhưng nó là nhận được cho tôi tất cả các hộp kiểm được kiểm tra irresepective của một trong đó tôi chỉ kiểm tra. Tôi không muốn tất cả chúng.
Làm cách nào tôi có thể nhận giá trị hàng duy nhất vừa được chọn. Một số hàng có thể đã được kiểm tra vì trạng thái là đúng đối với các bản ghi đó và tôi không muốn cập nhật các bản ghi đó.
Tôi nghĩ mình đã có câu hỏi đúng!
Cập nhật: Câu trả lời là:
protected void UpdateSupplyLed(object sender, EventArgs e)
{
CheckBox chkSampleStatus = sender as CheckBox;
bool sample = chkSampleStatus.Checked;
GridViewRow row = chkSampleStatus.NamingContainer as GridViewRow;
TextBox txtId = row.FindControl("Id") as TextBox;
int id = Int32.Parse(txtId.Text);
}
Cảm ơn bạn đã trả lời của bạn. Nhưng tôi cần một số giá trị khác từ cùng một hàng như vậy làm thế nào tôi có thể nhận được hàng Id của hàng Gridview cụ thể đó. để tôi có thể lấy Id hồ sơ. – Supremestar
Sau đó, tôi khuyên bạn không nên ràng buộc các OnCheckChanged của hộp kiểm, sử dụng GridViews OnRowCommand thay vào đó, hàng được cung cấp trong GridVieweCommandEventArgs –
HollyStyles, Tôi không có một trường lệnh chọn trong Gridview để Gridview hàng lệnh không bắn. Tôi nên làm gì với bạn tôi? Vui lòng trợ giúp. – Supremestar