2013-09-24 106 views
2

我有RadGrid DropDownlist。我试图通过使用JavaScript循环来查找每个控件的值,并将findcontrol作为'null'。我在代码后面添加了OnClientRatingSelectedIndexChanged作为下拉列表。 什么可能是错的?我很欣赏任何建议。检索RadGrid控件下拉列表选定的值

<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" AlternatingItemStyle-HorizontalAlign="Left" 
           OnNeedDataSource="RadGrid1_NeedDataSource"> 
           <MasterTableView DataKeyNames="level_id" PageSize="10"> 
            <Columns> 
<telerik:GridTemplateColumn UniqueName="TemplateColumn" HeaderText="Test" 
              Visible="true"> 
              <ItemTemplate> 
               <asp:Panel ID="Panel1" runat="server"> 
                <asp:DropDownList ID="Drop1" runat="server"                                  AutoPostBack="true"> 
                </asp:DropDownList> 
               </asp:Panel> 
              </ItemTemplate> 
             </telerik:GridTemplateColumn> 
            </Columns> 
</MasterTableView> 
</telerik:RadGrid> 

的Javascript

function OnClientRatingSelectedIndexChanged(arg) { 

     var grid = $find("<%=RadGrid1.ClientID %>"); 
     var MasterTable = grid.get_masterTableView(); 
     var Rows = MasterTable.get_dataItems(); 
     for (var i = 0; i < Rows.length; i++) { 
      var row = Rows[i]; 
      var drop1 = row.findControl("Drop1"); 
      var val1 = drop1.selectedValue; 
     } 

回答

1

试试这个:

protected void Radgrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) 
    { 
     if (e.Item is GridDataItem) 
     { 
      GridDataItem item = (GridDataItem)e.Item; 
      DropDownList list = (DropDownList)item.FindControl("DropDownList1"); 
      list.Attributes.Add("onChange", "OnSelectedIndexChange('" + item.ItemIndex + "');"); 
     } 
    } 

JS:

function OnSelectedIndexChange(rowindex) { 
     var grid = $find("<%=Radgrid1.ClientID %>"); 
     var MasterTable = grid.get_masterTableView(); 
     var drop1 = MasterTable.get_dataItems()[rowindex].findElement('DropDownList1'); 
     alert(drop1.value); 

    } 
+0

谢谢。有用。 – nav100

+0

不应该是'DropDownList list =(DropDownList)item.FindControl(“Drop1”);'? – FranciscoBouza