Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
139 views
Hi all,

I am having an issue with the data binding associated with expanding/collapsing items as well as with sorting.  For my RadTreeList data source, I am setting the data source to an ArrayList with information that is parsed from a web service. Whenever I expand/collapse an item or attempt to sort the items by a column, the data in the ArrayList is lost, and the RadTreeList refreshes to be empty.  Is there a way to save the data stored in the ArrayList between data bindings?  Extracting the data takes some time, so communicating with the web service each time is not very feasible.  Tell me if I need to provide any more detail.

Thanks!!

Kostadin
Telerik team
 answered on 24 Jun 2016
1 answer
276 views

Ok, I've been banging my head against my computer trying to get this to work for a couple days, and been searching these forums for anybody having the same problem, but so far no luck.  Here's the situation. Seems simple enough:

1. I have a Radgrid.

2. The radgrid has an editform

3. The editform has many controls, dropdown lists, textboxes etc.

4. Controls INSIDE THE EDIT FORM have to change in response to user activity INSIDE THE EDIT FORM. For example, dropdownlist2 has to be loaded with different options in response to the user's selecting options in dropdownlist1. These two dropdown lists are ON THE EDIT FORM, they are NOT columns in the radgrid.

The problem seems to be that I cannot respond to events, such as "ItemChanged" or "TextChanged" or any other event of a control that is INSIDE AN EDITFORM.

I'm making all the upper case letters because every no matter how I word my Google search on this problem, I get answered related to how to respond to events of controls that are in COLUMNS of the RADGRID, which is NOT my problem. The Radgrid's ItemCommand event does not fire when a control is clicked on that is INSIDE THE EDITFORM.

Any help would be most appreciated. Thanks!

- Paul

 

Viktor Tachev
Telerik team
 answered on 24 Jun 2016
1 answer
240 views

Hi,

 

I am trying to have a radgrid working after having rows added or removed from it.

The scenario is the following :

  I want to be able to add items that are selected in a grid (QuestionsGrid1) located in a bootstrap modal. Once applied, the code behind adds the new items

to the main radgrid (QuestionsGrid) in a multipageview.

The issue is that once a postback is done, the system is not able to find the control of the main grid (QuestionsGrid), and no matter what I do, i continuously get this error :

"Uncaught TypeError: Cannot set property 'control' of undefined"

Here is the ASPX code and the C# Code.

 

Thanks for help.

 

ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="theme.aspx.cs" Inherits="WBT.manageQuiz.theme" %>
 
 
<%@ Register Src="~/controls/admin/metaheader.ascx" TagName="MetaHeader" TagPrefix="WBT" %>
<%@ Register Src="~/controls/admin/header.ascx" TagName="Header" TagPrefix="WBT" %>
<%@ Register Src="~/controls/admin/menu.ascx" TagName="Menu" TagPrefix="WBT" %>
<%@ Register Src="~/controls/admin/pagecontentheader.ascx" TagName="ContentHeader" TagPrefix="WBT" %>
<%@ Register Src="~/controls/admin/footer.ascx" TagName="Footer" TagPrefix="WBT" %>
 
<!DOCTYPE html>
<!--[if IE 8]> <html lang="en" class="ie8 no-js"> <![endif]-->
<!--[if IE 9]> <html lang="en" class="ie9 no-js"> <![endif]-->
<!--[if !IE]><!-->
<html lang="en">
<!--<![endif]-->
<head id="wbtHeader" runat="server">
    <title><%=Session["WBTPageTitle"]%></title>
    <WBT:MetaHeader ID="metaheader" runat="server" />
