or
<telerik:RadComboBox ID="LabsDDL" runat="server" AutoPostBack="True" DataSourceID="dsLabs" DataTextField="Name" DataValueField="DataSourceID" Width="250px" Height="150px" Skin="Outlook"> </telerik:RadComboBox> </br></br> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> </ContentTemplate> </asp:UpdatePanel>
Here's my vb code:
Protected Sub LabsDDL_SelectedIndexChanged(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) Handles LabsDDL.SelectedIndexChanged BuildGrids(LabsDDL.SelectedItem.Value) End SubProtected Overrides Sub OnInit(ByVal e As EventArgs) PlaceHolder1.Controls.Clear() End SubProtected Sub BuildGrids(ByVal LabID As Integer) Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("StagingConnectionString").ConnectionString) Dim cmd As New SqlCommand() cmd.Connection = conn cmd.CommandType = CommandType.StoredProcedure cmd.CommandText = "spLookupChecksNew" 'Create and add a parameter to Parameters collection for the stored procedure. cmd.Parameters.Add(New SqlParameter("@Lab", SqlDbType.Int)) 'Assign the search value to the parameter. cmd.Parameters("@Lab").Value = LabID Dim da As SqlDataAdapter = New SqlDataAdapter(cmd) Dim ds As New DataSet() ds.Clear() ds.Tables.Clear() da.Fill(ds) Dim i As Integer i = 0 'This will fill dataset with three tables. For Each DataTable In ds.Tables If ds.Tables(i).Rows.Count > 0 Then Dim myConn As New SqlConnection(ConfigurationManager.ConnectionStrings("StagingConnectionString").ConnectionString) myConn.Open() Dim CheckID As Integer Dim CheckName As String Dim CheckType As Integer Dim ColumnName As String Dim AssociatedTable As String Dim ParmDefinition As String CheckID = CInt(ds.Tables(i).Rows(0)(0)) Dim cmdOptions As New SqlCommand("spGetCheckOptions", myConn) cmdOptions.CommandType = CommandType.StoredProcedure cmdOptions.Parameters.AddWithValue("@CheckID", CheckID.ToString) Dim reader As SqlDataReader = cmdOptions.ExecuteReader() While reader.Read If (IsDBNull(reader(0))) Then CheckName = "" Else CheckName = reader(0).ToString() End If If (IsDBNull(reader(1))) Then CheckType = 0 Else CheckType = reader(1) End If If (IsDBNull(reader(2))) Then ColumnName = "" Else ColumnName = reader(2).ToString() End If If (IsDBNull(reader(3))) Then AssociatedTable = "" Else AssociatedTable = reader(3).ToString() End If If (IsDBNull(reader(5))) Then ParmDefinition = "" Else ParmDefinition = reader(5).ToString() End If End While reader.Close() cmdOptions.Dispose() myConn.Close() myConn.Dispose() Dim myGridView As New RadGrid myGridView = New RadGrid() Dim lblMessage As New Literal Try Dim ltrTableStart As New Literal ltrTableStart.Text = "<table><tr><td>" Dim ltrTableEnd As New Literal ltrTableEnd.Text = "</tr></td></table>" Dim literalheader As New Literal literalheader.Text = "<div class='AutoShrink'><h5>" & CheckName & "</h5>" Dim literalfooter As New Literal literalfooter.Text = "</div>" myGridView.EnableViewState = False myGridView.DataSource = ds.Tables(i) Select Case CheckType Case 1 Dim templateColumnName As String = ColumnName Dim templateColumn As New GridTemplateColumn() templateColumn.ItemTemplate = New MyTemplate(templateColumnName, LabsDDL.SelectedValue) templateColumn.HeaderText = "Map value" 'templateColumnName templateColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Center templateColumn.ItemStyle.VerticalAlign = VerticalAlign.Middle myGridView.Columns.Add(templateColumn) End Select Dim viewColumnName As String = ColumnName Dim viewColumn As New GridTemplateColumn() viewColumn.ItemTemplate = New ViewTemplate(viewColumnName, LabsDDL.SelectedValue, ParmDefinition) viewColumn.HeaderText = "View Records" 'viewColumnName viewColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Center viewColumn.ItemStyle.VerticalAlign = VerticalAlign.Middle myGridView.Columns.Add(viewColumn) myGridView.ID = "rgErrors" & i.ToString myGridView.Skin = "Outlook" myGridView.CssClass = "AutoShrink" myGridView.MasterTableView.TableLayout = GridTableLayout.Auto myGridView.MasterTableView.CssClass = "AutoShrink" myGridView.ClientSettings.Resizing.ClipCellContentOnResize = True myGridView.DataBind() PlaceHolder1.Controls.Add(ltrTableStart) PlaceHolder1.Controls.Add(literalheader) PlaceHolder1.Controls.Add(myGridView) PlaceHolder1.Controls.Add(literalfooter) PlaceHolder1.Controls.Add(ltrTableEnd) myConn.Close() myConn.Dispose() myGridView.MasterTableView.Dispose() myGridView.Dispose() Catch ex As Exception lblMessage.Text = "<h5 style=""color: red"">Error building grid: " & CheckName & " (MESSAGE:" & ex.Message.ToString & ")</h5>" PlaceHolder1.Controls.Add(lblMessage) End Try End If i = i + 1 Next cmd.Dispose() conn.Close() conn.Dispose() End Sub[ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index] System.Collections.ArrayList.get_Item(Int32 index) +7485640 Telerik.Web.UI.GridColumnCollection.System.Web.UI.IStateManager.SaveViewState() +215 Telerik.Web.UI.GridTableView.GetStructureState() +257 Telerik.Web.UI.RadGrid.SaveTableViewStructure(ArrayList stateList, GridTableView tableView) +81 Telerik.Web.UI.RadGrid.SaveViewState() +128 System.Web.UI.Control.SaveViewStateRecursive() +187 System.Web.UI.Control.SaveViewStateRecursive() +106 System.Web.UI.Control.SaveViewStateRecursive() +106 System.Web.UI.Control.SaveViewStateRecursive() +106 System.Web.UI.Control.SaveViewStateRecursive() +106 System.Web.UI.Control.SaveViewStateRecursive() +106 System.Web.UI.Control.SaveViewStateRecursive() +106 System.Web.UI.Control.SaveViewStateRecursive() +106 System.Web.UI.Page.SaveAllState() +168 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1099 We are facing difficulties in implementing above combination of functionalities for Grid control. Your reply and any hot fix will be really useful and highly appreciatable. Looking for your response.
<telerik:RadGrid ID="RadGrid2" runat="server" AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True" AllowFilteringByColumn="True" AllowMultiRowSelection="True" AllowPaging="True" AllowSorting="True" DataSourceID="LinqDataSource1" GridLines="None" ondatabound="RadGrid1_DataBound" onitemdatabound="RadGrid1_ItemDataBound" onitemdeleted="RadGrid1_ItemDeleted" oniteminserted="RadGrid1_ItemInserted" onitemupdated="RadGrid1_ItemUpdated"> <MasterTableView AutoGenerateColumns="False" CommandItemDisplay="Top" DataSourceID="LinqDataSource1" DataKeyNames="Id"> <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings> <Columns> <telerik:GridTemplateColumn DataField="Id" HeaderText="Gruppe" SortExpression="Id" UniqueName="Id" AutoPostBackOnFilter="True" ShowFilterIcon="false"> <FooterTemplate>Template footer</FooterTemplate><FooterStyle VerticalAlign="Middle" HorizontalAlign="Center" /> <ItemTemplate><%#DataBinder.Eval(Container.DataItem, "Id")%></ItemTemplate> <EditItemTemplate> <telerik:RadComboBox DataTextField="Id" DataValueField="Id" ID="RadComboBox1" HighlightTemplatedItems="true" EmptyMessage="Velg et element..." AllowCustomText="true" runat="server" Height="100px" Width="95px" SelectedValue='<%#Bind("Id") %>' AutoPostBack="true" EnableAutomaticLoadOnDemand="True"></telerik:RadComboBox> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridNumericColumn DataField="FEE" DataType="System.Double" HeaderText="Avgift" SortExpression="FEE" UniqueName="FEE"> </telerik:GridNumericColumn> <telerik:GridNumericColumn DataField="PBE" DataType="System.Double" HeaderText="PBE" SortExpression="PBE" UniqueName="PBE"> </telerik:GridNumericColumn> <telerik:GridEditCommandColumn CancelText="Avbryt" EditText="Endre" InsertText="Sett inn" UpdateText="Oppdater"> </telerik:GridEditCommandColumn> <telerik:GridButtonColumn CommandName="Delete" Text="Slett" UniqueName="column1"> </telerik:GridButtonColumn> </Columns> </MasterTableView> </telerik:RadGrid> <asp:LinqDataSource ID="LinqDataSource2" runat="server" OnInserting="GridDataSource_Inserting" ContextTypeName="Mobitech.Mtbs2InfoEasy.linq.Mtbs2InfoEasy_DataClassesDataContext" TableName="Groups" OrderBy="Id" Select="new (Id, FEE, PBE)"> </asp:LinqDataSource>protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e){ if (e.Item.OwnerTableView.IsItemInserted && e.Item is GridDataInsertItem) { FillComboBoxWithClassCodes(e, "RadComboBox1"); SetColumnWidthInInsertMode(e); } else if (!(e.Item is GridDataInsertItem) && e.Item.IsInEditMode) {
FillComboBoxWithClassCodes(e, "RadComboBox1"); SetColumnWidthInEditMode(e); SetFocusOnField(e, "PBE"); }}private void FillComboBoxWithClassCodes(GridItemEventArgs e, string comboBoxName){ var editItem = (GridDataItem) e.Item; if (editItem == null) return; var comboBox = (RadComboBox) editItem.FindControl(comboBoxName); comboBox.Items.Clear();
foreach (var classCode in classCodes) { var item = new RadComboBoxItem(); item.Text = classCode; item.Value = classCode; comboBox.Items.Add(item); } comboBox.DataBind();}