This is a migrated thread and some comments may be shown as answers.

SelectedIndex problem

1 Answer 79 Views
ComboBox
This is a migrated thread and some comments may be shown as answers.
Bader
Top achievements
Rank 1
Bader asked on 28 Feb 2011, 11:03 PM
Hello,

I have a problem in using related comboboxex in radgrid editform.

Here is my code:
ItemsMngSubUserControl.acsx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ItemsMngSubUserControl.ascx.cs" Inherits="ItemsMngSubUserControl" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
  
<%@ Register src="~/SecureSiteManagenment/SecureSQLServer/Common/UserControls/JointUserControls/FileUrlUserControl/FileUrlFileSelectorUserControl.ascx" tagname="FileUrlFileSelectorUserControl" tagprefix="uc1" %>
  
<link rel="stylesheet" type="text/css" href="../../../Common/Controls/RadEditor/RTLRadEditorStyle/Editor_RTL.css" />
<style type="text/css">
    .RightColumn
    {
        width:150px;
    }
    
    .LeftColumn
    {
        width:802px;
    }
  
    html
    {
      direction: rtl;
    }
    html, body, form
    {
      height: 100%;
      margin: 0px;
      padding: 0px;
       
    }
    /*info panel*/
  
    .infoPanel,
    .bigModule
    {
        border:1px solid #ffe58a;
        margin:1.6em 0;
        padding:1em 3em 1em 0;
        background:#fff3c8 repeat-x url(../../../Common/styles09/infoPanel.gif);
        color:#000;
    }
  
    .infoInner,
    .bigModuleBottom
    {
        min-height:30px;
        padding:0 0 0 66px;
        background:no-repeat -1184px -1447px url(../../../Common/styles09/sprite09.gif);
    }
  
    .infoPanel .title,
    .bigModule .title
    {
        display:block;
        margin:0 0 1.4em;
        padding:6px 0 0;
        font-size:1.2em;
    }
  
    .infoPanel a,
    .bigModule a
    {
        color:#f60;
    }
</style>
  