</head>
<body class="page-header-fixed page-sidebar-closed-hide-logo page-container-bg-solid page-md page-wbt">
    <form id="wbtform" runat="server">
        <telerik:RadSkinManager ID="PageSkinManager" runat="server" ShowChooser="false" />
        <telerik:RadScriptManager ID="PageRadScriptManager" runat="server" EnablePartialRendering="true">
            <Scripts>
                <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
                <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
                <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
 
            </Scripts>
 
        </telerik:RadScriptManager>
 
        <telerik:RadAjaxManager ID="PageRadAjaxManager" runat="server" OnAjaxRequest="PageRadAjaxManager_AjaxRequest">
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="PageRadAjaxManager">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="QuestionsGrid1" LoadingPanelID="RadAjaxLoadingPanel" />
                        <telerik:AjaxUpdatedControl ControlID="QuestionsGrid" LoadingPanelID="RadAjaxLoadingPanel" />
                        <telerik:AjaxUpdatedControl ControlID="QuestionFolderRadTreeView" LoadingPanelID="RadAjaxLoadingPanel" />
                        <telerik:AjaxUpdatedControl ControlID="RadPageView1" LoadingPanelID="RadAjaxLoadingPanel" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
 
                <telerik:AjaxSetting AjaxControlID="RadTabTheme">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="RadMultiPageTheme" LoadingPanelID="RadAjaxLoadingPanel" />
                        <telerik:AjaxUpdatedControl ControlID="RadTabTheme" LoadingPanelID="RadAjaxLoadingPanel" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
                <telerik:AjaxSetting AjaxControlID="RadMultiPageTheme">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="RadMultiPageTheme" LoadingPanelID="RadAjaxLoadingPanel" />
                        <telerik:AjaxUpdatedControl ControlID="RadTabTheme" LoadingPanelID="RadAjaxLoadingPanel" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
 
 
                <telerik:AjaxSetting AjaxControlID="QuestionFolderRadTreeView">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="QuestionFolderRadTreeView" LoadingPanelID="RadAjaxLoadingPanel" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
 
                <telerik:AjaxSetting AjaxControlID="QuestionsGrid1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="QuestionsGrid1" LoadingPanelID="RadAjaxLoadingPanel" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
 
                <telerik:AjaxSetting AjaxControlID="QuestionsGrid">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="QuestionsGrid" LoadingPanelID="RadAjaxLoadingPanel" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
 
            </AjaxSettings>
        </telerik:RadAjaxManager>
 
        <telerik:RadScriptBlock ID="PageRadScriptBlock" runat="server">
            <script type="text/javascript">
 
                var selected = [];
                var dSelected = [];
               
                       
                 
                /*DEPRECATED*/   /* NEEDED FOR BINDING CONTROL */ /*DEPRECATED*/
                function openModal() {
                 
                    $('.modal.fade').css({
                        "-webkit-transition": "opacity 0.5s"               
                    });
 
                    $('#responsive').modal('show');
 
                    $('.modal.fade').css({
                        
                        "-webkit-transition": "opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out",
                        "-moz-transition":"opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out",
                        "-o-transition":"opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out",
                        "transition":"opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out",
                        "overflow":"visible"
                    });
 
                }
                /* NEEDED FOR BINDING CONTROL */
               
                function btnShowAll_Click() {
                    var ajaxManager = $find("<%=PageRadAjaxManager.ClientID%>");
                    var wbtAjaxArgs = 'ClearFilters||';
                     
                    
                   
                    ajaxManager.ajaxRequest(wbtAjaxArgs);
                     
                }
                 
 
                function bindQuestions() {
 
                    var ajaxManager = $find("<%=PageRadAjaxManager.ClientID%>");
                    var wbtAjaxArgs = 'AddQuestionsTheme||';
                                        
                    for(i = 0; i < selected.length; i++) {
                        if (selected[i]) {
                             
                            wbtAjaxArgs += i + "|";
                        }
                    }
                    selected = [];
                    ajaxManager.ajaxRequest(wbtAjaxArgs);
                     
                }
 
                function UnbindQuestions() {
 
                    var ajaxManager = $find("<%=PageRadAjaxManager.ClientID%>");
                    var wbtAjaxArgs = 'DropQuestionsTheme||';
                    
                    for(i = 0; i < dSelected.length; i++)
                    {
                        if (dSelected[i]) {
                             
                            wbtAjaxArgs += i + "|";
                        }
                    }
                    dSelected = [];
                    ajaxManager.ajaxRequest(wbtAjaxArgs);
                     
                }
 
                function DisplaySelected() {
                    for(i = 0; i < selected.length; i++)
                    {
                        if (selected[i]) {
                            console.log(i);
                        }
                    }
                }
 
                function QuestionsGrid1_RowSelected(sender, args)
                {
                    var ID = args.getDataKeyValue("ID");
                    if (!selected[ID]) {
                        selected[ID] = true;
                    }
                }
                function QuestionsGrid1_RowDeselected(sender, args)
                {
                    var ID = args.getDataKeyValue("ID");
                    if (selected[ID]) {
                        selected[ID] = false;
                    }
                }
 
                function QuestionsGrid_RowSelected(sender, args)
                {
                    var ID = args.getDataKeyValue("ID");
                    if (!dSelected[ID]) {
                        dSelected[ID] = true;
                    }
                }
                function QuestionsGrid_RowDeselected(sender, args)
                {
                    var ID = args.getDataKeyValue("ID");
                    if (dSelected[ID]) {
                        dSelected[ID] = false;
                    }
                }
 
 
                function pageLoad(sender,args)
                {
                    var dataItems = $find('<%=QuestionsGrid1.ClientID %>').get_masterTableView().get_dataItems();
 
                     
                    if (dataItems != null) {
                        for (var i = 0, j = dataItems.length; i < j; i++) {
                            var item = dataItems[i];
                            if (selected[item.getDataKeyValue("ID")]) {
                                item.set_selected(true);
                            }
                        }
                    }
                
 
 
                function ApplyQuestionFolder() {
                    var treeId = getSelectedTreeNodeValue("<%=QuestionFolderRadTreeView.ClientID %>");
 
                    console.log(treeId);
                    var wbtAjaxArgs = 'ApplyQuestionFolder||' + treeId;
                    var ajaxManager = $find("<%=PageRadAjaxManager.ClientID%>");
                    ajaxManager.ajaxRequest(wbtAjaxArgs);
                }
 
                var theForm = document.getElementById('wbtform');
 
                function checkForm(pForm) {
                    var bTest = true;
                    if (bTest && isEmpty(pForm.<%=TxtName.ClientID%>)) {                 
                        WbtRadAlert('<%=oLoc.GetStringJS("MsgCheckThemeName", oUser.Subdomain)%>', '', 300, 100);
                        pForm.<%=TxtName.ClientID%>.focus();
                        bTest = false;
                    }
     
                    return bTest;
                }
 
                function onTabSelecting(sender, args) {
                    var tabStrip = $find("<%= RadTabTheme.ClientID%>");
                    var tabInfo = tabStrip.findTabByValue('theme_info_tab');
                    var tabNext = args.get_tab().get_value();
                    var tmp = true;
                    if (tabInfo.get_selected())
                        tmp = checkForm(theForm);
                    if (!tmp)
                        args.set_cancel(true);
                    else if (<%=nThemeId%> == 0)
                    {
                        args.set_cancel(true);
                        var wbtAjaxArgs = 'Create||' + theForm.<%=TxtName.ClientID%>.value + '||' + theForm.<%=TxtDescription.ClientID%>.value + '||' + tabNext;
                        var ajaxManager = $find("<%= PageRadAjaxManager.ClientID%>");
                        console.log(wbtAjaxArgs);
                        ajaxManager.ajaxRequest(wbtAjaxArgs);
                    }         
            }
            function selectTab(tabName) {
                var tabStrip = $find("<%= RadTabTheme.ClientID%>");
                if (tabStrip)
                {
                    var tab = tabStrip.findTabByValue(tabName);
                    if (tab)
                        tab.select();
                }
            }
            function ThemeCreationError() {
                WbtRadAlert('<%=oLoc.GetStringJS("MsgThemeCreationError", oUser.Subdomain)%>', '', 300, 100);
            }
            
            </script>
            <asp:HiddenField ID="selected" runat="Server" />
            <asp:HiddenField ID="dSelected" runat="Server" />
 
        </telerik:RadScriptBlock>
 
        <telerik:RadWindowManager ID="PageRadWindowManager" runat="server" KeepInScreenBounds="true" VisibleStatusbar="false" VisibleTitlebar="false" Behaviors="Close" VisibleOnPageLoad="false">
            <Windows>
                <telerik:RadWindow ID="PageRadWindow" runat="server" AutoSize="false" KeepInScreenBounds="true" VisibleStatusbar="false" VisibleTitlebar="true" Behaviors="Close,Move" Modal="true" VisibleOnPageLoad="false" />
            </Windows>
        </telerik:RadWindowManager>
 
        <WBT:Header ID="header" runat="server" />
 
        <!-- BEGIN CONTAINER -->
        <div class="page-container">
            <WBT:Menu ID="menu" runat="server" />
            <!-- BEGIN CONTENT -->
            <div class="page-content-wrapper">
                <!-- BEGIN CONTENT BODY -->
                <div class="page-content">
                    <WBT:ContentHeader ID="contentheader" runat="server" />
                    <!-- BEGIN PAGE CONTENT -->
                    <div class="row">
                        <div class="col-md-12">
                            <div class="portlet light portlet-fit">
                                <div class="portlet-body">
                                    <div class="row">
 
                                        <div class="col-md-2 col-xs-3">
                                            <asp:UpdatePanel ID="tabs" runat="server" UpdateMode="Conditional">
                                                <ContentTemplate>
                                                    <telerik:RadTabStrip ID="RadTabTheme" runat="server" MultiPageID="RadMultiPageTheme" OnClientTabSelecting="onTabSelecting" Orientation="VerticalLeft" Width="100%" Skin="" SelectedIndex="0">
                                                        <Tabs>
                                                            <telerik:RadTab runat="server" Value="theme_info_tab" TabIndex="0" PageViewID="theme_info_pv" CssClass="themeTab" SelectedCssClass="themeTabSelected" HoveredCssClass="themeTabHovered" DisabledCssClass="themeTabDisabled"></telerik:RadTab>
                                                            <telerik:RadTab runat="server" Value="theme_questions_tab" TabIndex="1" PageViewID="theme_questions_pv" CssClass="themeTab" SelectedCssClass="themeTabSelected" HoveredCssClass="themeTabHovered" DisabledCssClass="themeTabDisabled"></telerik:RadTab>
                                                            <telerik:RadTab runat="server" Value="theme_competence_tab" TabIndex="2" PageViewID="theme_competence_pv" CssClass="themeTab" SelectedCssClass="themeTabSelected" HoveredCssClass="themeTabHovered" DisabledCssClass="themeTabDisabled"></telerik:RadTab>
                                                        </Tabs>
                                                    </telerik:RadTabStrip>
                                                </ContentTemplate>
                                            </asp:UpdatePanel>
                                        </div>
                                    <div class="col-md-10 col-xs-9 " style="border-left: 2px solid #e7505a;">
                                        <telerik:RadMultiPage ID="RadMultiPageTheme" runat="server" SelectedIndex="0">
                                            <telerik:RadPageView runat="server" ID="theme_info_pv" TabIndex="0">
                                                <div class="portlet-body form">
                                                    <form role="form">
                                                        <div class="form-body col-md-6">
                                                            <div class="form-group">
                                                                <label for="TxtName" id="LblName" runat="server">Name</label>
                                                                <asp:TextBox ID="TxtName" runat="server" CssClass="form-control input-sm" placeholder="" MaxLength="50" />
                                                            </div>
                                                            <div class="form-group">
                                                                <label for="TxtDescription" id="LblDescription" runat="server">Description</label>
                                                                <asp:TextBox ID="TxtDescription" runat="server" CssClass="form-control input-sm" placeholder="" TextMode="MultiLine" MaxLength="255" />
                                                            </div>
                                                        </div>
                                                    </form>
                                                </div>
                                            </telerik:RadPageView>
                                            <telerik:RadPageView runat="server" ID="theme_questions_pv" TabIndex="1">
 
                                                <div class="portlet-body form">
                                                    <form role="form">
 
                                                        <div class="form-body col-md-6">
                                                            <telerik:RadCodeBlock runat="server">
                                                                <div class="caption"><span class="caption-subject font-green bold uppercase"><%=oLoc.GetString("LblBoundQuestions", oUser.Subdomain)%></span></div>
                                                            </telerik:RadCodeBlock>
                                                            <div class="actions">
                                                                <a class="btn btn-circle btn-icon-only btn-default tooltips" data-toggle="modal" href="#responsive" data-container="body" data-placement="top" id="QuestionAdd" runat="server" onclick="">
                                                                    <i class="fa fa-plus"></i>
                                                                </a>
                                                                <a class="btn btn-circle btn-icon-only btn-default tooltips" href="javascript:;" data-container="body" data-placement="top" id="QuestionDrop" runat="server" onclick="UnbindQuestions()">
                                                                    <i class="fa fa-minus"></i>
                                                                </a>
                                                            </div>
                                                            <asp:UpdatePanel runat="server" ID="QuestionsGridPanel" UpdateMode="Conditional">
                                                                <ContentTemplate>
                                                                    <telerik:RadGrid ID="QuestionsGrid" runat="server" Width="100%" AllowPaging="true" PageSize="10"
                                                                        ShowHeader="true" ShowFooter="false" ShowGroupPanel="false" ShowStatusBar="false" AutoGenerateColumns="false" OnNeedDataSource="QuestionsGrid_NeedDataSource"
                                                                        AllowMultiRowSelection="true" AllowAutomaticInserts="false" AllowAutomaticDeletes="false" AllowAutomaticUpdates="false" AllowSorting="true" AllowFilteringByColumn="true"
                                                                        BorderStyle="None" Style="overflow: auto;" HeaderStyle-Font-Bold="true" FilterType="HeaderContext">
                                                                        <ClientSettings>
                                                                            <Scrolling AllowScroll="true" />
                                                                            <Selecting AllowRowSelect="True" />
                                                                            <ClientEvents OnRowSelected="QuestionsGrid_RowSelected" OnRowDeselected="QuestionsGrid_RowDeselected" />
                                                                        </ClientSettings>
                                                                        <MasterTableView ClientDataKeyNames="ID">
                                                                            <Columns>
                                                                                <telerik:GridClientSelectColumn UniqueName="CheckboxSelectQuestion" HeaderStyle-Width="5%" HeaderStyle-Wrap="false" ItemStyle-Wrap="false" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle" ItemStyle-Width="5%" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" />
                                                                                <telerik:GridBoundColumn UniqueName="QuestionId" HeaderText="" DataField="ID" Visible="false" AutoPostBackOnFilter="false" AllowFiltering="false" />
                                                                                <telerik:GridBoundColumn UniqueName="QuestionTitle" HeaderText="Title" DataField="TITLE" HeaderStyle-Wrap="false" ItemStyle-Wrap="false" AutoPostBackOnFilter="false" AllowFiltering="false" />
                                                                            </Columns>
                                                                            <PagerStyle AlwaysVisible="false" Mode="NumericPages" />
                                                                        </MasterTableView>
                                                                    </telerik:RadGrid>
                                                                </ContentTemplate>
                                                            </asp:UpdatePanel>
                                                        </div>
                                                    </form>
                                                </div>
 
                                            </telerik:RadPageView>
 
                                            <telerik:RadPageView runat="server" ID="theme_competence_pv" TabIndex="2">
                                                <div class="portlet-body form">
                                                    <form role="form">
                                                        <div class="form-body col-md-6">
                                                        </div>
                                                    </form>
                                                </div>
                                            </telerik:RadPageView>
 
                                        </telerik:RadMultiPage>
 
                                    </div>
 
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-10 col-xs-9 ">
                            <div class="form-actions noborder">
                                <asp:Button ID="BtnCancel" runat="server" CssClass="btn otherAction" OnClick="BtnCancel_Click" />
                                <asp:Button ID="BtnSubmit" runat="server" CssClass="btn mainAction" OnClick="BtnSubmit_Click" OnClientClick="if(!checkForm(theForm))return (false);" />
                            </div>
                        </div>
                    </div>
                    <!-- END PAGE CONTENT -->
                </div>
                <!-- END CONTENT BODY -->
            </div>
            <!-- BEGIN CONTENT -->
        </div>
        <!-- END CONTAINER -->
 
        <WBT:Footer ID="footer" runat="server" />
 
 
 
        <!-- NEEDED FOR BINDING CONTROL -->
        <div id="responsive" class="modal fade" tabindex="-1" data-width="80%" data-height="80%" aria-hidden="true" style="display: none; width: 80%; margin-top: 0px;">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                <h4 class="modal-title">Questions disponibles</h4>
            </div>
            <div class="modal-body">
                <div class="row">
                    <div class="col-lg-4">
                        <telerik:RadTreeView ID="QuestionFolderRadTreeView" runat="server" OnClientNodeClicked="ApplyQuestionFolder" Style="white-space: normal; overflow: auto;" />
 
                    </div>
                    <div class="col-lg-8">
 
                        <telerik:RadGrid ID="QuestionsGrid1" runat="server" Width="100%" AllowCustomPaging="True" AllowPaging="true" PageSize="10"
                            ShowHeader="true" ShowFooter="false" ShowGroupPanel="false" ShowStatusBar="true" AutoGenerateColumns="false" OnNeedDataSource="QuestionsGrid1_NeedDataSource"
                            AllowMultiRowSelection="true" AllowAutomaticInserts="false" AllowAutomaticDeletes="false" AllowAutomaticUpdates="false" AllowSorting="true" AllowFilteringByColumn="true"
                            BorderStyle="None" GridLines="None" Style="overflow: auto; height: fill-available;" HeaderStyle-Font-Bold="true" DataKeyValues="ID">
                            <FilterMenu EnableEmbeddedBaseStylesheet="False" CssClass="dropdown-menu"></FilterMenu>
                            <ClientSettings>
                                <Scrolling AllowScroll="true" UseStaticHeaders="true" />
                                <Selecting AllowRowSelect="True" UseClientSelectColumnOnly="true" />
                                <ClientEvents OnRowSelected="QuestionsGrid1_RowSelected" OnRowDeselected="QuestionsGrid1_RowDeselected" />
                            </ClientSettings>
                            <MasterTableView ClientDataKeyNames="ID">
                                <Columns>
                                    <telerik:GridClientSelectColumn UniqueName="CheckboxSelectQuestion" HeaderStyle-Width="5%" HeaderStyle-Wrap="false" ItemStyle-Wrap="false" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle" ItemStyle-Width="5%" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle">
                                    </telerik:GridClientSelectColumn>
                                    <telerik:GridBoundColumn UniqueName="ID" HeaderText="Id" DataField="ID" AllowFiltering="true" HeaderStyle-Width="5%" ItemStyle-Width="5%" Visible="False">
                                    </telerik:GridBoundColumn>
 
                                    <telerik:GridTemplateColumn UniqueName="STATUS" HeaderStyle-Width="15%" ItemStyle-Width="15%" HeaderText="Status" DataField="STATUS" HeaderStyle-Wrap="false" ItemStyle-HorizontalAlign="Center">
                                        <FilterTemplate>
                                            <asp:ImageButton Width="15px" ID="btnShowAll" OnClientClick="btnShowAll_Click()" runat="server" ImageUrl="../assets/global/plugins/mapplic/mapplic/images/error-icon.png" AlternateText="Clear filters" ToolTip="Clear filters" Style="vertical-align: middle;" />
 
                                            <telerik:RadComboBox ID="RadComboBoxStatus" Style="width: 100px;" DataSourceID="SQLStatus" DataTextField="STATUS"
                                                DataValueField="STATUS" AppendDataBoundItems="true" SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("STATUS").CurrentFilterValue %>'
                                                runat="server" OnClientLoad="RadComboBoxStatus_OnCliendLoadHandler" OnClientSelectedIndexChanged="StatusIndexChanged">
                                                <Items>
 
                                                    <telerik:RadComboBoxItem Text="All" />
 
                                                </Items>
                                            </telerik:RadComboBox>
 
                                            <telerik:RadScriptBlock ID="RadScriptBlockStatus" runat="server">
                                                <script type="text/javascript">
                                                    function RadComboBoxStatus_OnCliendLoadHandler(sender, args) {
                                                             
                                                        var rc = Telerik.Web.UI.RadComboBox.ComboBoxes[0];
                                                        var its = rc.get_items();
 
 
                                                        for (i = 1; i < its.get_count(); i++) {
                                                                 
                                                            var it = its.getItem(i);                                                             
                                                                 
                                                                
                                                            it.set_text("   ");
                                                            it.set_cssClass("glyphicon glyphicon-flag "+it.get_value().toLowerCase()+"_status");
 
                                                        }
                                                    }
 
                                                    function StatusIndexChanged(sender, args) {
 
                                                             
                                                             
                                                        var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
                                                        tableView.filter("STATUS", args.get_item().get_value(), "EqualTo");
                                                             
                                                    }
                                                </script>
                                            </telerik:RadScriptBlock>
                                        </FilterTemplate>
                                        <ItemTemplate>
                                            <span style="float: inherit !important;" class='glyphicon glyphicon-flag <%# DataBinder.Eval(Container.DataItem,"STATUS").ToString().ToLower() %>_status'></span>
                                        </ItemTemplate>
                                    </telerik:GridTemplateColumn>
 
                                    <telerik:GridBoundColumn UniqueName="QuestionTitle" HeaderText="Title" DataField="TITLE" HeaderStyle-Wrap="false" ItemStyle-Wrap="false" AutoPostBackOnFilter="false" AllowFiltering="true" />
 
 
                                    <telerik:GridBoundColumn UniqueName="TYPE" HeaderText="Type" HeaderStyle-Width="15%" ItemStyle-Width="15%" DataField="TYPE" HeaderStyle-Wrap="false" ItemStyle-Wrap="false" AutoPostBackOnFilter="false" AllowFiltering="true">
                                    </telerik:GridBoundColumn>
 
                                    <telerik:GridTemplateColumn UniqueName="QuestionReferenceLanguage" HeaderText="ReferenceLanguage" HeaderStyle-Width="15%" ItemStyle-Width="15%" DataField="REFERENCE_CULTURE" HeaderStyle-Wrap="false" ItemStyle-Wrap="false" AllowFiltering="true" AutoPostBackOnFilter="false">
                                        <ItemTemplate><%# GetReferenceCulture(DataBinder.Eval(Container.DataItem,"REFERENCE_CULTURE").ToString(), DataBinder.Eval(Container.DataItem,"REFERENCE_STATUS").ToString().ToLower(), DataBinder.Eval(Container.DataItem,"TRANSLATION_STATUS").ToString().ToLower()) %></ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridTemplateColumn UniqueName="QuestionCreationAdmin" HeaderText="Author" DataField="CREATION_ADMIN_ID" HeaderStyle-Wrap="false" ItemStyle-Wrap="false" AllowFiltering="true" AutoPostBackOnFilter="false">
                                        <ItemTemplate><%# GetCreationAdmin(int.Parse(DataBinder.Eval(Container.DataItem,"CREATION_ADMIN_ID").ToString())) %></ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                </Columns>
                                <PagerStyle AlwaysVisible="false" Mode="NumericPages" />
                            </MasterTableView>
                        </telerik:RadGrid>
                    </div>
                </div>
            </div>
            <div class="modal-footer">
                <asp:Button type="button" runat="server" data-dismiss="modal" class="btn btn-outline dark" Text="Fermer" />
                <asp:Button type="button" runat="server" data-dismiss="modal" OnClientClick="bindQuestions()" class="btn green" Text="Lier les questions" />
            </div>
        </div>
        <asp:SqlDataSource ID="SQLStatus" ConnectionString="<%$ ConnectionStrings:XPERTeam %>"
            ProviderName="System.Data.SqlClient" SelectCommand="SELECT DISTINCT STATUS_ID as STATUS FROM QM_QUESTION"
            runat="server"></asp:SqlDataSource>
        <asp:SqlDataSource ID="SqlType" ConnectionString="<%$ ConnectionStrings:XPERTeam %>"
            ProviderName="System.Data.SqlClient" SelectCommand="SELECT DISTINCT QUESTION_TYPE_ID as TYPE FROM QM_QUESTION"
            runat="server"></asp:SqlDataSource>
        <!-- NEEDED FOR BINDING CONTROL -->
        <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel" runat="server" Transparency="30" MinDisplayTime="100" />
 
    </form>
    <style>
        .rcbSlide {
            z-index: 20000 !important;
        }
    </style>
 
</body>
</html>

 

C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
using Telerik.Web.UI;
 
using XPTUtils;
using XPTSocle;
using WBTManagerObject.QM;
 
namespace WBT.manageQuiz
{
 
    public partial class theme : System.Web.UI.Page
    {
 
        #region Variables
        protected string sCulture;
        protected Localization oLoc;
        public Users oUser = null;
        protected string sId = "";
        protected string sParentId = "";
        protected int nThemeId = 0;
        protected int nParentThemeId = 0;
        protected int nThemeFolderId = 0;
        protected Theme oTheme;
        protected int nNewThemeId = 0;
        protected string sTabToShow = "";
        private DataSet QuestionsDS = null;
        protected DataSet questions_list = null;
 
        #endregion Variables
 
        protected void Page_Init(object sender, EventArgs e)
        {
            #region User
            if (Session["oUser"] != null)
                oUser = (Users)Session["oUser"];
            else
                Response.Redirect("~/default.aspx");
            #endregion User
 
            #region Localization
            sCulture = Request.Cookies["WBTCulturePref"].Value;
            oLoc = new Localization(sCulture);
            #endregion Localization
 
            #region Telerik
            PageSkinManager.Skin = oUser.Style.Tables["Styles"].Rows.Find(Domain_Styles.Telerik_Skin)["VALUE"].ToString();
            #endregion Telerik
 
            #region Page controls settings
            contentheader.PageTitle = oLoc.GetString((Request["id"] != null) ? ("AltEditTheme") : ("AltAddTheme"), oUser.Subdomain);
            contentheader.SubDomain = oUser.Subdomain;
            contentheader.Localization = oLoc;
            #endregion Page controls settings
 
            #region Request params
            if (Request["parentid"] != null)
            {
                sParentId = Request["parentid"];
                contentheader.CurrentObject = "parentid=" + sParentId;
                string[] tId = Request["parentid"].Split(":".ToCharArray(), StringSplitOptions.None);
                if (tId.Length > 2)
                    int.TryParse(tId[2], out nParentThemeId);
            }
 
            if (Request["id"] != null)
            {
                int.TryParse(Request["id"], out nThemeId);
            }
 
            if (Request["tab"] != null)
                sTabToShow = Request["tab"];
 
            #endregion Request params
 
 
        }
 
        protected void Page_Load(object sender, EventArgs e)
        {
            #region Session or ViewState
            // Theme Folder
            if (Session["oTheme"] != null)
            {
                oTheme = (Theme)Session["oTheme"];
                Session["oTheme"] = null;
            }
            else if (ViewState["oTheme"] != null)
                oTheme = (Theme)ViewState["oTheme"];
            else if (nThemeId > 0)
                oTheme = new Theme(nThemeId);
            #endregion Session or ViewState
 
            if (!IsPostBack)
            {
                #region Actions
 
                QuestionAdd.Attributes.Add("data-original-title", oLoc.GetString("AltAddQuestionsToTheme", oUser.Subdomain));
                QuestionDrop.Attributes.Add("data-original-title", oLoc.GetString("AltDropQuestionsFromTheme", oUser.Subdomain));
 
                #endregion Actions
 
                /* NEEDED FOR BINDING CONTROL */
                #region treeview
 
                bool bTreeviewKeepExpanded = false;
                bool.TryParse(oUser.Setting.Tables["Settings"].Rows.Find(Domain_Settings.TreeviewKeepExpanded)["VALUE"].ToString(), out bTreeviewKeepExpanded);
 
 
                RadTreeNode myQuestionNode = new RadTreeNode(oLoc.GetString("LblQuestions", oUser.Subdomain), "");
                myQuestionNode.Expanded = true;
                myQuestionNode.Selected = true;
                myQuestionNode.ExpandMode = TreeNodeExpandMode.ServerSideCallBack;
                QuestionFolderRadTreeView.Nodes.Add(myQuestionNode);
                QuestionFolderRadTreeView.SingleExpandPath = !bTreeviewKeepExpanded;
                QuestionFolder qf = new QuestionFolder();
 
                BindSubQuestionFolderTreeView(myQuestionNode, qf.GetFolderChildrenDS("", false));
                //QuestionFolderRadTreeView.ExpandAllNodes();
 
                #endregion treeview
                 
                #region Translation
                // Tab
                RadTabTheme.FindTabByValue("theme_info_tab").Text = oLoc.GetString("LblThemeInfo", oUser.Subdomain);
                RadTabTheme.FindTabByValue("theme_questions_tab").Text = oLoc.GetString("LblThemeQuestions", oUser.Subdomain);
                RadTabTheme.FindTabByValue("theme_competence_tab").Text = oLoc.GetString("LblThemeCompetency", oUser.Subdomain);
                // Buttons
                BtnSubmit.Text = oLoc.GetString("BtnSubmit", oUser.Subdomain);
                BtnCancel.Text = oLoc.GetString("BtnCancel", oUser.Subdomain);
                // Info Pageview
                LblName.InnerHtml = oLoc.GetString("LblThemeName", oUser.Subdomain);
                LblDescription.InnerHtml = oLoc.GetString("LblDescription", oUser.Subdomain);
                // MODAL
               // BtnBind.Text = oLoc.GetString("BtnBindQuestions", oUser.Subdomain);
               // BtnCloseBind.Text = oLoc.GetString("BtnCloseBind", oUser.Subdomain);
                 
                #endregion Translation
 
                #region Fill values
                // Info Pageview
                if (oTheme != null)
                {
                    TxtName.Text = oTheme.Name;
                    TxtDescription.Text = oTheme.Description;
                }
                // Access Pageview               
                #endregion Fill values
 
                #region Display correct tab after ajax.
                if (!string.IsNullOrWhiteSpace(sTabToShow) && oTheme != null)
                {
                    string sUpdateScript = "setTimeout(\"selectTab('" + sTabToShow + "')\", 500);";
                    ScriptManager.RegisterStartupScript(Page, typeof(Page), "TabShow", sUpdateScript, true);
                    int nIndex = 0;
                    switch (sTabToShow)
                    {
                        case "theme_info_tab":
                            nIndex = 0;
                            break;
 
                        case "theme_questions_tab":
                            nIndex = 1;
                            break;
 
                        case "theme_competence_tab":
                            nIndex = 2;
                            break;
                    }
                    RadTabTheme.SelectedIndex = nIndex;
                    RadMultiPageTheme.SelectedIndex = nIndex;
                }
                #endregion Display correct tab after ajax
            }
             
 
            #region Check user rights
 
            #endregion Check user rights
        }
 
 
        /* NEEDED FOR BINDING CONTROL */
 
        /// <summary>
        /// Recursive method that adds nodes to a tree
        ///
        /// SIDE EFFECT : The childrenDS.Tables["Folders"].Rows are destroyed during the process
        ///
        /// </summary>
        /// <param name="parentNode">The node that needs children to be added</param>
        /// <param name="childrenDS">The children's DataSet of the folder being treated The table "Folders" is destroyed during the process</param>
        protected void BindSubQuestionFolderTreeView(RadTreeNode parentNode, DataSet childrenDS)
        {
            // Nodes are added only if the dataset of folders is not null nor empty
            if (childrenDS.Tables["Folders"].Rows != null && childrenDS.Tables["Folders"].Rows.Count > 0)
            {
                //Binding the current child to the parentNode
                DataRow child = childrenDS.Tables["Folders"].Rows[0];
                RadTreeNode newNode = new RadTreeNode(child["NAME"].ToString(), child["FOLDER_ID"].ToString());
                newNode.ExpandMode = TreeNodeExpandMode.ServerSideCallBack;
                parentNode.Nodes.Add(newNode);
 
                //Binding children of the current child
                int folder_id = 0;
                int.TryParse(child["FOLDER_ID"].ToString(), out folder_id);
                QuestionFolder qf = new QuestionFolder(folder_id);
                BindSubQuestionFolderTreeView(newNode, qf.GetFolderChildrenDS(folder_id.ToString(), false));
 
                //Remove the current child
                childrenDS.Tables["Folders"].Rows.RemoveAt(0);
 
                //Process siblings of the current node
                BindSubQuestionFolderTreeView(parentNode, childrenDS);
 
            }
        }
 
        protected void Page_PreRender(object sender, EventArgs e)
        {
            if (oTheme != null)
                ViewState["oTheme"] = oTheme;
        }
 
        public void PageRadAjaxManager_AjaxRequest(object sender, AjaxRequestEventArgs e)
        {
            string argument = (e.Argument);
            string[] argumentArray = argument.Split("|".ToCharArray(), StringSplitOptions.None);
 
            if (e.Argument.StartsWith("Create"))
                OnThemeCreated(argumentArray[2], argumentArray[4], argumentArray[6]);
 
            /* NEEDED FOR BINDING CONTROL */
            if (e.Argument.StartsWith("ClearFilters"))
            {
                btnShowAll_Click();
            }
 
            if (e.Argument.StartsWith("ApplyQuestionFolder"))
            {
                int nQuestionFolderId = 0;
                int.TryParse(argumentArray[2], out nQuestionFolderId);
                QuestionsGrid1_update(nQuestionFolderId);
            }
            if (e.Argument.StartsWith("AddQuestionsTheme"))
            {
                Debug.WriteLine(QuestionsGrid.SelectedItems.Count);
                int nQuestionId = 0;
                for (int i = 2; i < argumentArray.Length - 1; i++)
                {
                    int.TryParse(argumentArray[i], out nQuestionId);
                    WBTManagerObject.QM.Theme.BindQuestionTheme(nThemeId,nQuestionId);
                     
                }
              //  tabs.Update();
                QuestionsGrid_update();
                //Response.Redirect(Request.RawUrl);
            }
            if (e.Argument.StartsWith("DropQuestionsTheme"))
            {
                int nQuestionId = 0;
                for (int i = 2; i < argumentArray.Length - 1; i++)
                {
                    int.TryParse(argumentArray[i], out nQuestionId);
                    WBTManagerObject.QM.Theme.DropQuestionTheme(nThemeId, nQuestionId);
                     
                }
               // tabs.Update();
                QuestionsGrid_update();
                //Response.Redirect(Request.RawUrl);
            }
        }
 
        protected void QuestionsGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            QuestionsGrid.Columns.FindByUniqueName("QuestionTitle").HeaderText = oLoc.GetString("LblQuestionTitle", oUser.Subdomain);
            QuestionsGrid.MasterTableView.NoMasterRecordsText = oLoc.GetString("MsgQuestionThemeGridNoData", oUser.Subdomain);
 
            oTheme = new Theme(nThemeId);
            QuestionsDS = oTheme.GetQuestionsDS(nThemeId);
 
            QuestionsGrid.VirtualItemCount = QuestionsDS.Tables[0].Rows.Count; ;
            QuestionsGrid.DataSource = QuestionsDS;
        }
 
        public void QuestionsGrid_update()
        {
            {
                QuestionsGrid.Columns.FindByUniqueName("QuestionTitle").HeaderText = oLoc.GetString("LblQuestionTitle", oUser.Subdomain);
                QuestionsGrid.MasterTableView.NoMasterRecordsText = oLoc.GetString("MsgQuestionThemeGridNoData", oUser.Subdomain);
 
                oTheme = new Theme(nThemeId);
                QuestionsDS = oTheme.GetQuestionsDS(nThemeId);
 
                QuestionsGrid.VirtualItemCount = QuestionsDS.Tables[0].Rows.Count; ;
                QuestionsGrid.DataSource = QuestionsDS;
                QuestionsGrid.Rebind();
            }
             
        }
 
        protected void QuestionsGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            QuestionsGrid1.Columns.FindByUniqueName("QuestionTitle").HeaderText = oLoc.GetString("LblQuestionTitle", oUser.Subdomain);
            QuestionsGrid1.Columns.FindByUniqueName("QuestionReferenceLanguage").HeaderText = oLoc.GetString("LblReferenceLanguage", oUser.Subdomain);
            QuestionsGrid1.MasterTableView.NoMasterRecordsText = oLoc.GetString("MsgQuestionThemeGridNoData", oUser.Subdomain);
            QuestionsGrid1.Columns.FindByUniqueName("TYPE").HeaderText = oLoc.GetString("LblQuestionType", oUser.Subdomain);
            QuestionsGrid1.Columns.FindByUniqueName("QuestionCreationAdmin").HeaderText = oLoc.GetString("LblCreationAdmin", oUser.Subdomain);
            QuestionFolder oQuestionFolder = new QuestionFolder();
            QuestionsDS = oQuestionFolder.GetAllQuestionsDS();
 
            QuestionsGrid1.VirtualItemCount = QuestionsDS.Tables[0].Rows.Count;
 
            var gd = QuestionsDS.Tables[0].Rows;
            Debug.WriteLine("QuestionsDS tables count : " + gd[2].ItemArray[2].ToString());
            foreach (DataRow tr in QuestionsDS.Tables[0].Rows)
            {
                object[] tab = new object[tr.ItemArray.Length];
                for (int i = 0; i < tr.ItemArray.Length; i++)
                {
                    
                        switch (tr.ItemArray[i].ToString())
                        {
                            case "cm":
                                tab[i] = oLoc.GetString("LblChoiceMultiple", oUser.Subdomain);
                                break;
 
                            case "DBQ":
                                tab[i] = oLoc.GetString("LblDoubleQuestion", oUser.Subdomain);
                                break;
 
                            case "dragandrop":
                                tab[i] = oLoc.GetString("LblDragAndDrop", oUser.Subdomain);
                                break;
 
                            case "essay":
                                tab[i] = oLoc.GetString("LblEssay", oUser.Subdomain);
                                break;
 
                            case "FITB":
                                tab[i] = oLoc.GetString("LblFillInTheBlank", oUser.Subdomain);
                                break;
 
                            case "hotspot":
                                tab[i] = oLoc.GetString("LblHotspot", oUser.Subdomain);
                                break;
 
                            case "match":
                                tab[i] = oLoc.GetString("LblMatch", oUser.Subdomain);
                                break;
 
                            case "matrix":
                                tab[i] = oLoc.GetString("LblMatrix", oUser.Subdomain);
                                break;
 
                            case "order":
                                tab[i] = oLoc.GetString("LblOrder", oUser.Subdomain);
                                break;
 
                            case "title":
                                tab[i] = oLoc.GetString("LblTitle", oUser.Subdomain);
                                break;
 
                            default:
                                tab[i] = tr.ItemArray[i];
                                break;
 
                        }
                     
                }
                tr.ItemArray = tab;
            }
 
            QuestionsGrid1.DataSource = QuestionsDS;
            questions_list = QuestionsDS;
        }
 
        /* NEEDED FOR BINDING CONTROL */
        protected void QuestionsGrid1_update(int pQuestionFolderId)
        {
 
            QuestionFolder oQuestionFolder = new QuestionFolder();
 
            QuestionsDS = pQuestionFolderId == 0 ? oQuestionFolder.GetAllQuestionsDS() : oQuestionFolder.GetElementsDS(pQuestionFolderId);
 
            QuestionsGrid1.VirtualItemCount = QuestionsDS.Tables[0].Rows.Count;
            QuestionsGrid1.DataSource = QuestionsDS;
            questions_list = QuestionsDS;
            QuestionsGrid1.Rebind();
        }
 
        private void OnThemeCreated(string pName, string pDescription, string pNextTab)
        {
            oTheme = new Theme();
            nNewThemeId = oTheme.Create(pName.Trim(), pDescription, nParentThemeId, oUser.User_Id, oUser.Domain_Id);
            if (nNewThemeId > 0)
            {
                if (!string.IsNullOrWhiteSpace(pDescription.Trim()))
                    oTheme.Description = pDescription.Trim();
                Session["oTheme"] = oTheme;
                Session["oQuestion"] = oTheme;
                QuestionFolder oThemeFolder = new QuestionFolder(nParentThemeId);
                Users_log.WriteLog(oUser.User_Id, oUser.Domain_Id, Users_log.Action.Add, Users_log.ObjType.QM_Question, nNewThemeId, "Successfully added theme " + pName.Trim() + " into folder" + oThemeFolder.Name);
 
                if (pNextTab != "")
                    Response.Redirect("theme.aspx?id=" + oTheme.ThemeId + "&parentid=" + Request["parentid"].ToString() + "&tab=" + pNextTab);
            }
            else
            {
                oTheme.Fdelete = true;
                Users_log.WriteLog(oUser.User_Id, oUser.Domain_Id, Users_log.Action.Add, Users_log.ObjType.QM_Theme_Folder, 0, "Failed to Create theme " + pName.Trim());
                ScriptManager.RegisterStartupScript(Page, typeof(Page), "ThemeCreationError", "ThemeCreationError()", true);
            }
 
        }
 
        protected void BtnCancel_Click(object sender, EventArgs e)
        {
            Response.Redirect("themes.aspx?id=" + ((nParentThemeId > 0) ? (nParentThemeId) : (0)));
        }
 
        protected void BtnSubmit_Click(object sender, EventArgs e)
        {
            UpdateData();
            Response.Redirect("themes.aspx?id=" + ((nParentThemeId > 0) ? (nParentThemeId) : (0)));
        }
 
        protected void UpdateData()
        {
            if (oTheme != null) // Update theme folder
            {
                #region Update
                if (TxtName.Text.Trim() != oTheme.Name)
                {
                    oTheme.Name = TxtName.Text.Trim();
                    Users_log.WriteLog(oUser.User_Id, oUser.Domain_Id, Users_log.Action.Edit, Users_log.ObjType.QM_Theme_Folder, oTheme.ThemeId, "Successfully edit theme name to " + oTheme.Name);
                }
                if (TxtDescription.Text.Trim() != (string.IsNullOrWhiteSpace(oTheme.Description) ? "" : oTheme.Description))
                    oTheme.Description = TxtDescription.Text;
                oTheme.Save();
                #endregion Update
            }
            else // Create theme folder
            {
                #region Create
                oTheme = new Theme();
                nNewThemeId = oTheme.Create(TxtName.Text.Trim(), TxtDescription.Text.Trim(), nParentThemeId, oUser.User_Id, oUser.Domain_Id);
                if (nNewThemeId > 0)
                {
                    if (!string.IsNullOrWhiteSpace(TxtDescription.Text.Trim()))
                        oTheme.Description = TxtDescription.Text.Trim();
                    Users_log.WriteLog(oUser.User_Id, oUser.Domain_Id, Users_log.Action.Add, Users_log.ObjType.QM_Theme_Folder, oTheme.ThemeId, "Successfully created theme " + oTheme.Name);
                }
                else
                    Users_log.WriteLog(oUser.User_Id, oUser.Domain_Id, Users_log.Action.Add, Users_log.ObjType.QM_Theme_Folder, 0, "Failed to create theme " + TxtName.Text);
                #endregion Create
            }
        }
 
        //METHODS FOR THE MODAL
 
        public string GetCreationAdmin(int pCreationAdminId)
        {
            Users oUser = new Users(pCreationAdminId);
            return oUser.Fname + " " + oUser.Lname;
        }
 
        public string GetReferenceCulture(string pReferenceCulture, string pReferenceStatus, string pTranslationStatus)
        {
            string sReferenceCulture = QuizManagerObject.Utils.GetLblQuestionReferenceCulture(pReferenceCulture, oLoc, oUser.Subdomain);
            if (pReferenceStatus == "source")
                sReferenceCulture += "*";
            else
            {
                if (pTranslationStatus == "translated")
                    sReferenceCulture = "<font style=\"color:green\">" + sReferenceCulture + "</font>";
                else if (pTranslationStatus == " nottranslated")
                    sReferenceCulture = "<font style=\"color:red\">" + sReferenceCulture + "</font>";
                else
                    sReferenceCulture = "<font style=\"color:orange\">" + sReferenceCulture + "</font>";
            }
            return sReferenceCulture;
        }
 
   
 
        
 
        //Show all = clear filters for QuestionsGrid1 (inside modal) !DEPRECATED!
        protected void btnShowAll_Click()
        {
            QuestionsGrid1.MasterTableView.FilterExpression = string.Empty;
 
            foreach (GridColumn column in QuestionsGrid1.MasterTableView.RenderColumns)
            {
                if (column is GridBoundColumn)
                {
                    GridBoundColumn boundColumn = column as GridBoundColumn;
                    boundColumn.CurrentFilterValue = string.Empty;
                }
                if (column is GridTemplateColumn)
                {
                    GridTemplateColumn templateColumn = column as GridTemplateColumn;
                    templateColumn.CurrentFilterValue = string.Empty;
                }
            }
 
 
            QuestionsGrid1.MasterTableView.Rebind();
 
        }
 
 
 
    }
}

 

