JS如何得到Repeater中TextBox控件的值
var subsidylCost = document.getElementById("txtSubsidylCost.ClientID").value;
这样获取不到,因为txtSubsidylCost控件由Repeater控件包裹。
你要想获得Repeater里服务器控件(runat="server")的值 必须先知道Repeater里服务器控件ID的命名方式 。
首先Repeater里服务器控件ID的命名方式是 Repeater.ClientID_ctl行号_控件名。行号是从00开始的两位数00 01 02... 如 Repeater1_ctl00_lblBegin 表示Repeater里第一行lblBegin的ID。
代码如下:
<script type="text/javascript">
var repeaterId = '<%=Repeater1.ClientID %>';//Repeater的客户端ID
var rows = <%=Repeater1.Items.Count%>;//Repeater的行数
for (var i = 0; i < rows; i++) {
alert(document.getElementById(repeaterId + "_ctl" + getrownumber(i) + "_lblBegin").value);
alert(document.getElementById(repeaterId + "_ctl" + getrownumber(i) + "_lblDeadline").value);
}
function getrownumber(i) {
if (i > 10) {
return i;
}
else {
return '0' + i;
}
}
</script>
下面的例子是编辑Repeater行时求编辑行合计:
<asp:Repeater ID="rptReimburseDetail" runat="server" OnItemCommand="rptReimburseDetail_ItemCommand"
OnItemDataBound="rptReimburseDetail_RowDataBound">
<ItemTemplate>
<tr>
<td>
<asp:Literal ID="litStartTime" runat="server" Text='<%#Convert.ToDateTime(Eval("StartTime")).ToString("yyyy-MM-dd HH:mm:ss")%>'></asp:Literal>
<asp:TextBox ID="txtStartTime" runat="server" Text='<%#Convert.ToDateTime(Eval("StartTime")).ToString("yyyy-MM-dd HH:mm:ss")%>'
Visible="false" Width="90%" onfocus="WdatePicker({skin:'whyGreen',startDate:'%y-%M-%d 08:30:00',dateFmt:'yyyy-MM-dd HH:mm:ss'})"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litEndTime" runat="server" Text='<%#Convert.ToDateTime(Eval("EndTime")).ToString("yyyy-MM-dd HH:mm:ss")%>'></asp:Literal>
<asp:TextBox ID="txtEndTime" runat="server" Text='<%#Convert.ToDateTime(Eval("EndTime")).ToString("yyyy-MM-dd HH:mm:ss")%>'
Visible="false" Width="90%" onfocus="WdatePicker({skin:'whyGreen',startDate:'%y-%M-%d %H:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss'})"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litBusinessDays" runat="server" Text='<%#Eval("BusinessDays")%>'></asp:Literal>
<asp:TextBox ID="txtBusinessDays" runat="server" Text='<%#Eval("BusinessDays")%>'
Visible="false" onkeyup="CheckNewDecimal(this)" Width="90%"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litStarting" runat="server" Text='<%#Eval("Starting")%>'></asp:Literal>
<asp:TextBox ID="txtStarting" runat="server" Text='<%#Eval("Starting")%>' Visible="false"
Width="90%" onkeyup='AutoDisplayTripCity(this);'></asp:TextBox>
</td>
<td>
<asp:Literal ID="litDestination" runat="server" Text='<%#Eval("Destination")%>'></asp:Literal>
<asp:TextBox ID="txtDestination" runat="server" Text='<%#Eval("Destination")%>' Visible="false"
Width="90%" onkeyup='AutoDisplayTripCity(this);'></asp:TextBox>
</td>
<td>
<asp:Literal ID="litSubsidylCost" runat="server" Text='<%#Eval("SubsidylCost")%>'></asp:Literal>
<asp:TextBox ID="txtSubsidylCost" runat="server" Text='<%#Eval("SubsidylCost")%>'
Visible="false" onkeyup="rptAutoDetailTotal(this)" Width="90%"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litVehicleVesselCost" runat="server" Text='<%#Eval("VehicleVesselCost")%>'></asp:Literal>
<asp:TextBox ID="txtVehicleVesselCost" runat="server" Text='<%#Eval("VehicleVesselCost")%>'
Visible="false" onkeyup="rptAutoDetailTotal(this)" Width="90%"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litAccommodationCost" runat="server" Text='<%#Eval("AccommodationCost")%>'></asp:Literal>
<asp:TextBox ID="txtAccommodationCost" runat="server" Text='<%#Eval("AccommodationCost")%>'
Visible="false" onkeyup="rptAutoDetailTotal(this)" Width="90%"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litUrbanTrafficCost" runat="server" Text='<%#Eval("UrbanTrafficCost")%>'></asp:Literal>
<asp:TextBox ID="txtUrbanTrafficCost" runat="server" Text='<%#Eval("UrbanTrafficCost")%>'
Visible="false" onkeyup="rptAutoDetailTotal(this)" Width="90%"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litOtherCost" runat="server" Text='<%#Eval("OtherCost")%>'></asp:Literal>
<asp:TextBox ID="txtOtherCost" runat="server" Text='<%#Eval("OtherCost")%>' Visible="false"
onkeyup="rptAutoDetailTotal(this)" Width="90%"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litTotalCost" runat="server" Text='<%#Eval("TotalCost")%>'></asp:Literal>
<asp:TextBox ID="txtDetailTotal" runat="server" Width="90%" ReadOnly="true" Visible="false"
Text='<%#Eval("TotalCost")%>'></asp:TextBox>
</td>
<td>
<asp:Literal ID="litCurrency" runat="server" Text='<%#Eval("Currency")%>'></asp:Literal>
<asp:DropDownList ID="ddlCurrency" runat="server" Visible="false" Width="90%">
<asp:ListItem Text="--请选择--" Value=""></asp:ListItem>
<asp:ListItem Text="人民币" Value="人民币"></asp:ListItem>
<asp:ListItem Text="港币" Value="港币"></asp:ListItem>
<asp:ListItem Text="美元" Value="美元"></asp:ListItem>
</asp:DropDownList>
</td>
<td style="text-align: center">
<asp:LinkButton ID="btnDetailEdit" runat="server" Text="编辑" CommandName="Edit" CommandArgument='<%#Eval("ID")%>'></asp:LinkButton>
<asp:LinkButton ID="btnDetailDelete" runat="server" Text="删除" CommandName="Delete"
CommandArgument='<%#Eval("ID")%>'></asp:LinkButton>
<asp:LinkButton ID="btnDetailSave" runat="server" Text="保存" CommandName="Save" CommandArgument='<%#Eval("ID")%>'
Visible="false"></asp:LinkButton>
<asp:LinkButton ID="btnDetailCancel" runat="server" Text="取消" CommandName="Cancel"
CommandArgument='<%#Eval("ID")%>' Visible="false"></asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
js代码如下:
function rptAutoDetailTotal(obj) {
//验证文本框中是否为数字
var reg = /^\d+\.*\d*$/i;
if (!reg.test(obj.value)) {
obj.value = isNaN(parseFloat(obj.value)) ? "" : parseFloat(obj.value);
}
//求和
if (obj.value != "") {
var detailTotal = 0;
var rptIndex = $('<%=hfrptIndex.ClientID %>').value;//编辑行索引
var subsidylCost = document.getElementById("ctl00_contentForm_rptReimburseDetail_ctl" + GetRowNumber(rptIndex) + "_txtSubsidylCost").value;
var vehicleVesselCost = document.getElementById("ctl00_contentForm_rptReimburseDetail_ctl" + GetRowNumber(rptIndex) + "_txtVehicleVesselCost").value;
var accommodationCost = document.getElementById("ctl00_contentForm_rptReimburseDetail_ctl" + GetRowNumber(rptIndex) + "_txtAccommodationCost").value;
var urbanTrafficCost = document.getElementById("ctl00_contentForm_rptReimburseDetail_ctl" + GetRowNumber(rptIndex) + "_txtUrbanTrafficCost").value;
var otherCost = document.getElementById("ctl00_contentForm_rptReimburseDetail_ctl" + GetRowNumber(rptIndex) + "_txtOtherCost").value;
detailTotal += isNaN(parseFloat(subsidylCost)) ? 0 : parseFloat(subsidylCost);
detailTotal += isNaN(parseFloat(vehicleVesselCost)) ? 0 : parseFloat(vehicleVesselCost);
detailTotal += isNaN(parseFloat(accommodationCost)) ? 0 : parseFloat(accommodationCost);
detailTotal += isNaN(parseFloat(urbanTrafficCost)) ? 0 : parseFloat(urbanTrafficCost);
detailTotal += isNaN(parseFloat(otherCost)) ? 0 : parseFloat(otherCost);
document.getElementById("ctl00_contentForm_rptReimburseDetail_ctl" + GetRowNumber(rptIndex) + "_txtDetailTotal").value = parseFloat(detailTotal);
}
}
function GetRowNumber(i) {
if (i > 10) {
return i;
}
else {
return '0' + i;
}
}
JS如何得到Repeater中TextBox控件的值的更多相关文章
- c# winform 在一个窗体中使用另一个窗体中TextBox控件的值——解决办法
[前提]一个winform应用程序项目中,窗体B,需要使用 窗体A 中一个TextBox控件的值,进行计算等操作. [解决方案] 1.在窗体A中定义:public static double a;// ...
- [转载]ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值
原文地址:http://www.cnblogs.com/yxyht/archive/2013/03/02/2939883.html ASP.NET中TextBox控件设置ReadOnly=" ...
- js如何获取asp.net服务器端控件的值(label,textbox,dropdownlist,radiobuttonlist等)
js如何获取asp.net服务器端控件的值(label,textbox,dropdownlist,radiobuttonlist等) 欢迎访问原稿:http://hi.baidu.com/2wixia ...
- ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值
SP.NET中TextBox控件设置ReadOnly="true"H或Enabled=false后台取不到值 当TextBox设置了ReadOnly="true" ...
- JS获取填报扩展单元格控件的值
1. 问题描述 填报预览时,我们想获取到某个控件的值相对来说较容易.但如果控件是扩展的,就只能获取到第一个值,无法根据扩展一行行获取对应的值. 例:本意是想获取到袁成洁,结果还是获取到第一个单元格值孙 ...
- C# 清除当前窗体中TextBox控件中的内容
//当有多个窗体时,对顶层的窗口进行操作,例如:我们开发具有录入功能的界面的时候,为了防止提交后的二次(重复)录入,希望点击提交按钮并提示成功后,界面的所有文本框内容能够自动清空.NET Framew ...
- Winform中TextBox控件开启自动提示补全功能
问题:Winform开发中,有一个TextBox控件用以输入姓名,现希望在输入名字时能够自动提示所有可能的名字. 解答:winform中的TextBox控件含有如下三个属性: ① AutoComp ...
- HTML控件ID和NAME属性及在CS页面获得.ASPX页面中HTML控件的值
<转载>来自网络 一.ID是在客户端脚本里用!NAME是用于获取提交表单的某表单域信息,在form里面,如果不指定Name的话,就不会发送到服务器端,所以有name属性的控件,必须指定na ...
- HTML控件ID和NAME属性的区别,以及如何在asp.net页面的.CS文件中获得.ASPX页面中HTML控件的值
在html中:name指的是用户名称,ID指的是用户注册是系统自动分配给用户的一个序列号. name是用来提交数据的,提供给表单用,可以重复: id则针对文档操作时候用,不能重复.如:document ...
随机推荐
- MySql事务及隔离级别
在数据库中,所谓事务是指作为单个逻辑工作单元执行的一系列操作. 事务的操作: 先定义开始一个事务,然后对数据作修改操作, 这时如果提交(COMMIT),这些修改就永久地保存下来 如果回退(ROLLBA ...
- SSH-key密钥生成
为了能够不用输入密码访问git库(github/gitlab),需要使用ssh key ssh-keygen -t rsa -C "<your email address>&qu ...
- 使用PyQt4写界面后台程序方法总结
使用PyQt4编写界面后台程序的方法总结 一.怎么建立多线程 界面程序如果有稍微耗时一点的任务如果不使用多线程就会界面卡死,所以大多数情况会使用到多线程.PyQt4自己有多线程的机制,可以派生多线程类 ...
- C语言初学 判断闰年的问题
#include<stdio.h> main( ) { int year , leap; scanf("%d",&year); i ...
- Spring security oauth2最简单入门环境搭建
关于OAuth2的一些简介,见我的上篇blog:http://wwwcomy.iteye.com/blog/2229889 PS:貌似内容太水直接被鹳狸猿干沉.. 友情提示 学习曲线:spring+s ...
- AFNetworking使用总结
AFNetworking使用总结 关于AFNetworking使用总结 以及一些错误的解决办法. AD:WOT2015 互联网运维与开发者大会 热销抢票 AFNetworking使用总结 分享类型 ...
- 智能卡安全机制比较系列(六) TimeCOS
TimeCOS是握奇公司推出的智能卡操作系统,也可以说是国内早期自己开发的为数不多的几款COS之一.当然随着后来国内公司对于CPU卡开发的投入,其他公司的COS产品也纷纷推出. 其实从握奇的TimeC ...
- C语言在单片机开发中的应用
在单片机的开发应用中,已逐渐开始引入高级语言,C语言就是其中的一种.对用惯了汇编的人来说,总觉得高级语言’可控性’不好,不如汇编那样随心所欲.但是只要我们掌握了一定的C语言知识,有些东西还是容易做出来 ...
- logstash tag使用说明
zjtest7-frontend:/usr/local/logstash-2.3.4/config# cat stdin04.conf input { stdin { } } filter { # d ...
- Android Spinner使用简介
Android中使用Spinner作为下拉列表,下面直接看实现方式: (1)使用ArrayAdapter来实现: 实现步骤: 1. 在布局文件中定义Spinner组件: 2. 向Spinner添加需要 ...