日期:2014-05-18  浏览次数:20845 次

【急】vs2005下gridview的问题,高手进

图片如上,具体要实现的功能如下:
gridview(gvOrder)是从数据库查询出来绑定的数据,现在客户只需要填写数量即可,然后金额可以根据单价自动计算出来,单价金额都是只读的,然后批量提交(成品编号,数量,单价,金额)填写了数量的成品到数据,没填写数量则不提交。
数量和金额都为textbox,其id分别为:tbNum,tbMoney,单价的话我是用FindControl取的。
数量要进行正则表达式验证,只能为float类型,autopostback=true,功能在textbox_Changed事件中(.cs)我已经部分实现,
未实现部分:对固定的某一行的话,正则验证、计算金额我都已经可以实现,用的是FindControl,但客户随便填写某一行,去针对这一行做正则验证、计算金额则还没有实现(即行号的问题),当然如果autopostback=false时可以用:
http://topic.csdn.net/u/20081023/08/0725dd04-b1ac-485e-a8a2-772142f30c6e.html
我发的另一个帖子,用js去实现,但autopostback我是必须设为true的,因为我还要对客户填写的数量到数据库中去比较库存,以及对总金额还要用存储过程作判断比较的。
这些问题解决以后我又该怎么去通过提交按钮提交这些填了数量的成品数据?提交的sql语句什么的我都会写,主要是要知道怎么个提交方法哈。
分不够可以加,希望能详细些,混分的就不要来了...

------解决方案--------------------
首先,昨天我也看了你的帖子 别人也给你回复了 而且你的意思就是运算都在客户端完成
但是
引用:数量要进行正则表达式验证,只能为float类型,autopostback=true,功能在textbox_Changed事件中(.cs)我已经部分实现,
你不应该这么写,你这样不就破坏了你原先的设想 页面会刷新的 所以数量的验证还要用JS来控制的 
JScript code
 <input   name="test"   onkeypress="return   event.keyCode>=48&&event.keyCode <=57"    
onpaste="var  s=clipboardData.getData('text');  if(!/\D/.test(s))  value=s.replace(/^0*/,'');  return  false;"  ondragenter="return  false" 
style="ime-mode:disabled"  onkeyup="if(/(^0+)/.test(value))value=value.replace(/^0*/,  '')">

这是限制输入数字的 防输入法等都有 自己看看
下面的我再斟酌下
------解决方案--------------------
"tbNum,tbMoney,单价的话我是用FindControl取的。 "]
你就用你自己说的这个取得要提交的那2列,然后更新(update)数据撒,估计要用到循环更新

------解决方案--------------------
别用GridView了,用table就行了,用js实现
------解决方案--------------------
ajax阿 那倒是可以和服务器交互的
然后呢?提交?如何取得成品编号后面相对应得数据?
遍历gridview不就可以取道到了麽~
------解决方案--------------------
up
------解决方案--------------------
探讨
别用GridView了,用table就行了,用js实现