Maria Ilieva
Telerik team
 answered on 24 Jun 2016
6 answers
919 views
Hi,
I have a RadGrid with around 15 columns and I show around 250 rows of data.
I want the client side sorting functionality on this Grid.
I tried many examples proposed in this thread, but couldn't achieve this functionality.
I also tried ajaxifying the Grid. It did the Sort, but it's still a Semi-Server Sort.
My Data Bind methods are on the Server Side. Can I achieve the Client Side Sorting so that this process becomes faster?
I saw some examples using Webservice in this thread. But I am not using Web Service in my design.
Please let me know how this can be accomplished?
Thanks
Srinivas
Viktor Tachev
Telerik team
 answered on 24 Jun 2016
0 answers
89 views

Hi

We have a site which uses Telerik controls extensively and has been operating for many years.

For many years users were told to use Internet Explorer in compatibility mode as this was the only way that the Telerik would work.

 

Recently they upgraded  to the latest version of the Telerik control. I have extensively used custom skins when applying the upgrade,

all straight out of the book as it is my first experience with telerik.

<link href="/MySkin/Grid.MySkin.css" rel="stylesheet" type="text/css"  id="Link1"/>

 <telerik:RadGrid

     Skin="MySkin"

     EnableEmbeddedSkins="False"
      ID="rgdRoles"
      runat="server"
      >

