SelectedIndex problem

2 posts, 0 answers
  1. Bader
    Bader avatar
    215 posts
    Member since:
    Aug 2008

    Posted 28 Feb 2011 Link to this post

    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
  2. Kalina
    Admin
    Kalina avatar
    918 posts

    Posted 04 Mar 2011 Link to this post

    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!
Back to Top