在我的一个ASP.NET Web应用程序中,我使用BulkEditGridView(一个允许同时编辑所有行的GridView)来实现订单。在我的网格中,我有一列计算每个项目的总数(成本x数量)和页面底部的总计字段。然而,目前,这些字段仅在每个回传后更新。我需要动态更新这些字段,以便随着用户更改数量,总计和总计更新将反映新值。我曾尝试使用AJAX解决方案来完成此任务,但异步后备功能会干扰页面上的焦点。我想像一个纯粹的客户端解决方案存在,我希望社区中的某个人可以分享。在ASP.NET中总计GridView
2
A
回答
3
如果你的计算可以在JavaScript中最简单的方法将使用jQuery来得到所有这样的项目被复制:
$("#myGridView input[type='text']").each(function(){
this.change(function(){
updateTotal(this.value);
});
});
或者,如果您的计算方式太复杂而无法在JavaScript中完成(或时间限制阻止),那么AJAX调用Web服务是最好的方法。比方说,我们有我们的Web服务是这样的:
[WebMethod, ScriptMethod]
public int UpdateTotal(int currTotal, int changedValue){
// do stuff, then return
}
你需要一些JavaScript调用web服务,您可以用jQuery或MS AJAX做到这一点。我将展示两者的组合,只是为了好玩:
$("#myGridView input[type='text']").each(function(){
this.change(function(){
Sys.Net.WebServiceProxy.invoke(
"/Helpers.asmx",
"UpdateTotal",
false,
{ currTotal: $get('totalField').innerHTML, changedValue: this.value },
showNewTotal
);
});
});
function showNewTotal(res){
$get('totalField').innerHTML = res;
}
看看这个链接,就Sys.Net.WebServiceProxy.invoke方法充分信息:http://www.asp.net/AJAX/Documentation/Live/ClientReference/Sys.Net/WebServiceProxyClass/WebServiceProxyInvokeMethod.aspx
1
一种解决方案是在您的RowDataBound方法中构建一些JavaScript,以便在文本框更改时不断更新这些总计。
因此,在RowDataBound期间,开始在内存中生成一个JavaScript字符串,它将添加您需要添加的文本框。 RowDataBound的好处在于您可以通过调用TextBox.ClientId来获取这些文本框的客户端ID。 将此javascript添加到页面,然后将一个onkeyup事件添加到您需要调用此脚本的每个文本框。
因此,像(这是一个gridview行绑定的事件)
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”
希望是有道理的,并有助于
相关问题
- 1. 在asp.net Gridview中计算运行总数
- 2. 在gridview中计算总数
- 3. 我怎样才能计算在GridView的总价格在ASP.NET中
- 4. 在Gridview中计算总价格
- 5. 在Yii2 gridview中累计/运行总数
- 6. 总结在GridView
- 7. 在asp.net中的gridview
- 8. Gridview列/行的总和ASP.NET C#
- 9. PageIndexChanging在ASP.NET中的GridView中
- 10. Rad Gridview?在asp.net?
- 11. 的GridView在asp.net
- 12. GridView中的ASP.NET
- 13. ASP.NET中的GRIDVIEW
- 14. 在GridView + Asp.net中排序
- 15. 在asp.net中的Gridview mvc2
- 16. 在asp.net中创建GridView MVC3.0
- 17. ASP.Net:在GridView中使用UpdatePanel
- 18. 在ASP.NET Gridview中排序
- 19. 在GridView Asp.Net中使用Dropdownlist?
- 20. 在ASP.NET GridView中使用DataKeyNames?
- 21. 关于在asp.net中的GridView
- 22. 在gridview中的Asp.net回发
- 23. ASP.NET:在gridview中隐藏列
- 24. 计算ASP.NET MVC中的总发货
- 25. ASP.NET MVC计算装运总计
- 26. 一个大页面的GridView,汇总和总计与SQLdataSource
- 27. 从MSSQL中的多个表中总计每日总计加总计总计
- 28. 从gridview ASP.NEt C计数的天数#
- 29. ASP.NET自动刷新gridview updatepanel计时器
- 30. ASP.NET GridView排序计算字段