or
Hi
I am going round in circles trying to beat this problem which I fairly sure is a result trying bind the value of the combos box item to a column which may contain null value. The error occurs as soon as the the grid's 'Edit' button is clicked with some database items/
The relevant grid declaration is like this
<telerik:GridTemplateColumn DataField="Marshals" HeaderText="Marshal" SortExpression="Marshals" UniqueName="Marshals" Visible="False"> <EditItemTemplate> <telerik:RadComboBox ID="RadComboBox1" Runat="server" AppendDataBoundItems="True" SelectedValue='<%# bind("Marshals") %>' Width="225px"> </telerik:RadComboBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="MarshalsLabel" runat="server" Text='<%# Eval("Marshals") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn>Protected Sub RadGrid1_ItemCreated(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles RadGrid1.ItemCreated If TypeOf e.Item Is GridEditFormItem AndAlso e.Item.IsInEditMode Then Dim editform As GridEditFormItem = DirectCast(e.Item, GridEditFormItem) Dim combo As RadComboBox = DirectCast(editform.FindControl("RadComboBox1"), RadComboBox) Bind(combo) Dim combo2 As RadComboBox = DirectCast(editform.FindControl("RadComboBox2"), RadComboBox) Bind(combo2) End If End Sub Private Sub Bind(combo As RadComboBox) Dim strMemberID As String = "" Dim sb As New StringBuilder Dim Ds As New DataSet Dim UserTable As New DataTable("UserTable") UserTable.Columns.Add("Text", GetType(String)) UserTable.Columns.Add("Value", GetType(String)) UserTable.Rows.Add("Pick one", "0") Dim rdr As SqlDataReader = ConstClass.getCurrentMembers() If rdr.HasRows Then While rdr.Read() ' build a row of the combo ' Text If Not IsDBNull(rdr("FirstName")) Then sb.Append(rdr("FirstName")) Else sb.Append("") End If sb.Append(" ") If Not IsDBNull(rdr("LastName")) Then sb.Append(rdr("LastName")) Else sb.Append("") End If sb.Append(" & ") If Not IsDBNull(rdr("PartnerFirstName")) Then sb.Append(rdr("PartnerFirstName")) Else sb.Append("") End If sb.Append(" ") If Not IsDBNull(rdr("PartnerLastName")) Then sb.Append(rdr("PartnerLastName")) Else sb.Append("") End If If Not IsDBNull("MemberID") Then strMemberID = rdr("MemberID") Else strMemberID = "0" End If UserTable.Rows.Add(sb.ToString, strMemberID) sb.Clear() End While UserTable.AcceptChanges() Ds.Tables.Add(UserTable) Ds.AcceptChanges() rdr.Close() LiteralTest.Text = sb.ToString Else UserTable.Rows.Add(sb.ToString, strMemberID) UserTable.AcceptChanges() Ds.Tables.Add(UserTable) Ds.AcceptChanges() rdr.Close() End If combo.DataTextField = "Text" combo.DataValueField = "Value" combo.DataSource = Ds End Sub<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnableAJAX="True"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RemoveFeed"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="ListBoxFeeds" LoadingPanelID="ajaxLoading" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManage><telerik:RadListBox AppendDataBoundItems="true" runat="server" ID="ListBoxFeeds" CssClass="boxComments" AutoPostBack="True" RegisterWithScriptManager="True" AllowReorder="False" AllowTransfer="False" EnableDragAndDrop="False" AllowAutomaticUpdates="True"> <ItemTemplate> <asp:Button ID="RemoveFeed" OnClick="removeFeed_Click" CssClass="removeItem" runat="server" Text="Test"/> </ItemTemplate> </telerik:RadListBox>
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource" OnUpdateCommand="RadGrid1_UpdateCommand"> <MasterTableView> <Columns> <telerik:GridTemplateColumn> <ItemTemplate> <asp:HyperLink NavigateUrl='<%# Bind("Name", "mailto:{0}") %>' Text='<%# Bind("Name") %>' runat="server" ID="hlEmail"></asp:HyperLink> <br /> <a href='<%# "mailto:" + Eval("Name") %>'><%# Eval("Name") %></a> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridEditCommandColumn> </telerik:GridEditCommandColumn> </Columns> </MasterTableView> </telerik:RadGrid>