etc.

I got the site working in IE, Edge, Firefox and Chrome flawlessly.

However when the users come to use it in IE with compatibility mode

none of the custom skins are shown and the site looks like a dogs dinner.

When I look at the recourses used for styling, the skin css files are not being implemented.

if I undo the compatibility then they are.

 

My customer is insistent that complatibility mode is maintained. My question is: how can I implement

this with the custom skins.

 

Thanks

 

jonathan

 

 

 

Jonathan
Top achievements
Rank 1
 asked on 24 Jun 2016
1 answer
37 views

Hello all,

I have very weird problem. There is RadPanelBar located on master page. Everything was great until I added following style on one of ascx pages. When this page is loaded and I click on some item in RPB link is opening in new tab. This is happening only in Firefox Browser.

Style is hidding carret in RadComboBox.

 

.VastMasterNoCarret input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
    text-shadow: none;
    -webkit-text-fill-color: initial;
    color: rgba(0,0,0,0) !important;
}

 

How can I fix it? By fix I mean stop openning in new tab.

Veselin Tsvetanov
Telerik team
 answered on 24 Jun 2016
1 answer
63 views

Is it possible to toggle column visibilty/editing on a grid with a declarative datasource?

We have a requirement to show/hide certain columns in tables we'd like to display using a RadGrid.

