Нужна помощь в решении этой проблемы.asp.net gridview checkbox selection
У меня есть gridview и внутри gridview. У меня есть флажок, и после нажатия на этот флажок я делаю событие postback и пытаюсь обновить эту конкретную строку только в базе данных.
Это мой код сетки. см. OnCheckedChanged.
<asp:TemplateField HeaderText="Sample">
<ItemTemplate>
<asp:CheckBox runat="server"
ID="chkSample"
Checked='<%# Bind("Sample") %>'
OnCheckedChanged="UpdateSupplyLed"
AutoPostBack="True">
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
Код:
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.
}
}
}
Приведенный выше код работает нормально, но это становится мне все галочки, которые проверяются irresepective того, который я только что проверил. Я не хочу всех.
Как получить только одно значение строки, которое только что было проверено. Некоторые из строк, возможно, уже были проверены, потому что статус для этих записей верен, и я не хочу обновлять эти записи.
Я думаю, что у меня есть мой вопрос правильно!
Update: Ответ:
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);
}
Спасибо за ваш ответ. Но мне нужны другие значения из этой же строки, так как я могу получить идентификатор строки этой конкретной строки gridview. так что я могу получить идентификатор записи. – Supremestar
Затем я рекомендую не привязывать флажок OnCheckChanged, вместо этого использовать GridViews OnRowCommand, строка указана в GridVieweCommandEventArgs. –
. HollyStyles, У меня нет поля команды select в Gridview, поэтому команда строки Gridview не запускается. Что мне делать с моим другом? Пожалуйста, помогите. – Supremestar