Одним из решений является создание некоторого javascript в вашем методе RowDataBound для постоянного обновления этих итогов при изменении текстовых полей.
Итак, во время RowDataBound, начните строить строку javascript в памяти, которая добавит необходимые вам текстовые поля. Что хорошо в RowDataBound, так это то, что вы можете получить идентификаторы клиентской стороны этих текстовых полей, вызвав TextBox.ClientId.
Добавьте этот javascript на страницу, а затем добавьте событие onkeyup в каждое текстовое поле, которое требуется для вызова этого сценария.
Так что-то вроде (это событие, связанное со строкой из сетки)
private string _jscript;
protected void gridview_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//Get your textbox
Textbox tb = e.Row.FindControl("tbAddUp");
//Add the event that you're going to call to this textbox's attributes
tb.Attributes.Add("onkeyup", "MyAddUpJavaScriptMethod();");
//Build the javascript for the MyAddUpJavaScriptMethod
jscript += "document.getElementById('" + tb.ClientId + '").value + ";
}
}
Затем, как только вы построите весь этот сценарий, используйте свой класс Page.ClientScript, чтобы добавить на страницу метод, который будет вызываться вашим onkeyup в ваших текстовых полях "MyAddUpJavaScriptMethod"
Надежда, которая имеет смысл и помогает