Reputation: 3133
I have RadGrid with DropDownlist. I am trying to find the value of each control by looping through using javascript and I am getting findcontrol as 'null'. I have attached OnClientRatingSelectedIndexChanged
in code behind for the dropdownlist.
What could be wrong? I appreciate any suggestions.
<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;
}
Upvotes: 2
Views: 5601
Reputation: 800
Try this :
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);
}
Upvotes: 1