Hi,
I have RadComboBoxes in a templated RadListView:
<telerik:RadListView ID="RadListView_ProductDetails" runat="server" OnNeedDataSource="RadListView_ProductDetails_NeedDataSource" DataKeyNames="ID" ItemPlaceholderID="ProductDetailsItemContainer" OnItemCommand="RadListView_ProductDetails_ItemCommand" OnItemDataBound="RadListView_ProductDetails_ItemDataBound"> <LayoutTemplate> <div style="clear: both; margin-bottom: 3px"> <asp:PlaceHolder ID="ProductDetailsItemContainer" runat="server"></asp:PlaceHolder> </div> </LayoutTemplate> <ItemTemplate> <div class="productdetail"> <div class="productdetailcolumn productdetailtitle"><%#Eval("ProductDetailTitle")%></div> <div class="productdetailcolumn productdetailoptions"><telerik:RadComboBox ID="RadComboBox_ProductDetail" ClientIDMode="Static" AllowCustomText="false" EnableTextSelection="false" runat="server" Width="200px" DataTextField="ProductDetailItemKey" DataValueField="ProductDetailItemValue"></telerik:RadComboBox></div> <div class="productdetailcolumn productdetailbutton addbutton"><telerik:RadButton ID="RadButton_AddProductDetail" runat="server" Text="Ekle" CommandName="Add"><Icon PrimaryIconCssClass="rbAdd" /></telerik:RadButton></div> </div> </ItemTemplate></telerik:RadListView>On ItemDataBound, rename all RadCombobox ID's to unique one.
protected void RadListView_ProductDetails_ItemDataBound(object sender, Telerik.Web.UI.RadListViewItemEventArgs e){ RadListViewDataItem rlvi = (RadListViewDataItem) (e.Item); Int32 iProductDetailTitleID = Convert.ToInt32(rlvi.GetDataKeyValue("ID").ToString()); RadComboBox rcb = (RadComboBox) rlvi.FindControl("RadComboBox_ProductDetail"); rcb.ClientIDMode = ClientIDMode.Static; rcb.ID = "RadComboBox_ProductDetail_" + iProductDetailTitleID;}Then add items to all comboboxes:
RadListView_ProductDetails.Rebind();foreach (RadListViewDataItem rlvi in RadListView_ProductDetails.Items){ Int32 iProductDetailTitleID = Convert.ToInt32(rlvi.GetDataKeyValue("ID").ToString()); RadComboBox rcb = (RadComboBox) rlvi.FindControl("RadComboBox_ProductDetail_" + iProductDetailTitleID); RadControlActions.FillRadComboBox(rcb, "SELECT PreviouslyUsedValue AS ItemText, PreviouslyUsedValue AS ItemValue FROM ProductDetailTitlesPreviousValues WHERE ProductDetailTitleID = " + iProductDetailTitleID + " ORDER BY PreviouslyUsedValue", "");}
All OK to this point.
But when i hit save button, i can't access selected values of RadComboBoxes with this method, because RadComboBox is null:
foreach (RadListViewDataItem rlvi in RadListView_ProductDetails.Items){ Int32 iProductDetailTitleID = Convert.ToInt32(rlvi.GetDataKeyValue("ID").ToString()); RadComboBox rcb = (RadComboBox) (rlvi.FindControl("RadComboBox_ProductDetail_" + iProductDetailTitleID)); String strProductDetail = rcb.SelectedValue}I get error "System.NullReferenceException: Object reference not set to an instance of an object."
How can get new selected values of this comboboxes?
Thanks.