Рейтинг:
0
Vincent Maverick Durano
Ошибка просто означает, что ваш код не в состоянии найти элемент управления, который вы искали. Воспользуйся e.Row.FindControl()
вместо этого метод. Например:
TextBox txtRate = (TextBox)e.Row.FindControl("txtRate");
Если вы знаете точное местоположение ячейки элемента управления, то, возможно, вам захочется сослаться на
Cells
тоже нравится:
TextBox txtRate = (TextBox)e.Row.Cells[0].FindControl("txtRate");
Обратите внимание, что индекс ячеек начинается с нуля. В приведенном выше примере он обращается к
TextBox
txtRate из первого столбца вашего
GridView
.
Вот обновленный код:
int R,Q,T = 0;
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
TextBox txtRate = (TextBox)e.Row.FindControl("txtRate");
TextBox txtQuantity = (TextBox)e.Row.FindControl("txtQuantity");
TextBox txtTotal = (TextBox)e.Row.FindControl("txtTotal");
R = int.Parse(txtRate.Text);
Q = int.Parse(txtQuantity.Text);
T += Convert.ToInt32(R * Q);
txtTotal.Text = T.ToString();
}
}
Здесь нужно отметить несколько вещей:
Убедитесь в том, чтобы подтвердить свой
TextBox
разрешить только числовые входы, иначе ваш синтаксический анализ потерпит неудачу. Возможно, вы захотите взглянуть на
TryParse()
вместо этого метод. Возможно, вы захотите рассмотреть возможность использования
double
вместо
int
тоже.
Кроме того, если вам нужен текущий итог при вводе строк, то взгляните на эту статью Для справки:
Как сделать вычисления в GridView[
^]
kiran kamble
да я уже сделал это тоже но это не может быть вычислением значений
TextBox txtRate = (TextBox)e. Row.FindControl("txtRate");
Vincent Maverick Durano
Вам нужно объявить переменные int вне события RowDataBound, чтобы оно не сбрасывалось на каждой итерации. Пожалуйста, взгляните на обновленное решение выше.
kiran kamble
но его показ FormatException был необработан пользовательским кодом, а входная строка не была в формате coorect, и сэр этот расчет не работает во время выполнения, потому что таблица базы данных пуста, и я хочу ввести число во время выполнения, если я ввожу количество "1" и скорость "200" , то я нажимаю вкладку, которую я хочу получить в следующем столбце.
Vincent Maverick Durano
Вам нужно отладить свой код. Установите точку останова и шагните в нее, чтобы понять, что происходит.
Кроме того, если вам нужен текущий итог при вводе строк, то взгляните на эту статью Для справки:
http://www.codeproject.com/Articles/1112018/How-To-Do-Calculations-in-GridView
kiran kamble
если данные есть в базе данных, то их вычисление, но здесь я делаю расчет времени выполнения, сэр, вы можете дать мне ur EMAIL, я отправлю вам этот файл, или это моя электронная почта ( kirankamble98@gmail.com ) плз помогите мне с заданием.
Vincent Maverick Durano
Я здесь не для того, чтобы исправить ваш код. Я здесь только для того, чтобы помочь вам направить вас на правильный путь. Если вы ищете кого-то, кто исправит ваш код, то вам следует заплатить кому-то или нанять внештатного разработчика.
Опять же, если вы выполняете расчет времени выполнения, то ссылка, которую я предоставил, должна помочь вам начать работу. Также знайте основы отладки. Это очень важно знать, если вы "истинный" разработчик.