У меня есть несколько столбцов gridview с checkboxes control, у которых есть autopostback='true' для обновления db.
Когда я устанавливаю один из флажков, обновляется вся строка, что меня расстраивает.
Я пытаюсь найти checkbox control столбца нет всей сетки
Я знаю, что Mycheckbox.checked всегда будет истинным, потому что он смотрит на «проверенные значения для всех», но я хочу, чтобы он смотрел только в указанном столбце.
Можно ли сделать что-то вроде Checkbox MyCheckbox = findcontrol(*MyColumn*) ......
protected void myCheckBox_OnCheckedChange(object sender, EventArgs e)
{
CheckBox myCheckBox = (CheckBox)sender;
GridViewRow row = (GridViewRow)myCheckBox.NamingContainer;
bool status = myCheckBox.Checked;
string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
SqlCommand cmd = new SqlCommand("sp_tblPlanningChecked", con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@PlanningID", row.Cells[1].Text);
cmd.Parameters.AddWithValue("@ThisWeekMinus2", myCheckBox.Checked);
cmd.Parameters.AddWithValue("@ThisWeekMinus1", myCheckBox.Checked);
cmd.Parameters.AddWithValue("@ThisWeek", myCheckBox.Checked);
cmd.Parameters.AddWithValue("@ThisWeekPlus1", myCheckBox.Checked);
cmd.Parameters.AddWithValue("@ThisWeekPlus2", myCheckBox.Checked);
cmd.Parameters.AddWithValue("@ThisWeekMinus3", myCheckBox.Checked);
cmd.Parameters.AddWithValue("@ThisWeekMinus4", myCheckBox.Checked);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
Это просто сбивает с толку. На вашем изображении 7 столбцов, и в каждом столбце около 10 Checkboxes.
Что, черт возьми, это значит: iim trying to find out how i can use "findcontrol" of a column insted of using myCheckBox as the only checkbox sender? Итак, вы хотите найти контроль? Пожалуйста, просто ответьте Yes или No, чтобы было проще. Кроме того, вы не хотите использовать каждое событие comboBoxs sender in its event as a converted ComboBox`, что еще вы хотите использовать? Какова ваша цель в целом?
Хорошо, давайте представим, что мы находимся в Column column1. Теперь вы хотите получить все проверенные CheckBoxes в столбце 1, верно? Yes или No?
Но теперь вы говорите о столбце (в данном примере подразумевается один). Но в этом столбце довольно много флажков. Итак, как вы себе представляете, как получить истинное / ложное значение, когда могут быть разные флажки с установленным / не отмеченным флажком?





Не могли бы вы попробовать код ниже
foreach (GridViewRow grow in GridView1.Rows)
{
CheckBox chkStat = grow.FindControl("chkStatus") as CheckBox;
int index = grow.RowIndex;
if (chkStat.Checked)
{
//Write some code if checkbox is checked
}
else
{
//Write some code if checkbox is not checked
}
}
Я немного изменил ваш код, но эта строка: CheckBox chkStat = grow.FindControl ("chkStatus") as CheckBox; была основной линией, которую я преследовал.
Я прочитал ваш вопрос несколько раз, но до сих пор не понимаю, что вы пытаетесь сделать. Итак, у вас есть
column1, и вы хотите получить всеCheckBox, которые являютсяChecked == true?