asp.net在GridView里用js计算文本框的值!

xycit 2009-04-11 02:37:39

<asp:TemplateField HeaderText="数量">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("[T-jpcs1]") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="a" runat="server" Text='<%# Bind("[T-jpcs1]") %>' ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="单价">
<EditItemTemplate>
<asp:TextBox ID="TextBox8" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="b" runat="server" onkeydown="checkFloat(event)" Width="100px" ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="总金额">
<EditItemTemplate>
<asp:TextBox ID="TextBox10" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="c" runat="server" Width="100px" onkeydown="checkFloat(event)" ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>


用js
计算数量*单价=总金额
其中数量是通过数据源绑定的~单价直接在GridView上输入,输入单价后计算结果自动显示在总金额文本框内!
求js代码!
...全文
1021 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
小叶爱学习 2011-07-12
  • 打赏
  • 举报
回复
学习了!
骷髅党小队长 2010-04-22
  • 打赏
  • 举报
回复
xuexi
cxztddt 2009-12-15
  • 打赏
  • 举报
回复
"var a = parseFloat(par.previousSibling.getElementsByTagName("span")[0].innerHTML);"
请问下span元素,在前台/后台是怎么写的呢,才让这个js语句辨别它呢???
s207ping 2009-09-15
  • 打赏
  • 举报
回复
还得回复
xycit 2009-04-11
  • 打赏
  • 举报
回复

拜谢ojlovecd大大···
结贴给分咯!
我姓区不姓区 2009-04-11
  • 打赏
  • 举报
回复
汗,原来你这列的位置跟你提问的例子不一样的啊,

function Cal(tb) {
var b = parseFloat(tb.value);
if (!isNaN(b)) {
var p1 = tb.parentElement || tb.parentNode;
var par = p1.parentElement || p1.parentNode;
var a = parseInt(par.childNodes[0].getElementsByTagName("span")[0].innerHTML);//这里的childNodes[0]中的0你自己换成“数量”列的索引
var tbC = par.childNodes[2].getElementsByTagName("input")[0];//这里的2你自己换成“总金额”列的索引
tbC.value = a * b;
}
}
xycit 2009-04-11
  • 打赏
  • 举报
回复

<span id="GridView1_ctl02_a">1000</span>

这行是数量
xycit 2009-04-11
  • 打赏
  • 举报
回复


<input name="GridView1$ctl02$TextBox2" type="text" value="FAB-1171/SF/XII/O8FAB-1171/SF/XII/O8网布58/60"棕色" readonly="readonly" id="GridView1_ctl02_TextBox2" style="height:0px;width:0px;" />
</td><td>FAB-1171/SF/XII/O8</td><td>网布</td><td>棕色</td><td>
<span id="GridView1_ctl02_a">1000</span>
</td><td>
<input name="GridView1$ctl02$TextBox4t" type="text" value="58/60"" readonly="readonly" id="GridView1_ctl02_TextBox4t" />
</td><td>
<input name="GridView1$ctl02$TextBox4" type="text" value="请添加" id="GridView1_ctl02_TextBox4" onfocus="cls()" onblur="res()" style="width:100px;" />
</td><td>
<input name="GridView1$ctl02$TextBox6" type="text" value="请添加" id="GridView1_ctl02_TextBox6" onfocus="cls()" onblur="res()" style="width:100px;" />
</td><td>
<input name="GridView1$ctl02$TextBoxf" type="text" value="0" id="GridView1_ctl02_TextBoxf" onkeydown="checkFloat(event)" onfocus="cls()" onblur="res()" onkeyup="Cal(this)" style="width:55px;" />
</td><td>
<input name="GridView1$ctl02$c" type="text" value="0" readonly="readonly" id="GridView1_ctl02_c" onkeydown="checkFloat(event)" onfocus="cls()" onblur="res()" style="width:100px;" />
</td><td>
<textarea name="GridView1$ctl02$TextBox13" rows="2" cols="20" id="GridView1_ctl02_TextBox13" onfocus="cls()" onblur="res()" style="height:50px;width:150px;">无</textarea>
</td><td>
<input name="GridView1$ctl02$TextBoxe" type="text" value="MLHT-200904110001" id="GridView1_ctl02_TextBoxe" style="height:0px;width:0px;" />
</td>
我姓区不姓区 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 xycit 的回复:]
引用 13 楼 ojlovecd 的回复:
引用 12 楼 xycit 的回复:
引用 11 楼 ojlovecd 的回复:
引用 8 楼 xycit 的回复:
引用 7 楼 ojlovecd 的回复:
引用 4 楼 xycit 的回复:
引用 1 楼 ojlovecd 的回复:
咋又发了一遍?刚才没搞定?那干嘛结贴呢?

55555你给我的方法可行但是里面出现了客户端控件~我的通过吧整个GridView放到DataTable的~让后一起提交到数据库!
刚开始米发现最后测试时才发现不行的··5555郁闷啊··

呵呵…
[/Quote]
不用贴全部,贴一部分就好,就只要包含数量这一列的某一行就行,我上不了QQ
xycit 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 ojlovecd 的回复:]
引用 12 楼 xycit 的回复:
引用 11 楼 ojlovecd 的回复:
引用 8 楼 xycit 的回复:
引用 7 楼 ojlovecd 的回复:
引用 4 楼 xycit 的回复:
引用 1 楼 ojlovecd 的回复:
咋又发了一遍?刚才没搞定?那干嘛结贴呢?

55555你给我的方法可行但是里面出现了客户端控件~我的通过吧整个GridView放到DataTable的~让后一起提交到数据库!
刚开始米发现最后测试时才发现不行的··5555郁闷啊··