<div style="margin:10px;">
    <table id="Table2" cellspacing="2" cellpadding="1" width="100%" border="1" rules="none"
        style="BORDER-COLLAPSE: collapse">
        <tr align="right">
            <td colspan="2">
                <b></b></td>
        </tr>
        <tr align="right">
            <td>
                <table id="Table3" cellspacing="1" cellpadding="1" width="100%" border="0">
                    <tr>
                        <td colspan="2"></td>
                    </tr>
                    <tr>
                        <td style="width:118px;">
                            <asp:Label ID="ItmNameLabel" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlItmNameLabel %>" ></asp:Label>
                        </td>
                        <td style="width:834px;">
                            <telerik:RadTextBox ID="ItmNameRadTextBox" runat="server" Text='<%# DataBinder.Eval( Container, "DataItem.ItmName" ) %>' Width="201px" >
                            </telerik:RadTextBox>
                        </td>
                    </tr>
                 </table>
  
                 <telerik:RadAjaxPanel ID="CtgRadAjaxPanel" runat="server">
                 <table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
                    <tr>
                        <td style="width:118px;">
                            <asp:Label ID="MainCtgryLabel" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlMainCtgryLabel %>"></asp:Label>
                        </td>
                        <td style="width:834px;">
                            <asp:XmlDataSource ID="MainCatgryXmlDataSource" runat="server" 
                                DataFile="~/Common/xml/HeaderMenu.xml"  XPath="Menu/Item[position() > 2]"></asp:XmlDataSource>
                            <telerik:RadComboBox ID="MainCatgryRadComboBox" Runat="server" 
                                DataSourceID="MainCatgryXmlDataSource" DataTextField="IText" 
                                EnableLoadOnDemand="True" AutoPostBack="true"  OffsetX="-30" BorderColor="Black" BorderWidth="1px"
                                HighlightTemplatedItems="true" Width="206px" Height="150px"
                                DataValueField="SubCtgry" SelectedIndex='<%# (Convert.ToInt32(getMainCtgryIndexIndex(DataBinder.Eval( Container, "DataItem.MainCtgry" ).ToString().Trim()))) - 2 %>'
                                onselectedindexchanged="MainCatgryRadComboBox_SelectedIndexChanged" >
                            </telerik:RadComboBox>
                               
                            <asp:XmlDataSource ID="DfosSubCategoryXmlDataSource" runat="server"  DataFile="~/Common/xml/DfosMenu.xml"  ></asp:XmlDataSource>
                            <asp:XmlDataSource ID="StudioSubCategoryXmlDataSource" runat="server"  DataFile="~/Common/xml/StudioMenu.xml" ></asp:XmlDataSource>
                            <asp:XmlDataSource ID="PrintingOnProductsSubCategoryXmlDataSource" runat="server"  DataFile="~/Common/xml/PrintingOnProductsMenu.xml" ></asp:XmlDataSource>
                            <asp:Label ID="SubCtgryDataLabel" runat="server" Visible="false" Text='<%# DataBinder.Eval( Container, "DataItem.SubCtgry" ).ToString().Trim()  %>'></asp:Label>
                            <asp:Label ID="ESubCtgryDataLabel" runat="server" Visible="false" ForeColor="Red" Text='<%# DataBinder.Eval( Container, "DataItem.ESubCtgry" ).ToString().Trim()  %>'></asp:Label>
                            <asp:Label ID="SDataLabel" runat="server" Text=""></asp:Label>
                            <telerik:RadComboBox ID="SubCtgryRadComboBox" runat="server"  
                                DataTextField="IText" DataValueField="ItemID" OffsetX="-30" 
                                BorderColor="Black" BorderWidth="1px" AutoPostBack="true"
                                EnableLoadOnDemand="True" HighlightTemplatedItems="true" Width="206px"  
                                Height="150px" 
                                onselectedindexchanged="SubCtgryRadComboBox_SelectedIndexChanged"   >
                            </telerik:RadComboBox>
                            <asp:Button ID="DisplaySubCtgryButton" Width="120px" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlDisplaySubCtgryButtonText %>" visible='<%# ((bool)DataBinder.Eval(Container, "OwnerTableView.IsItemInserted")) ? false : true %>' onclick="Button1_Click" />
                        </td>
                    </tr>
                 </table>
                 </telerik:RadAjaxPanel>
  
                 <table id="Table4" cellspacing="1" cellpadding="1" width="100%" border="0">
                    <tr>
                        <td class="RightColumn">
                            <asp:Label ID="ViewItmLabel" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlViewItmLabel %>"></asp:Label>
                        </td>
                        <td class="LeftColumn">
                            <telerik:RadComboBox ID="ViewItmRadComboBox" Skin="Vista" Width="205px" BorderColor="Black" BorderWidth="1px"
                                    SelectedValue='<%# DataBinder.Eval( Container, "DataItem.ViewItm" ).ToString() %>' AutoPostBack="false"
                                    runat="server" >                                
                                <Items>
                                    <telerik:RadComboBoxItem runat="server" Text="<%$ Resources:Resource, TelerikTrueFalseRadComboBoxTrueText %>" Value="True" />
                                    <telerik:RadComboBoxItem runat="server" Text="<%$ Resources:Resource, TelerikTrueFalseRadComboBoxFalseText %>" Value="False" />
                                </Items>
                            </telerik:RadComboBox>
                        </td>
                    </tr>
                    <tr runat="server" visible='<%# ((bool)DataBinder.Eval(Container, "OwnerTableView.IsItemInserted")) ? false : true %>'>
                      <td colspan="2">
                            
                      </td>
                    </tr>
                    <tr runat="server" visible='<%# ((bool)DataBinder.Eval(Container, "OwnerTableView.IsItemInserted")) ? false : true %>'>
                        <td class="RightColumn">
                            <asp:Label ID="InsrtUserLabel" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlInsrtUserLabel %>"></asp:Label>
                        </td>
                        <td class="LeftColumn">
                            <asp:Label ID="InsrtUserDataLabel" runat="server" Text='<%# ((bool)DataBinder.Eval(Container, "OwnerTableView.IsItemInserted")) ? "" : TmonavotDB.GetUserNameByUserID(Convert.ToInt64(DataBinder.Eval( Container, "DataItem.LstUpdBy" ))) %>'></asp:Label>
                        </td>
                    </tr>
                    <tr>
                      <td colspan="2">
                            
                      </td>
                    </tr>
                    <tr>
                        <td valign="top" class="RightColumn">
                            <asp:Label ID="ItmDescLabel" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlItmDescLabel %>"></asp:Label>
                        </td>
                        <td class="LeftColumn">
                            <telerik:RadTextBox ID="ItmDescRadTextBox" TextMode="MultiLine" Rows="4" runat="server" Text='<%# DataBinder.Eval( Container, "DataItem.ItmDesc" ) %>' Width="100%" >
                            </telerik:RadTextBox>
                              
                        </td>
                    </tr>
                    <tr>
                      <td colspan="2">
                            
                      </td>
                    </tr>
                    <tr>
                        <td class="RightColumn">
                            <asp:Label ID="ViewItmBigDescLabel" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlViewItmBigDescLabel %>"></asp:Label>
                        </td>
                        <td class="LeftColumn">
                            <telerik:RadComboBox ID="ViewItmBigDescRadComboBox" Skin="Vista" Width="205px" BorderColor="Black" BorderWidth="1px"
                                    SelectedValue='<%# DataBinder.Eval( Container, "DataItem.ViewItmBigDesc" ).ToString() %>' AutoPostBack="false"
                                    runat="server" >                                
                                <Items>
                                    <telerik:RadComboBoxItem runat="server" Text="<%$ Resources:Resource, TelerikTrueFalseRadComboBoxFalseText %>" Value="False" />
                                    <telerik:RadComboBoxItem runat="server" Text="<%$ Resources:Resource, TelerikTrueFalseRadComboBoxTrueText %>" Value="True" />
                                </Items>
                            </telerik:RadComboBox>
                        </td>
                    </tr>
                    <tr>
                        <td class="RightColumn">
                            <asp:Label ID="TitleLabel" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlTitleLabel %>"></asp:Label>
                        </td>
                        <td class="LeftColumn">
                            <telerik:RadTextBox ID="TitleRadTextBox" runat="server" Text='<%# DataBinder.Eval( Container, "DataItem.Title" ) %>' Width="201px" >
                            </telerik:RadTextBox>
                        </td>
                    </tr>
                    <tr>
                      <td class="RightColumn" valign="top">
                          <asp:Label ID="ItmBigDescLabel" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlItmBigDescLabel %>"></asp:Label>
                      </td>
                      <td class="LeftColumn"  valign="top">
                            <telerik:RadEditor runat="server" ID="ItmBigDescRadEditor" Height="350px" Width="100%" Content='<%# DataBinder.Eval( Container, "DataItem.ItmBigDesc") %>'
                                    DialogsCssFile="~/Common/Controls/RadEditor/RTLRadEditorStyle/RadEditor_Dialogs_RTL.css" ContentAreaCssFile="~/Common/Controls/RadEditor/RTLRadEditorStyle/EditorContentArea_RTL.css">
                                <Modules>
                                    <telerik:EditorModule Visible="false" />
                                </Modules>
                                <ImageManager ViewPaths="~/Pages/Design/Imgs/Itms" DeletePaths="~/Pages/Design/Imgs/Itms" UploadPaths="~/Pages/Design/Imgs/Itms" />
                                <DocumentManager ViewPaths="~/Pages/Design/Imgs/Itms" DeletePaths="~/Pages/Design/Imgs/Itms" UploadPaths="~/Pages/Design/Imgs/Itms" />
                                <MediaManager ViewPaths="~/Pages/Design/Imgs/Itms" DeletePaths="~/Pages/Design/Imgs/Itms" UploadPaths="~/Pages/Design/Imgs/Itms" />
                            </telerik:RadEditor>
                      </td>
                   </tr>
                   <tr>
                      <td colspan="2">
                            
                      </td>
                    </tr>
                    <tr>
                        <td class="RightColumn">
                            <asp:Label ID="ViewPriceLabel" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlViewPriceLabel %>"></asp:Label>
                        </td>
                        <td class="LeftColumn">
                            <telerik:RadComboBox ID="ViewPriceRadComboBox" Skin="Vista" Width="205px" BorderColor="Black" BorderWidth="1px"
                                    SelectedValue='<%# DataBinder.Eval( Container, "DataItem.ViewPrice" ).ToString() %>' AutoPostBack="false"
                                    runat="server" >                                
                                <Items>
                                    <telerik:RadComboBoxItem runat="server" Text="<%$ Resources:Resource, TelerikTrueFalseRadComboBoxFalseText %>" Value="False" />
                                    <telerik:RadComboBoxItem runat="server" Text="<%$ Resources:Resource, TelerikTrueFalseRadComboBoxTrueText %>" Value="True" />
                                </Items>
                            </telerik:RadComboBox>
                        </td>
                    </tr>
                    <tr>
                        <td class="RightColumn">
                            <asp:Label ID="ItemPriceLabel" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlItemPriceLabel %>"></asp:Label>
                        </td>
                        <td class="LeftColumn">
                            <telerik:RadNumericTextBox ID="ItemPriceRadNumericTextBox" runat="server" DbValue='<%# DataBinder.Eval( Container, "DataItem.ItemPrice" ) %>' Width="201px" >
                            </telerik:RadNumericTextBox>
                        </td>
                    </tr>
                    <tr>
                      <td colspan="2">
                            
                      </td>
                    </tr>
                    <tr>
                        <td class="RightColumn">
                            <asp:Label ID="ViewImgLabel" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlViewImgLabel %>"></asp:Label>
                        </td>
                        <td class="LeftColumn">
                            <telerik:RadComboBox ID="ViewImgRadComboBox" Skin="Vista" Width="205px" BorderColor="Black" BorderWidth="1px"
                                    SelectedValue='<%# DataBinder.Eval( Container, "DataItem.ViewImg" ).ToString() %>' AutoPostBack="false"
                                    runat="server" >                                
                                <Items>
                                    <telerik:RadComboBoxItem runat="server" Text="<%$ Resources:Resource, TelerikTrueFalseRadComboBoxTrueText %>" Value="True" />
                                    <telerik:RadComboBoxItem runat="server" Text="<%$ Resources:Resource, TelerikTrueFalseRadComboBoxFalseText %>" Value="False" />
                                </Items>
                            </telerik:RadComboBox>
                        </td>
                    </tr>
                    <tr>
                        <td class="RightColumn">
                            <asp:Label ID="ImgUrlLabel" runat="server" Text="<%$ Resources:Resource, SItemsMngSubUserControlImgUrlLabel %>"></asp:Label>
                        </td>
                        <td class="LeftColumn"
                            <uc1:FileUrlFileSelectorUserControl ID="FileUrlFileSelectorUserControl1" 
                                runat="server" />
                        </td>
                    </tr>
                 </table>
               </td>
         </tr>
    
        
        <tr>
            <td align="left" colspan="2">
                <asp:button id="btnUpdate" text="<%$ Resources:Resource, TelerikRadGridEditFormUpdateButtonText %>" runat="server" CommandName="Update" Visible='<%# !(DataBinder.Eval( Container, "DataItem") is Telerik.Web.UI.GridInsertionObject) %>'></asp:button>
                <asp:button id="btnInsert" text="<%$ Resources:Resource, TelerikRadGridEditFormInsertButtonText %>" runat="server" CommandName="PerformInsert" Visible='<%# DataBinder.Eval( Container, "DataItem") is Telerik.Web.UI.GridInsertionObject %>'></asp:button>
                   
                <asp:button id="btnCancel" text="<%$ Resources:Resource, TelerikRadGridEditFormCancelButtonText %>" runat="server" causesvalidation="False" commandname="Cancel"></asp:button></td>
        </tr>
    </table>
  
