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 ...
随机推荐
- java线层的启动与停止
class Do8 { public static void main(String[] args) { Resource r =new Resource(); Input in =new Input ...
- Ubuntu下安装搜狗拼音输入法
Ubuntu默认输入法是ibus输入法,其实用着也可以了,但是说句实话在某些情况下真的不怎么智能.习惯了搜狗所以,查阅资料测试成功后整理如下, 1.安装搜狗拼音 sudo apt-add-reposi ...
- 关于升级到win10后的网络问题
最近我的alienware电脑从win7升级到win10,看到很多网友都有一个问题,那就是网络受限了, 基本看了很多百度到的,方法基本都不是很有用,我看到了一个网友的办法完美解决了我机器上的网络问题, ...
- POJ2151 动态规划
#include <iostream> #include <cstring> #include <cstdio> using namespace std; int ...
- 文成小盆友python-num3 集合,函数,-- 部分内置函数
本接主要内容: set -- 集合数据类型 函数 自定义函数 部分内置函数 一.set 集合数据类型 set集合,是一个无序且不重复的元素集合 集合基本特性 无序 不重复 创建集合 #!/bin/en ...
- Membership添加验证码登录
1.在公共类ImageHelper中编写公共方法,产生随机验证码 /// <summary> /// 产生随机验证码 /// </summary> /// <return ...
- Asp.Net 控件radio 的简单使用
js: <script type="text/javascript"> function ok() { document.getElementById("tx ...
- bug经验
1.异常信息丢失导致定位问题困难. 2.findbugs工具 3.在某些if语句判断中return,可能会导致文件句柄无法关闭. 4.lastmodified()在win下和linux下的处理是不同的 ...
- frame嵌套的学习
iframe嵌套的学习 具体代码<br /> window.onload=function(){<br /> var voteid=window.parent.parent.d ...
- HTTP缓存机制梳理
一般只对GET类型请求做缓存,对POST不做缓存 缓存协商 指浏览器和Web服务器之间对于是否使用浏览器端缓存的协商.对于较小的文件内容,由于缓存协商仍需要发送请求,所以吞吐率提高不大:但没有正文传输 ...