Protected Sub Calculator_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles Calculator.ItemDataBound
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim txtValue1 As TextBox = CType(e.Item.FindControl("value1"), TextBox)
Dim txtValue2 As TextBox = CType(e.Item.FindControl("value2"), TextBox)
txtValue1.Attributes.Add("onkeyup", String.Format("javascript:addNumbers({0})", e.Item.ItemIndex))
txtValue2.Attributes.Add("onkeyup", String.Format("javascript:addNumbers({0})", e.Item.ItemIndex))
End If
End Sub
..and change your aspx to look like this:
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Untitled Page</title>
<script language="javascript">
function addNumbers(index) {
if (index < 10)
index = "0" + index;
var val1 = parseInt(document.getElementById("Calculator_ctl" + index + "_value1").value);
var val2 = parseInt(document.getElementById("Calculator_ctl" + index + "_value2").value);
var ansD = document.getElementById("Calculator_ctl" + index + "_answer");
ansD.value = val1 + val2;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:DataList ID="Calculator" runat="server" RepeatLayout="Flow" OnItemDataBound="Calculator_ItemDataBound">
<ItemTemplate>
<asp:TextBox ID="value1" runat="server" name="value1" value="1"></asp:TextBox>
<asp:TextBox ID="value2" runat="server" name="value2" value="2"></asp:TextBox>
<asp:TextBox ID="answer" runat="server" name="answer" ReadOnly="True"></asp:TextBox>
</ItemTemplate>
</asp:DataList>
</form>
</body>
</html>
Please 'Mark as Answer' if this post helped you.
Marked as answer by shabeerna2005 on Apr 14, 2012 01:17 PM
mm10
Contributor
6455 Points
1187 Posts
Re: calculating the values of textbox in a datalist using javascript
Apr 14, 2012 12:44 PM|LINK
Add this to your code behind:
Protected Sub Calculator_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles Calculator.ItemDataBound If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then Dim txtValue1 As TextBox = CType(e.Item.FindControl("value1"), TextBox) Dim txtValue2 As TextBox = CType(e.Item.FindControl("value2"), TextBox) txtValue1.Attributes.Add("onkeyup", String.Format("javascript:addNumbers({0})", e.Item.ItemIndex)) txtValue2.Attributes.Add("onkeyup", String.Format("javascript:addNumbers({0})", e.Item.ItemIndex)) End If End Sub..and change your aspx to look like this:
<html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>Untitled Page</title> <script language="javascript"> function addNumbers(index) { if (index < 10) index = "0" + index; var val1 = parseInt(document.getElementById("Calculator_ctl" + index + "_value1").value); var val2 = parseInt(document.getElementById("Calculator_ctl" + index + "_value2").value); var ansD = document.getElementById("Calculator_ctl" + index + "_answer"); ansD.value = val1 + val2; } </script> </head> <body> <form id="form1" runat="server"> <asp:DataList ID="Calculator" runat="server" RepeatLayout="Flow" OnItemDataBound="Calculator_ItemDataBound"> <ItemTemplate> <asp:TextBox ID="value1" runat="server" name="value1" value="1"></asp:TextBox> <asp:TextBox ID="value2" runat="server" name="value2" value="2"></asp:TextBox> <asp:TextBox ID="answer" runat="server" name="answer" ReadOnly="True"></asp:TextBox> </ItemTemplate> </asp:DataList> </form> </body> </html>