I apologize if this has been answered elsewhere. I have what, I think, is a simple problem. I am trying to access one of the controls in the LayoutTemplate of a RadListView via javascript. Here is the ListView code:
Whenever the txtValue is updated, I fire a javascript function to determine if the values are 100% based on the current total value that is set in the codebehind. Here is the code I have that is working:
However, The id to get the object for the txtTotalValue control was obtained through "View Source". What I am looking for is the right way to do this that avoids browser differences, web server differences, etc.
Any thoughts?
<
telerik:RadListView
ID
=
"rlvApproval"
runat
=
"server"
>
<
LayoutTemplate
>
<
table
>
<
tr
>
<
td
style
=
"width: 250px;"
>
</
td
>
<
td
style
=
"width: 200px; font-weight: bold;"
>
</
td
>
</
tr
>
</
table
>
<
asp:PlaceHolder
ID
=
"itemplaceholder"
runat
=
"server"
/>
<
table
>
<
tr
>
<
td
style
=
"width: 250px;"
>
<
asp:Label
ID
=
"lblName"
runat
=
"server"
Text
=
"Total"
Font-Bold
=
"true"
/>
</
td
>
<
td
style
=
"width: 200px; font-weight: bold;"
>
<
telerik:RadNumericTextBox
ID
=
"txtTotalValue"
runat
=
"server"
ReadOnly
=
"true"
DataType
=
"System.Decimal"
Skin
=
"Web20"
>
<
NumberFormat
DecimalDigits
=
"0"
/>
</
telerik:RadNumericTextBox
>
</
td
>
</
tr
>
</
table
>
</
LayoutTemplate
>
<
ItemTemplate
>
<
table
>
<
tr
>
<
td
style
=
"width: 250px;"
>
<
asp:Label
ID
=
"lblName"
runat
=
"server"
Text='<%# Eval("name") %>' />
</
td
>
<
td
style
=
"width: 250px;"
>
<
telerik:RadNumericTextBox
ID
=
"txtValue"
runat
=
"server"
DataType
=
"System.Decimal"
Skin
=
"Web20"
DbValue='<%# DataBinder.Eval(Container.DataItem, "value") %>' MaxValue="100"
MinValue="0" AutoPostBack="false" >
<
NumberFormat
DecimalDigits
=
"0"
/>
<
ClientEvents
OnValueChanged
=
"ValidateWeighting"
/>
</
telerik:RadNumericTextBox
>
</
td
>
</
tr
>
</
table
>
</
ItemTemplate
>
<
EmptyDataTemplate
>
<
div
class
=
"message"
>
<
asp:Label
ID
=
"lblEmptyMessage"
runat
=
"server"
SkinID
=
"messageBig"
Text
=
"Error loading approval information..."
/>
</
div
>
</
EmptyDataTemplate
>
</
telerik:RadListView
>
function ValidateWeighting(sender, eventArgs) {
var object = document.getElementById('ctl00_ContentPlaceHolder1_Weighting1_rlvApproval_txtTotalValue_text');
var object2 = document.getElementById('<%= rlvApproval.ClientID %>');
var current = eval(object.value);
var old = eventArgs.get_oldValue();
var newval = eventArgs.get_newValue();
var tmp = current + (newval - old);
if (tmp == 100) {
document.getElementById('<%= btnSave.ClientID %>').disabled = false;
}
else {
document.getElementById('<%= btnSave.ClientID %>').disabled = true;
}
object.value = tmp;
}
Any thoughts?