We also have a requirement to enable/disable the editing of certain columns in tables we'd like to display using a RadGrid.

There is a master table in the database that stores the tablename, columnname, visible (0 or 1), editable (0 or 1) data.

Is it possible to use the values in that master table to control which columns are visible/hidden and to enable/disable the editing of certain columns in a RadGrid that has a declarative datasource?

 

Konstantin Dikov
Telerik team
 answered on 24 Jun 2016
1 answer
395 views

when i bind grid without  ItemDataBound it bind fine. But when i use it , then it show the Exception of type 'System.OutOfMemoryException' was thrown. error.

Here is my code

   protected void griddetails_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
        {
            if (e.Item is GridDataItem)
            {
                griddetails.MasterTableView.RenderColumns[4].Display = false;
                griddetails.MasterTableView.RenderColumns[5].Display = false;
                griddetails.MasterTableView.RenderColumns[6].Display = false;
                griddetails.MasterTableView.RenderColumns[7].Display = false;

                griddetails.MasterTableView.RenderColumns[10].Display = false;
                griddetails.MasterTableView.RenderColumns[11].Display = false;
                griddetails.MasterTableView.RenderColumns[26].Display = false;
                griddetails.MasterTableView.RenderColumns[30].Display = false;
                griddetails.MasterTableView.RenderColumns[31].Display = false;
                griddetails.MasterTableView.RenderColumns[32].Display = false;

                //if (e.Item.RowIndex > -1)                                       // i comment this part but still not working
                //{
                RadComboBox ddlMT = new RadComboBox();
                ddlMT.ID = "ddlMT";
                   
                ddlMT.Filter = RadComboBoxFilter.Contains;
                ddlMT.DataSource = Bll.Bal_BindAllEmployeewithRole("ALL", Session["MTUseId"], e.Item.Cells[4].Text, e.Item.Cells[5].Text, "MT", null, null);
                ddlMT.DataTextField = "EmployeeName";
                ddlMT.DataValueField = "Empid";
                ddlMT.DataBind();
                e.Item.Cells[20].Controls.Add(ddlMT);

                RadComboBox ddlQA = new RadComboBox();
                ddlQA.ID = "ddlQA";
                   
                ddlQA.Filter = RadComboBoxFilter.Contains;
                ddlQA.DataSource = Bll.Bal_BindAllEmployeewithRole("ALL", Session["MTUseId"], e.Item.Cells[4].Text, e.Item.Cells[5].Text, "QA", null, null);
                ddlQA.DataTextField = "EmployeeName";
                ddlQA.DataValueField = "Empid";
                ddlQA.DataBind();
                e.Item.Cells[21].Controls.Add(ddlQA);

                RadComboBox ddlMT2 = new RadComboBox();
                ddlMT2.ID = "ddlMT2";
                  
                ddlMT2.Filter = RadComboBoxFilter.Contains;
                ddlMT2.DataSource = Bll.Bal_BindAllEmployeewithRole("ALL", Session["MTUseId"], e.Item.Cells[4].Text, e.Item.Cells[5].Text, "MT2", null, null);
                ddlMT2.DataTextField = "EmployeeName";
                ddlMT2.DataValueField = "Empid";
                ddlMT2.DataBind();
                e.Item.Cells[22].Controls.Add(ddlMT2);

                RadComboBox ddlQA2 = new RadComboBox();
                ddlQA2.ID = "ddlQA2";
                  
                ddlQA2.Filter = RadComboBoxFilter.Contains;
                ddlQA2.DataSource = Bll.Bal_BindAllEmployeewithRole("ALL", Session["MTUseId"], e.Item.Cells[4].Text, e.Item.Cells[5].Text, "QA2", null, null);
                ddlQA2.DataTextField = "EmployeeName";
                ddlQA2.DataValueField = "Empid";
                ddlQA2.DataBind();
                e.Item.Cells[23].Controls.Add(ddlQA2);

                RadComboBox ddlQC = new RadComboBox();
                ddlQC.ID = "ddlQC";
                  
                ddlQC.Filter = RadComboBoxFilter.Contains;
                ddlQC.DataSource = Bll.Bal_BindAllEmployeewithRole("ALL", Session["MTUseId"], e.Item.Cells[4].Text, e.Item.Cells[5].Text, "QC", null, null);
                ddlQC.DataTextField = "EmployeeName";
                ddlQC.DataValueField = "Empid";
                ddlQC.DataBind();
                e.Item.Cells[24].Controls.Add(ddlQC);

               
            }
            //}
        }
   
I think i am creating the control dynamic here it may be due to this. This code bind upto 971 records but after that it show error.

if there is another way to create it, tell me. I want to bind thru it server side not clientside bcoz it can't fullfill my need.

Eyup
Telerik team
 answered on 24 Jun 2016
3 answers
234 views

Hi

My DataForm displays data in edit mode just fine, with a selection of textboxs and RadDropDownList's.

The RadDropDownList bind via the RadDataForm1_ItemDataBound event.

 

But when I am in insert mode how do I populate/bind  my  RadDropDownList in code behind?

The ItemDataBound doesn't fire

 

Many Thanks

 

Mark

 

Eyup
Telerik team
 answered on 24 Jun 2016
1 answer
282 views

Hi

    I am using radscheduler, I need to  select multiple dates from the month view of scheduler, I would like to get start date and end date of my selection.

How is that possible in C#?

It is urgent therefore a quick response would be greatly appreciated.

Thanks

Ivan Danchev
Telerik team
 answered on 24 Jun 2016
Narrow your results
Selected tags
Tags
+? more
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?