呵呵,那就改改:

HTML…
[/Quote]
太多了啊··提交不来··要不QQ聊?
我姓区不姓区 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xycit 的回复:]
引用 11 楼 ojlovecd 的回复:
引用 8 楼 xycit 的回复:
引用 7 楼 ojlovecd 的回复:
引用 4 楼 xycit 的回复:
引用 1 楼 ojlovecd 的回复:
咋又发了一遍?刚才没搞定?那干嘛结贴呢?

55555你给我的方法可行但是里面出现了客户端控件~我的通过吧整个GridView放到DataTable的~让后一起提交到数据库!
刚开始米发现最后测试时才发现不行的··5555郁闷啊··

呵呵,那就改改:

HTML code
<script type="text/javascrip…
[/Quote]
我是让你贴生成以后的html源码,不是设计阶段的html源码
就是运行你的网站,然后用浏览器的“查看源码”功能
xycit 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ojlovecd 的回复:]
引用 8 楼 xycit 的回复:
引用 7 楼 ojlovecd 的回复:
引用 4 楼 xycit 的回复:
引用 1 楼 ojlovecd 的回复:
咋又发了一遍?刚才没搞定?那干嘛结贴呢?

55555你给我的方法可行但是里面出现了客户端控件~我的通过吧整个GridView放到DataTable的~让后一起提交到数据库!
刚开始米发现最后测试时才发现不行的··5555郁闷啊··

呵呵,那就改改:

HTML code
<script type="text/javascript">
function checkF…
[/Quote]


<asp:TemplateField HeaderText="单价">
<EditItemTemplate>
<asp:TextBox ID="TextBox8" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBoxf" runat="server" Width="55px" onkeydown="checkFloat(event)" onkeyup='Cal(this)' ></asp:TextBox>
</ItemTemplate>


报错parseFloat(par.previousSibling.getElementsByTagName("span")[0].innerHTML);为空或不是对象~
我姓区不姓区 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xycit 的回复:]
引用 7 楼 ojlovecd 的回复:
引用 4 楼 xycit 的回复:
引用 1 楼 ojlovecd 的回复:
咋又发了一遍?刚才没搞定?那干嘛结贴呢?

55555你给我的方法可行但是里面出现了客户端控件~我的通过吧整个GridView放到DataTable的~让后一起提交到数据库!
刚开始米发现最后测试时才发现不行的··5555郁闷啊··

呵呵,那就改改:

HTML code
<script type="text/javascript">
function checkFloat(e) {
return (e.keyCode >= ……
[/Quote]
我测试过没有问题的哦,哪个为空啊?
你把生成的html源码贴上来看看
wuyq11 2009-04-11
  • 打赏
  • 举报
回复
查询gridview每列值,再计算
参考
wym0807 2009-04-11
  • 打赏
  • 举报
回复
学习了 。。
xycit 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ojlovecd 的回复:]
引用 4 楼 xycit 的回复:
引用 1 楼 ojlovecd 的回复:
咋又发了一遍?刚才没搞定?那干嘛结贴呢?

55555你给我的方法可行但是里面出现了客户端控件~我的通过吧整个GridView放到DataTable的~让后一起提交到数据库!
刚开始米发现最后测试时才发现不行的··5555郁闷啊··

呵呵,那就改改:

HTML code
<script type="text/javascript">
function checkFloat(e) {
return (e.keyCode >= …
[/Quote]

报错parseFloat(par.previousSibling.getElementsByTagName("span")[0].innerHTML);为空没取到值
我姓区不姓区 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xycit 的回复:]
引用 1 楼 ojlovecd 的回复:
咋又发了一遍?刚才没搞定?那干嘛结贴呢?

55555你给我的方法可行但是里面出现了客户端控件~我的通过吧整个GridView放到DataTable的~让后一起提交到数据库!
刚开始米发现最后测试时才发现不行的··5555郁闷啊··
[/Quote]
呵呵,那就改改:

<script type="text/javascript">
function checkFloat(e) {
return (e.keyCode >= 48 && e.keyCode <= 57) || e.keyCode == 8 || e.keyCode == 46 || (e.keyCode >= 37 && e.keyCode <= 40) || e.keyCode == 190 || e.keyCode == 110 ? true : false;
}

function Cal(tb) {
var b = parseFloat(tb.value);
var par = tb.parentElement || tb.parentNode;
var a = parseFloat(par.previousSibling.getElementsByTagName("span")[0].innerHTML);
var tbC = par.nextSibling.getElementsByTagName("input")[0];
tbC.value = a * b;
}
</script>
<asp:TemplateField HeaderText="数量">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("[T-jpcs1]") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="a" runat="server" Text='<%# Bind("[T-jpcs1]") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="单价">
<EditItemTemplate>
<asp:TextBox ID="TextBox8" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="b" runat="server" Width="100px" onkeydown="return checkFloat(event)" onkeyup='Cal(this)' ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="总金额">
<EditItemTemplate>
<asp:TextBox ID="TextBox10" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="c" runat="server" Width="100px" onkeydown="return checkFloat(event)"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>

zglover 2009-04-11
  • 打赏
  • 举报
回复
看html代码,用js脚本去写!
KENLIMYTH 2009-04-11
  • 打赏
  • 举报
回复
UPU
xycit 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ojlovecd 的回复:]
咋又发了一遍?刚才没搞定?那干嘛结贴呢?
[/Quote]
55555你给我的方法可行但是里面出现了客户端控件~我的通过吧整个GridView放到DataTable的~让后一起提交到数据库!
刚开始米发现最后测试时才发现不行的··5555郁闷啊··
加载更多回复(3)

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