Hi,
i have a RadGrid with templated columns. I have a ReportLevel RadCombobox & a CostCentreLow RadComboBox in the edit template.
The CostCentreLow Radcombobox is populated from a SqlDatasource but what i want to do is base the sqldatasource select command on the value selected in the ReportLevel combobox & then rebind datasource to the CostCentreLow combobox. I need this to work on the reportlevel selectedIndexChanged.
I have tried the RadGrid ItemCreated method but i get a databind error when i try to change the SqlDataSource select command in the ReportLevel SelectedIndexChanged event & it doesn't work if i try to bind the datasource in the Radgrid ItemCreated event (as i need the datasource changed based on the value in the ReportLevel ComboBox).
here is the code for my project:
As mentioned, because i need the datasource changed based on the reportlevel value selected, i need the datasource selectcommand being assigned a new value in the ReportLevel SelectedIndexChanged event but this gives me a databind error.
Can you please help me find a solution to this problem?
Regards,
Shuja
i have a RadGrid with templated columns. I have a ReportLevel RadCombobox & a CostCentreLow RadComboBox in the edit template.
The CostCentreLow Radcombobox is populated from a SqlDatasource but what i want to do is base the sqldatasource select command on the value selected in the ReportLevel combobox & then rebind datasource to the CostCentreLow combobox. I need this to work on the reportlevel selectedIndexChanged.
I have tried the RadGrid ItemCreated method but i get a databind error when i try to change the SqlDataSource select command in the ReportLevel SelectedIndexChanged event & it doesn't work if i try to bind the datasource in the Radgrid ItemCreated event (as i need the datasource changed based on the value in the ReportLevel ComboBox).
here is the code for my project:
<telerik:RadGrid ID="RadGrid1" GridLines="None" runat="server" AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True" AllowPaging="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" Skin="Web20" Width="99%" AllowFilteringByColumn="True" OnItemUpdated="RadGrid1_ItemUpdated" OnItemDeleted="RadGrid1_ItemDeleted" OnItemInserted="RadGrid1_ItemInserted" OnDataBound="RadGrid1_DataBound" OnItemDataBound="RadGrid1_ItemDataBound" OnItemCreated="RadGrid1_ItemCreated" onitemcommand="RadGrid1_ItemCommand" AllowSorting="True" Culture="en-GB" CssClass="Grid" Font-Size="X-Small" Font-Names="verdana" PageSize="15" > <PagerStyle Mode="NextPrevAndNumeric" /> <AlternatingItemStyle BackColor="#E8F1FF" /> <MasterTableView CommandItemDisplay="TopAndBottom" DataKeyNames="U_ID" DataSourceID="SqlDataSource1" HorizontalAlign="NotSet" AutoGenerateColumns="False"> <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"></RowIndicatorColumn> <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"></ExpandCollapseColumn> <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn"> <ItemStyle CssClass="MyImageButton" Width="20px" /> </telerik:GridEditCommandColumn> <telerik:GridTemplateColumn HeaderText="ID" SortExpression="U_ID" UniqueName="U_ID" AllowFiltering="true" EditFormColumnIndex="0" FilterControlWidth="50%" DataField="U_ID" > <ItemTemplate> <asp:Label runat="server" CssClass="Label2" Width="30px" ID="U_ID" Text='<%# Eval("U_ID") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="UserName" SortExpression="UserName" UniqueName="UserName" AllowFiltering="true" EditFormColumnIndex="0" FilterControlWidth="70%" DataField="UserName" > <EditItemTemplate> <span style="font-size:13px;color:Red;"> <telerik:RadTextBox runat="server" Width="200px" Text='<%# Bind("UserName") %>' ID="UserName" Visible="true" MaxLength="12" > </telerik:RadTextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator9" ControlToValidate="UserName" ErrorMessage="*" runat="server"> </asp:RequiredFieldValidator> </span> </EditItemTemplate> <InsertItemTemplate> <span style="font-size:13px;color:Red;"> <telerik:RadTextBox runat="server" Width="200px" Text='<%# Bind("UserName") %>' ID="UserName" Visible="true" MaxLength="12" > </telerik:RadTextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator10" ControlToValidate="UserName" ErrorMessage="*" runat="server"> </asp:RequiredFieldValidator> </span> </InsertItemTemplate> <ItemTemplate> <asp:Label runat="server" CssClass="Label2" Width="80px" ID="UserName" Text='<%# Eval("UserName") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Report Level" SortExpression="ReportLevel" UniqueName="ReportLevel" AllowFiltering="true" EditFormColumnIndex="0" FilterControlWidth="70%" DataField="ReportLevel" > <EditItemTemplate> <span style="font-size:13px; color:Red;"> <telerik:RadComboBox runat="server" Width="205px" Height="100px" EmptyMessage="Select a value" HeaderText="ReportLevel" SelectedValue='<%# Bind("ReportLevel") %>' UniqueName="ReportLevel" ID="ReportLevel" > <Items> <telerik:RadComboBoxItem Value="" Text="" /> <telerik:RadComboBoxItem Value="CC" Text="CC" /> <telerik:RadComboBoxItem Value="DIR" Text="DIR" /> </Items> </telerik:RadComboBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator5" ControlToValidate="ReportLevel" ErrorMessage="*" runat="server"> </asp:RequiredFieldValidator> </span> </EditItemTemplate> <InsertItemTemplate> <span style="font-size:13px; color:Red;"> <telerik:RadComboBox runat="server" Width="205px" Height="100px" EmptyMessage="Select a value" HeaderText="ReportLevel" SelectedValue='<%# Bind("ReportLevel") %>' UniqueName="ReportLevel" ID="ReportLevel" > <Items> <telerik:RadComboBoxItem Value="" Text="" /> <telerik:RadComboBoxItem Value="CC" Text="CC" /> <telerik:RadComboBoxItem Value="DIR" Text="DIR" /> </Items> </telerik:RadComboBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator6" ControlToValidate="ReportLevel" ErrorMessage="*" runat="server"> </asp:RequiredFieldValidator> </span> </InsertItemTemplate> <ItemTemplate> <asp:Label runat="server" CssClass="Label2" Width="80px" ID="lblReportLevel" Text='<%# Eval("ReportLevel") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Cost Centre Low" SortExpression="CostCentreLow" UniqueName="CostCentreLow" AllowFiltering="true" EditFormColumnIndex="0" FilterControlWidth="70%" DataField="CostCentreLow" > <EditItemTemplate> <span style="font-size:13px; color:Red;" runat="server" > <telerik:RadComboBox ID="CostCentreLow" runat="server" Enabled="false" DataSourceID="DS_CostCentre" DataTextField="costcentre" DataValueField="costcentre" DropDownWidth="200px" SelectedValue='<%# Bind("CostCentreLow") %>' Width="205px" TabIndex="8" Font-Size="X-Small" Font-Names="Verdana" AppendDataBoundItems="True" > </telerik:RadComboBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="CostCentreLow" ErrorMessage="*" runat="server"> </asp:RequiredFieldValidator> </span> </EditItemTemplate> <InsertItemTemplate> <span style="font-size:13px; color:Red;"> <telerik:RadComboBox ID="CostCentreLow" runat="server" DataSourceID="DS_CostCentre" DataTextField="costcentre" DataValueField="costcentre" DropDownWidth="200px" SelectedValue='<%# Bind("CostCentreLow") %>' Width="205px" TabIndex="8" Font-Size="X-Small" Font-Names="Verdana" AppendDataBoundItems="True" > </telerik:RadComboBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" ControlToValidate="CostCentreLow" ErrorMessage="*" runat="server"> </asp:RequiredFieldValidator> </span> </InsertItemTemplate> <ItemTemplate> <asp:Label runat="server" CssClass="Label2" Width="80px" ID="CostCentreLow" Text='<%# Eval("CostCentreLow") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Cost Centre High" SortExpression="CostCentreHigh" UniqueName="CostCentreHigh" AllowFiltering="true" EditFormColumnIndex="0" FilterControlWidth="70%" DataField="CostCentreHigh" > <EditItemTemplate> <span style="font-size:13px; color:Red;"> <telerik:RadComboBox ID="CostCentreHigh" runat="server" Enabled="false" DataSourceID="DS_CostCentre" DataTextField="costcentre" DataValueField="costcentre" DropDownWidth="200px" SelectedValue='<%# Bind("CostCentreHigh") %>' Width="205px" TabIndex="8" Font-Size="X-Small" Font-Names="Verdana" AppendDataBoundItems="True" > </telerik:RadComboBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" ControlToValidate="CostCentreHigh" ErrorMessage="*" runat="server"> </asp:RequiredFieldValidator> </span> </EditItemTemplate> <InsertItemTemplate> <span style="font-size:13px; color:Red;"> <telerik:RadComboBox ID="CostCentreHigh" runat="server" DataSourceID="DS_CostCentre" DataTextField="costcentre" DataValueField="costcentre" DropDownWidth="200px" SelectedValue='<%# Bind("CostCentreHigh") %>' Width="205px" TabIndex="8" Font-Size="X-Small" Font-Names="Verdana" AppendDataBoundItems="True" > </telerik:RadComboBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator4" ControlToValidate="CostCentreHigh" ErrorMessage="*" runat="server"> </asp:RequiredFieldValidator> </span> </InsertItemTemplate> <ItemTemplate> <asp:Label runat="server" CssClass="Label2" Width="80px" ID="CostCentreHigh" Text='<%# Eval("CostCentreHigh") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridButtonColumn ConfirmText="Delete this record?" ConfirmDialogType="RadWindow" ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Delete" UniqueName="DeleteColumn"> <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" /> </telerik:GridButtonColumn> </Columns> <EditFormSettings ColumnNumber="2" CaptionDataField="U_ID" CaptionFormatString="Edit properties of Record {0}" InsertCaption="New Record"> <FormTableItemStyle Wrap="False"></FormTableItemStyle> <FormTableStyle CellPadding="2" CellSpacing="0" BackColor="#F2FFEC" Height="60px"></FormTableStyle> <FormMainTableStyle CellPadding="3" CellSpacing="0" BackColor="#F2FFEC" Width="100%"></FormMainTableStyle> <FormCaptionStyle CssClass="EditFormHeader"></FormCaptionStyle> <FormMainTableStyle GridLines="None" CellSpacing="0" CellPadding="3" BackColor="#F2FFEC" Width="100%" /> <FormTableStyle CellSpacing="0" CellPadding="2" Height="60px" BackColor="#F2FFEC" /> <FormTableAlternatingItemStyle Wrap="False"></FormTableAlternatingItemStyle> <EditColumn ButtonType="ImageButton" InsertText="Insert Record" UpdateText="Update Record" UniqueName="EditCommandColumn1" CancelText="Cancel edit"> </EditColumn> <FormTableButtonRowStyle HorizontalAlign="Right" CssClass="EditFormButtonRow"></FormTableButtonRowStyle> </EditFormSettings> </MasterTableView> <ClientSettings> <Selecting AllowRowSelect="True" /> <ClientEvents OnRowDblClick="RowDblClick" /> <Selecting AllowRowSelect="True"></Selecting> <ClientEvents OnRowDblClick="RowDblClick"></ClientEvents> </ClientSettings> <EditItemStyle BackColor="#F2FFEC" /> <ActiveItemStyle BackColor="#FFF8D9" BorderColor="#FFF8D9" BorderStyle="Solid" BorderWidth="1px" /> <ActiveItemStyle BackColor="#FFF8D9" BorderColor="#FFF8D9" BorderWidth="1px" BorderStyle="Solid"></ActiveItemStyle> <SelectedItemStyle BackColor="#FFF8D9" BorderColor="#FFF8D9" BorderStyle="Solid" BorderWidth="1px" /> <FilterMenu EnableImageSprites="False"></FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Web20"></HeaderContextMenu> </telerik:RadGrid>protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) { if (e.Item is GridEditableItem && e.Item.IsInEditMode) { //the dropdown list will be the first control in the Controls collection of the corresponding cell RadComboBox list = (e.Item as GridEditableItem)["ReportLevel"].Controls[1] as RadComboBox; //attach SelectedIndexChanged event for the drodown control this.combo_SelectedIndexChanged list.AutoPostBack = true; //list.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(this.list_SelectedIndexChanged); list.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(list_SelectedIndexChanged); } } void list_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e) { //first reference the edited grid item through the NamingContainer attribute GridEditableItem editedItem = (sender as RadComboBox).NamingContainer as GridEditableItem; //the dropdown list will be the first control in the Controls collection of the corresponding cell //for custom edit forms (WebUserControl/FormTemplate) you can find the column editor with the FindControl(controlId) method RadComboBox ddRepLev = editedItem["ReportLevel"].Controls[1] as RadComboBox; RadComboBox ddCostCen = editedItem["CostCentreLow"].Controls[1] as RadComboBox; if (ddRepLev.SelectedValue == "CC") { this.DS_CostCentre.SelectCommand = "SELECT '' AS costcentre UNION SELECT DISTINCT SEGMENT_CODE AS costcentre FROM ORACLE_DS_GL_CoA_Segments WHERE (SEGMENT_NUMBER = 2) "; //AND (EFFECTIVE_STATUS = 'Active') this.DS_CostCentre.DataBind(); } else { this.DS_CostCentre.SelectCommand = "SELECT '' AS costcentre UNION SELECT DISTINCT PARENT_CODE_L2 AS costcentre FROM ORACLE_DS_GL_CoA_Segments WHERE (SEGMENT_NUMBER = 2) "; //AND (EFFECTIVE_STATUS = 'Active') this.DS_CostCentre.DataBind(); } //ddCostCen.DataSourceID = "DS_CostCentre"; ddCostCen.Enabled = true; }As mentioned, because i need the datasource changed based on the reportlevel value selected, i need the datasource selectcommand being assigned a new value in the ReportLevel SelectedIndexChanged event but this gives me a databind error.
Can you please help me find a solution to this problem?
Regards,
Shuja