2012-12-21 57 views
0

我有一個帶圖像列和RadNumericTextBox列的RadGrid。這裏是我的標記:Telerik RadGrid - 從JavaScript中的模板字段獲取父GridDataItem

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

因此,用戶將通過每行更改預訂的數量,並且想法是如果數字列具有值,圖像列將更改爲'tick.png'。正如您在RadNumericTextBox上看到的,我已經連接了一個客戶端事件處理程序,但是如何從那裏獲取行對象?事件中發件人的get.parent()只是給了我GridTableView!

回答

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