Telerik RadGrid - 从JavaScript中的模板字段获取父GridDataItem

时间:2012-12-21 09:16:30

标签: c# javascript telerik radgrid

我有一个带有图像列和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!

1 个答案:

答案 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