Я использую gridview, чтобы щелкнуть ячейку. Как только я нажимаю на ячейку, у меня открыта модальная коробка.
Модаль имеет кнопку "Обновить" и "Отмена".
Я хотел бы, чтобы выбранная ячейка выбрала индексы строк и столбцов в коде позади, чтобы определить, имеет ли клетка с щелчком текстовое значение или нет.
Я могу сделать это в моем коде, здесь:
protected void Grd_RowCommand(object sender, GridViewCommandEventArgs e)
{
int selectedRowIndex = Convert.ToInt32(e.CommandArgument.ToString());
int selectedColumnIndex = Convert.ToInt32(Request.Form["__EVENTARGUMENT"].ToString());
}
Это то, что у меня есть, для чего мне нужен код для комментариев справки:
protected void btnUpdate_Click(object sender, EventArgs e)
{
int selectedRowIndex = //need help
int selectedColumnIndex = // need help
if (Grd.Rows[selectedRowIndex].Cells[selectedColumnIndex].Text == " ")
{
//new, insert into db
}
else
{
//update existing db record
}
}
Вы можете использовать ViewState
для передачи выбранного индекса строки и выбранного индекса столбца между postbacks. Добавьте в свой код следующие свойства
private int SelectedRowIndex
{
get
{
if (ViewState["SelectedRowIndex"] == null)
{
return 0;
}
else
{
return (int)ViewState["SelectedRowIndex"];
}
}
set
{
ViewState["SelectedRowIndex"] = value;
}
}
private int SelectedColumnIndex
{
get
{
if (ViewState["SelectedColumnIndex"] == null)
{
return 0;
}
else
{
return (int)ViewState["SelectedColumnIndex"];
}
}
set
{
ViewState["SelectedColumnIndex"] = value;
}
}
затем присвойте выбранный индекс строки и выбранный индекс столбца свойствам выше в Grd_RowCommand
protected void Grd_RowCommand(object sender, GridViewCommandEventArgs e)
{
this.SelectedRowIndex = Convert.ToInt32(e.CommandArgument.ToString());
this.SelectedColumnIndex = Convert.ToInt32(Request.Form["__EVENTARGUMENT"].ToString());
}
и получить значения в btnUpdate_Click
protected void btnUpdate_Click(object sender, EventArgs e)
{
int selectedRowIndex = this.SelectedRowIndex;
int selectedColumnIndex = this.SelectedColumnIndex;
if (Grd.Rows[selectedRowIndex].Cells[selectedColumnIndex].Text == " ")
{
//new, insert into db
}
else
{
//update existing db record
}
}
if (Grd.Rows[selectedRowIndex].Cells[selectedColumnIndex].Text == " ") { //insert into db }