</div>

ItemsMngSubUserControl.ascx.cs
using System;
using System.Configuration;
using Telerik.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using System.Web.UI.WebControls;
using System.Web;
using System.Data;
using System.Data.SqlClient;
  
public partial class ItemsMngSubUserControl : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
            (FileUrlFileSelectorUserControl1.FindControl("TopicLabel") as Label).Text = "ItemsMng";
            string eSubCtgry = string.Empty;
            eSubCtgry = ESubCtgryDataLabel.Text.ToString().Trim();
  
            string subCtgry = string.Empty;
            subCtgry = SubCtgryDataLabel.Text.ToString().Trim();
            RadComboBoxItem item = new RadComboBoxItem();
            if (eSubCtgry.Contains("Dfos"))
            {
                SubCtgryRadComboBox.DataSourceID = "DfosSubCategoryXmlDataSource";
                SubCtgryRadComboBox.DataBind();
          SubCtgryRadComboBox.SelectedIndex = (Convert.ToInt32(getSubCtgryIndex(subCtgry, "Dfos")));                                 
                SubCtgryRadComboBox.Enabled = true;
            }
            else if (eSubCtgry.Contains("Studio"))
            {
                SubCtgryRadComboBox.DataSourceID = "StudioSubCategoryXmlDataSource";
                SubCtgryRadComboBox.DataBind();
                SubCtgryRadComboBox.SelectedIndex = (Convert.ToInt32(getSubCtgryIndex(subCtgry, "Studio")));                                 
                SubCtgryRadComboBox.Enabled = true;   
            }
            else if (eSubCtgry.Contains("PrintingOnProducts"))
            {
                SubCtgryRadComboBox.DataSourceID = "PrintingOnProductsSubCategoryXmlDataSource";
                SubCtgryRadComboBox.DataBind();
                SubCtgryRadComboBox.SelectedIndex = (Convert.ToInt32(getSubCtgryIndex(subCtgry, "PrintingOnProducts")));                                 
                SubCtgryRadComboBox.Enabled = true;               }
  
                
    }
  
    protected void SubCtgryRadComboBox_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        SubCtgryDataLabel.Text = e.Text.ToString();
    }
  
    protected void Button1_Click(object sender, EventArgs e)
    {
        SubCtgryRadComboBox.SelectedIndex = (Convert.ToInt32(getSubCtgryIndex(SubCtgryDataLabel.Text.ToString().Trim(), ESubCtgryDataLabel.Text.ToString().Trim())));
    }
  
    public string getMainCtgryIndexIndex(string _text)
    {
        string uu = string.Empty;
        XmlDocument doc = new XmlDocument();
        doc.Load(Server.MapPath("~/Common/xml/HeaderMenu.xml"));
        XmlNodeList nodes = doc.SelectNodes("/Menu/Item");
        foreach (XmlNode _uu in nodes)
        {
            foreach (XmlAttribute ss in _uu.Attributes)
            {
                if (ss.Name.Equals("IText"))
                {
                    if (ss.Value.Equals(_text))
                    {
                        uu = Convert.ToString(_uu.Attributes[0].Value);
                    }
                }
            }
        }
  
        if (uu.Equals(string.Empty))
        {
  
            return "0";
        }
        else
        {
            return uu;
        }
  
    }
  
    public string getSubCtgryIndex(string _text, string _subCtgry)
    {
        string uu = string.Empty;
        XmlDocument doc = new XmlDocument();
        doc.Load(Server.MapPath("~/Common/xml/" + _subCtgry + "Menu.xml"));
        XmlNodeList nodes = doc.SelectNodes("/Menu/Item");
        foreach (XmlNode _uu in nodes)
        {
            foreach (XmlAttribute ss in _uu.Attributes)
            {
                if (ss.Name.Equals("IText"))
                {
                    if (ss.Value.Equals(_text))
                    {
                        uu = Convert.ToString(_uu.Attributes[0].Value);
                    }
                }
            }
        }
  
        if (uu.Equals(string.Empty))
        {
  
            return "0";
        }
        else
        {
            return uu;
        }
  
    }
  
    protected void MainCatgryRadComboBox_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        string tt = e.Value.ToString().Trim();
        if (tt.Contains("Dfos"))
        {
            SubCtgryRadComboBox.DataSourceID = "DfosSubCategoryXmlDataSource";
            SubCtgryRadComboBox.DataBind();
            SubCtgryRadComboBox.Enabled = true;
            SubCtgryRadComboBox.Text = "";
            SubCtgryDataLabel.Text = Resources.Resource.SecureSecureSQLServerItemsMngSubCtgryText.ToString();
        }
        else if (tt.Contains("Studio"))
        {
            SubCtgryRadComboBox.DataSourceID = "StudioSubCategoryXmlDataSource";
            SubCtgryRadComboBox.DataBind();
            SubCtgryRadComboBox.Enabled = true;
            SubCtgryRadComboBox.Text = "";
            SubCtgryDataLabel.Text = Resources.Resource.SecureSecureSQLServerItemsMngSubCtgryText.ToString();
        }
        else if (tt.Contains("PrintingOnProducts"))
        {
            SubCtgryRadComboBox.DataSourceID = "PrintingOnProductsSubCategoryXmlDataSource";
            SubCtgryRadComboBox.DataBind();
            SubCtgryRadComboBox.Enabled = true;
            SubCtgryRadComboBox.Text = "";
            SubCtgryDataLabel.Text = Resources.Resource.SecureSecureSQLServerItemsMngSubCtgryText.ToString();
        }
        else
        {
            SubCtgryRadComboBox.DataSourceID = "";
            SubCtgryRadComboBox.DataBind();
            SubCtgryRadComboBox.Enabled = false;
        }
          
    }
  
  
   
}

In the above code, I'm trying to set different DataSourceID for SubCtgryRadComboBox depending on MainCatgryRadComboBox Value and display SubCtgryRadComboBox  items (In Update mode, the selectedIndex must be displayed regarding the changes of SubCtgryRadComboBox  .

Please, I need your help,
It is apprecited to send me the modified code.

Regards,
Bader

1 Answer, 1 is accepted

Sort by
0
Kalina
Telerik team
answered on 04 Mar 2011, 04:37 PM
Hello Bader,

I am afraid that the code pasted here is not sufficient for us to create a working example for you.

However I can suggest you take a look at the "Using cascading RadComboBoxes into the RadGrid Insert/Edit form" Code Library . 
At this Code Library there is a fully working sample project that you can download and use.

All the best,
Kalina
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
Tags
ComboBox
Asked by
Bader
Top achievements
Rank 1
Answers by
Kalina
Telerik team
Share this question
or