我有一个带有图像列和RadNumericTextBox列的RadGrid。这是我的标记:
<Columns>
<telerik:GridTemplateColumn>
<ItemTemplate>
<asp:Image ID="imgStatus" runat="server" ImageUrl="~/Content/Images/cross.png" />
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="ID" DataType="System.Int64" FilterControlAltText="Filter ID column" HeaderText="ID" ReadOnly="True" SortExpression="ID" UniqueName="ID">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="PalletNumber" FilterControlAltText="Filter PalletNumber column" HeaderText="PalletNumber" SortExpression="PalletNumber" UniqueName="PalletNumber">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Available" DataType="System.Int32" FilterControlAltText="Filter Available column" HeaderText="Available" ReadOnly="True" SortExpression="Available" UniqueName="Available">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Quantity" DataType="System.Int32" FilterControlAltText="Filter Quantity column" HeaderText="Quantity Allocated" ReadOnly="True" SortExpression="Quantity" UniqueName="Quantity">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn HeaderText="Booked Off">
<ItemTemplate>
<telerik:RadNumericTextBox ID="nmBookedOff" runat="server" MaxValue='<%# Convert.ToDouble(Eval("Quantity")) %>' MinValue="0" ShowSpinButtons="true" Type="Number" NumberFormat-DecimalDigits="0" ClientEvents-OnValueChanged='valueChanged'></telerik:RadNumericTextBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
因此,用户将通过每行更改已预订的关闭数量,并且想法是如果数字列具有值,则image列将更改为'tick.png'。正如您在RadNumericTextBox上看到的,我已经连接了一个客户端事件处理程序,但是如何从那里获取行对象?事件中发送者的get.parent()只给了我GridTableView!
答案 0 :(得分:0)
请尝试使用以下代码段。
JS
<script type="text/javascript">
function valueChanged(sender, args) {
if (args.get_newValue() > 0) {
$("#" + sender.get_id().replace("nmBookedOff", "imgStatus")).get(0).src = "http://gradly.net/wp-content/uploads/2011/04/20110424_lion_appstore_icon.png";
}
else {
$("#" + sender.get_id().replace("nmBookedOff", "imgStatus")).get(0).src = "http://promote.opera.com/logos/Opera-icon-high-res.png";
}
}
</script>
ASPX
<MasterTableView CommandItemDisplay="Top" EditMode="InPlace">
<Columns>
<telerik:GridBoundColumn DataField="ID" UniqueName="ID" HeaderText="ID">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Name" UniqueName="Name" HeaderText="Name">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn>
<ItemTemplate>
<asp:Image ID="imgStatus" runat="server" ImageUrl="http://promote.opera.com/logos/Opera-icon-high-res.png"
Height="20px" Width="20px" />
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Booked Off">
<ItemTemplate>
<telerik:RadNumericTextBox ID="nmBookedOff" runat="server" MinValue="0" ShowSpinButtons="true"
Type="Number" NumberFormat-DecimalDigits="0" ClientEvents-OnValueChanged='valueChanged'>
</telerik:RadNumericTextBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridEditCommandColumn>
</telerik:GridEditCommandColumn>
</Columns>
</MasterTableView>
了解更多信息。请查看以下链接。 http://jayeshgoyani.blogspot.in/2012/07/access-another-control-which-was-in.html