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

Cannot transfer checkbx item in Listbox

5 Answers 80 Views
ListBox
This is a migrated thread and some comments may be shown as answers.
Joe
Top achievements
Rank 1
Joe asked on 22 Jun 2013, 02:39 AM

I had enabled checkbox feature in radlistbox,
i had checked selected item in Source Listbox, but the transfer button still disable.
i need to click either row in SourceListbox, and then the transfer button will be enable.

how can i simply checked the checkbox and then click transfer button ? thanks

     <table>
           <tr>
 
<td>
Unselect
<br />
<telerik:RadListBox runat="server" ID="RadListBox_unselect" Height="200px" Width="230px"
    AllowTransfer="True" TransferToID="RadListBox_select"
         AutoPostBack="True" CheckBoxes="True"
        style="top: 0px; left: 0px" DataSourceID="ODS_Unselect"
        DataTextField="employee_display_name" DataValueField="employee_id" OnClientTransferring="clientTransfering">
 
</telerik:RadListBox>
    <asp:ObjectDataSource ID="ODS_Unselect" runat="server"
        SelectMethod="GetEmployeeArrayByListByCourseID" TypeName="LRDB">
        <SelectParameters>
            <asp:SessionParameter DefaultValue="0" Name="id" SessionField="EmpList"
                Type="String" />
        <asp:QueryStringParameter Name="CID" QueryStringField="CourseID"
                Type="String" />
        </SelectParameters>
    </asp:ObjectDataSource>
               </td>
<td></td>
<td>
Selected
<br />   
<telerik:RadListBox runat="server" ID="RadListBox_select" Height="200px"
        Width="200px" TransferToID="RadListBox_unselect"
         AutoPostBack="True" CheckBoxes="True"              
        style="top: 0px; left: 0px">   
</telerik:RadListBox>
    </td>
</tr>
</table>

5 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 24 Jun 2013, 05:21 AM
Hi Joe,

One suggestion is using javascript you can set the checked item as selected and hence the transfer button can be enabled on checking items. Please have a look at the sample code I tried which works as expected.

ASPX:
<telerik:RadListBox ID="RadListBox1" runat="server" Skin="Web20" AllowTransfer="true"
    CheckBoxes="true" OnClientItemChecked="OnClientItemChecked" SelectionMode="Multiple"
    TransferToID="RadListBox2">
    <Items>
        <telerik:RadListBoxItem runat="server" Text="ASP" />
        <telerik:RadListBoxItem runat="server" Text="WCF" />
        <telerik:RadListBoxItem runat="server" Text="WPF" />
    </Items>
</telerik:RadListBox>
<telerik:RadListBox ID="RadListBox2" runat="server" Skin="Web20">
    <Items>
        <telerik:RadListBoxItem runat="server" Text="JSP" />
        <telerik:RadListBoxItem runat="server" Text="JSF" />
    </Items>
</telerik:RadListBox>

JavaScript:
<script type="text/javascript">
    function OnClientItemChecked(sender, args) {
        args.get_item().set_selected(true);
    }
</script>

Thanks,
Shinu.
0
Joe
Top achievements
Rank 1
answered on 24 Jun 2013, 10:22 AM
thanks for your reply.

i had implemented your code, but it still need to click either row to enable the transfer button.
cannot just check the checkbox to enable the button.

thanks
0
Shinu
Top achievements
Rank 2
answered on 24 Jun 2013, 11:01 AM
Hi Joe,

Can you please provide your full code with the solution I provided?

Thanks,
Shinu.
0
Joe
Top achievements
Rank 1
answered on 24 Jun 2013, 11:33 AM
<%@ Page Title="" Language="VB" MasterPageFile="~/LRDB.master" AutoEventWireup="false" CodeFile="training_session_create.aspx.vb" Inherits="training_session_create" %>
 
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    <style type="text/css">
        .style4
        {
            text-decoration: underline;
        }
        .style10
        {
            width: 278px;
            height: 15px;
            background-color: #E7EEF6;
        }
        html .RadDropDownList_Default .rddlDisabled {
           border-color: #cccccc;
       }
        .style12
        {
            width: 278px;
            height: 32px;
            background-color: #E7EEF6;
        }
        .style13
        {
            height: 32px;
        }
        .style15
        {
            width: 96px;
        }
    </style>
 
    <script type="text/javascript">
 
        function clientTransfering(sender, args) {
            args.set_cancel(true);
            var checkedNodes = args.get_sourceListBox().get_checkedItems();
            for (var i in checkedNodes) {
                var item = checkedNodes[i];
                args.get_sourceListBox().transferToDestination(item);
 
            }
        }  
 
 
    function OnClientItemChecked(sender, args) {
        args.get_item().set_selected(true);
    }
 
    </script>
 
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
    <telerik:RadToolBar ID="rtbMenu" runat="server" Width="100%" Skin="Windows7">
        <Items>
            <telerik:RadToolBarButton Value="Save" Text="Save" Width="80px" Visible="true" />
            <telerik:RadToolBarButton IsSeparator="true" Visible="true" />
            <telerik:RadToolBarButton Value="Refresh" Text="Refresh" Width="80px" />
            <telerik:RadToolBarButton IsSeparator="true" />
            <telerik:RadToolBarButton Value="Back" Text="Back" Width="80px"  CausesValidation="false"/>
            <telerik:RadToolBarButton Value="BackSeparator" IsSeparator="true" />
        </Items>
    </telerik:RadToolBar>
                 <telerik:RadFormDecorator ID="QsfFromDecorator" runat="server" DecoratedControls="All" EnableRoundedCorners="true"   />
 
     <div class="div_menu"
           <div id="content_function" class="content_function">
 
               <telerik:RadFormDecorator ID="RpFormDecorator" runat="server" Skin="Windows7"
            DecoratedControls="All" EnableRoundedCorners="true" />
                              <div style="margin-left:5px;">
       <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server">
       <table style="width:80%;">
       <tr>
       <td align="left" valign="top" class="style10">Course
       </td>
       <td align="left" valign="top">
           <telerik:RadDropDownList ID="rdl_select_course" runat="server"
               DefaultMessage="Please Select" AutoPostBack="True"
               OnSelectedIndexChanged="rdl_select_course_OnSelectedIndexChanged"
               DataSourceID="LDS_ddl_course" DataTextField="Course_Name"
               DataValueField="Course_ID"   Enabled="false">
 
           </telerik:RadDropDownList>
           <asp:LinqDataSource ID="LDS_ddl_course" runat="server"
               ContextTypeName="dcLRDBDataContext" EntityTypeName="" TableName="db_Courses">
           </asp:LinqDataSource>
           </td>
       </tr>
       <tr>
       <td align="left" valign="top" class="style10">Select Location
       </td>
       <td align="left" valign="top">
           <telerik:RadDropDownList ID="rdl_select_location" runat="server"
               DefaultMessage="Please Select" Enabled="False" AutoPostBack="True"
               OnSelectedIndexChanged="rdl_select_location_OnSelectedIndexChanged"
               DataSourceID="LDS_ddl_location" DataTextField="Location"
               DataValueField="Location_ID"  >
           </telerik:RadDropDownList>
           <asp:LinqDataSource ID="LDS_ddl_location" runat="server"
               ContextTypeName="dcLRDBDataContext" EntityTypeName="" TableName="db_Locations">
           </asp:LinqDataSource>
           </td>
       </tr>
       <tr>
       <td align="left" valign="top" class="style10">Select Trainer
       </td>
       <td align="left" valign="top">
           <telerik:RadDropDownList ID="rdl_select_trainer" runat="server"
               DefaultMessage="Please Select" Enabled="False" AutoPostBack="True"
               OnSelectedIndexChanged="rdl_select_trainer_OnSelectedIndexChanged"
               DataSourceID="ObjectDataSource1" DataTextField="DisplayName"
               DataValueField="Trainer_ID" >
           </telerik:RadDropDownList> <asp:Label ID="errmsg_ddl_trainer" runat="server" Visible="false" Text="No available Trainer for this Course and Location"></asp:Label>
           <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
               SelectMethod="GetTrainerDetailsArrayByUserID" TypeName="LRDB">
               <SelectParameters>
                   <asp:SessionParameter Name="id" SessionField="AvailableTrainerID" Type="String" />
               </SelectParameters>
           </asp:ObjectDataSource>
           </td>
       </tr>
       <tr>
       <td align="left" valign="top" class="style12">Selection Criteria
       </td>
       <td align="left" valign="top" class="style13">
  
 <table>
 <tr>
 <td class="style15">> Employee
 </td>
 <td>
     <telerik:RadDropDownTree ID="rdl_select_employee" runat="server"
         DataSourceID="ODS_Employee" DataTextField="employee_display_name"
         DataValueField="employee_id" DefaultMessage="Please Select" AutoPostBack="True"
         CheckBoxes="SingleCheck" Width="250px">
     </telerik:RadDropDownTree>
 
     <asp:ObjectDataSource ID="ODS_Employee" runat="server"
         SelectMethod="GetEmployeeDetailsArrayByCourseIDProjectID" TypeName="LRDB">
         <SelectParameters>
              <asp:QueryStringParameter Name="CID" QueryStringField="CourseID" Type="Int32" />
            <asp:SessionParameter Name="PID" SessionField="SelectedPID" Type="Int32" />
         </SelectParameters>
     </asp:ObjectDataSource>
 
 </td>
 </tr>
 <tr>
 <td class="style15">> Role Type</td>
 <td>
     <telerik:RadDropDownTree ID="rdl_select_roletype" runat="server"
         DataSourceID="LDS_roletype" DataTextField="rolename"
         DataValueField="roletypeid" DefaultMessage="Please Select" AutoPostBack="True"
         CheckBoxes="SingleCheck" Width="250px">
     </telerik:RadDropDownTree>
     <asp:ObjectDataSource ID="ODS_roletype" runat="server"
         SelectMethod="GetRoleTypeByCourseIDProjectID" TypeName="LRDB">
         <SelectParameters>
             <asp:QueryStringParameter Name="CID" QueryStringField="CourseID" Type="Int32" />
             <asp:SessionParameter Name="PID" SessionField="SelectedPID" Type="Int32" />
         </SelectParameters>
     </asp:ObjectDataSource>
     <asp:LinqDataSource ID="LDS_roletype" runat="server"
         ContextTypeName="dcLRDBDataContext" EntityTypeName=""
         TableName="db_Dictionary_RoleTypes">
     </asp:LinqDataSource>
 
 </td>
 </tr>
 <tr>
 <td class="style15">> Job Title
 </td>
 <td>
     <telerik:RadDropDownTree ID="rdl_select_jobtitle" runat="server"
         DataSourceID="LDS_JobTitle" DataTextField="job_title"
         DataValueField="id" DefaultMessage="Please Select" AutoPostBack="True"
         CheckBoxes="SingleCheck" Width="250px">
     </telerik:RadDropDownTree>
     <asp:ObjectDataSource ID="ODS_JobTitle" runat="server"
         SelectMethod="GetJobTitleByCourseIDProjectID" TypeName="LRDB">
         <SelectParameters>
             <asp:QueryStringParameter Name="CID" QueryStringField="CourseID" Type="Int32" />
             <asp:SessionParameter Name="PID" SessionField="SelectedPID" Type="Int32" />
         </SelectParameters>
     </asp:ObjectDataSource>
               <asp:LinqDataSource ID="LDS_JobTitle" runat="server"
         ContextTypeName="dcLRDBDataContext" EntityTypeName=""
         TableName="db_Dictionary_Job_Titles">
     </asp:LinqDataSource>
 </td>
 </tr>
 <tr>
 <td class="style15">> Department
 </td>
 <td>
     <telerik:RadDropDownTree ID="rdl_select_dept" runat="server"
         DataSourceID="LDS_Dept" DataTextField="department"
         DataValueField="deptid" DefaultMessage="Please Select" AutoPostBack="True"
         CheckBoxes="SingleCheck" Width="250px">
     </telerik:RadDropDownTree>
     <asp:ObjectDataSource ID="ODS_Dept" runat="server"
         SelectMethod="GetDeptByCourseIDProjectID" TypeName="LRDB">
         <SelectParameters>
             <asp:QueryStringParameter Name="CID" QueryStringField="CourseID" Type="Int32" />
             <asp:SessionParameter Name="PID" SessionField="SelectedPID" Type="Int32" />
         </SelectParameters>
     </asp:ObjectDataSource>
                    <asp:LinqDataSource ID="LDS_Dept" runat="server"
         ContextTypeName="dcLRDBDataContext" EntityTypeName=""
         TableName="db_Departments">
     </asp:LinqDataSource>
 </td>
 </tr>
 </table>
 
<asp:Button ID="btnSearch" runat="server" Text="Search" OnClick="btnSearch_click"/>
 
 
           <br />
           <br />
 
 
           <br />
           <br />
 
           <table>
               <tr>
     
    <td>
    Unselect
    <br />
    <telerik:RadListBox runat="server" ID="RadListBox_unselect" Height="200px" Width="230px"
        AllowTransfer="True" TransferToID="RadListBox_select"
             AutoPostBack="True" CheckBoxes="True" SelectionMode="Multiple"
            style="top: 0px; left: 0px" DataSourceID="ODS_Unselect" OnClientItemChecked="OnClientItemChecked"
            DataTextField="employee_display_name" DataValueField="employee_id" OnClientTransferring="clientTransfering">
 
    </telerik:RadListBox>
        <asp:ObjectDataSource ID="ODS_Unselect" runat="server"
            SelectMethod="GetEmployeeArrayByListByCourseID" TypeName="LRDB">
            <SelectParameters>
                <asp:SessionParameter DefaultValue="0" Name="id" SessionField="EmpList"
                    Type="String" />
            <asp:QueryStringParameter Name="CID" QueryStringField="CourseID"
                    Type="String" />
            </SelectParameters>
        </asp:ObjectDataSource>
                   </td>
    <td></td>
    <td>
    Selected
    <br />   
    <telerik:RadListBox runat="server" ID="RadListBox_select" Height="200px"
            Width="200px" TransferToID="RadListBox_unselect"
             AutoPostBack="True" CheckBoxes="True"              
            style="top: 0px; left: 0px">   
    </telerik:RadListBox>
        </td>
    </tr>
    </table>
            
 
           </td>
       </tr>
       <tr>
            
       <td align="left" valign="top" class="style10">Teaching Material URL
       </td>
       <td align="left" valign="top">
            
           <asp:TextBox ID="Tb_material_url" runat="server" Width="671px" Enabled="false"></asp:TextBox>
 
        </td>
        </tr>
       <tr>
            
       <td align="left" valign="top" class="style10">Attachment
       </td>
       <td align="left" valign="top">
            
 
                <telerik:RadProgressManager runat="server" ID="RadProgressManager1" />
 
                    <telerik:RadAsyncUpload runat="server" ID="AsyncUpload_Attachment"
                    InitialFileInputsCount="1" MaxFileSize="10240000" MultipleFileSelection="Automatic" />
                      <telerik:RadProgressArea runat="server" ID="RadProgressArea1" />
             
        </td>
        </tr>
       <tr>
       <td align="left" valign="top" class="style10">Select Date & Time
       </td>
       <td align="left" valign="top">
           <telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" InitialDelayTime="200">
 
        </telerik:RadAjaxLoadingPanel>
            <telerik:RadScriptBlock runat="server" ID="RadScriptBlock1">
                   <script type="text/javascript">
 
        //<![CDATA[
 
                       var selectedAppointment = null;
                       var contextMenuSlot = null;
 
                       function checkResourceMenuItem(menu, appointment) {
                           var calendar = appointment.get_resources().getResourcesByType("Calendar").getResource(0);
                           if (!calendar)
                               return;
 
                           var categorizeItem = menu.findItemByText("Categorize");
 
                           //Traverse all menu items below "Categorize"
                           for (var i = 0; i < categorizeItem.get_items().get_count(); i++) {
                               var item = categorizeItem.get_items().getItem(i);
                               if (item.get_value() == calendar.get_key()) {
 
                                   //The item corresponds to the current "Calendar" - the Value of the item stores the Key of the resource
                                   item.set_imageUrl("Images/checked.gif");
                               }
                               else {
                                   item.set_imageUrl("");
                               }
                           }
                       }
 
                       //Called when the user right-clicks an appointment
                       function appointmentContextMenu(sender, eventArgs) {
                           var menu = $find("<%= SchedulerAppointmentContextMenu.ClientID %>");
                           selectedAppointment = eventArgs.get_appointment();
                           checkResourceMenuItem(menu, selectedAppointment);
                           menu.show(eventArgs.get_domEvent());
                       }
 
//                       //Called when the user clicks an item from the appointment context menu
//                       function appointmentContextMenuItemClicking(sender, eventArgs) {
//                           var clickedItem = eventArgs.get_item();
 
//                           if (clickedItem.get_text() == "Categorize") {
//                               //Prevent the menu from closing if the user clicked the "Categorize" menu item
//                               eventArgs.set_cancel(true);
//                               return;
//                           }
//                       }
 
                       //Called when the user clicks an item from the appointment context menu
//                       function appointmentContextMenuItemClicked(sender, eventArgs) {
//                           if (!selectedAppointment)
//                               return;
//                           var clickedItem = eventArgs.get_item();
//                           var scheduler = $find("<%= RadScheduler1.ClientID %>");
//                           if (clickedItem.get_parent().get_text && clickedItem.get_parent().get_text() == "Categorize") {
//                               //The user clicked the item corresponding to the "Calendar" resource to which the appointment is assigned
//                               if (clickedItem.get_imageUrl())
//                                   return;
//                               //Clear all resources
//                               selectedAppointment.get_resources().clear();
//                               //Find the resource corresponding to the clicked item
//                               var calendar = scheduler.get_resources().getResourceByTypeAndKey("Calendar", clickedItem.get_value());
//                               //Add it to the appointment resources collection
//                               selectedAppointment.get_resources().add(calendar);
//                               //Update the appointment
//                               scheduler.updateAppointment(selectedAppointment);
//                           }
//                       }              
           //]]>
 
        </script>
 
 
 
    </telerik:RadScriptBlock>
 
 
 
           <telerik:RadScheduler runat="server" ID="RadScheduler1" Width="748px"            
            Skin="Windows7" DataEndField="End_Time" DataKeyField="Session_ID"
            DataRecurrenceParentKeyField="RecurrenceParentId" DataRecurrenceField="RecurrenceRule"
            DataSourceID="LDS_schedule" DataStartField="Start_Time"
            OnAppointmentDelete="RadScheduler1_AppointmentDelete"
            OnAppointmentInsert="RadScheduler1_AppointmentInsert"
            OnAppointmentUpdate="RadScheduler1_AppointmentUpdate" OnAppointmentDataBound="RadScheduler1_DataBound"
            DataSubjectField="db_Course.Course_Name"    OnClientAppointmentContextMenu="appointmentContextMenu"          
            StartEditingInAdvancedForm="true" StartInsertingInAdvancedForm="false"                                  
            Enabled="false">
 
            <AdvancedForm Modal="true"></AdvancedForm>
                        <TimelineView UserSelectable="false"></TimelineView>
 
            <AppointmentContextMenus>
                <%--The appointment context menu interaction is handled on the client in this example--%>
                <%--See the JavaScript code above--%>
                <telerik:RadSchedulerContextMenu runat="server" ID="SchedulerAppointmentContextMenu">
                    <Items>
                        <telerik:RadMenuItem Text="Open" Value="CommandEdit">
                        </telerik:RadMenuItem>
<%--                        <telerik:RadMenuItem IsSeparator="True">
                        </telerik:RadMenuItem>
                        <telerik:RadMenuItem IsSeparator="True">
                        </telerik:RadMenuItem>--%>
                    </Items>
                </telerik:RadSchedulerContextMenu>
            </AppointmentContextMenus>
        </telerik:RadScheduler>
                                                                    
                <asp:LinqDataSource ID="LDS_schedule" runat="server"
            ContextTypeName="dcLRDBDataContext" EntityTypeName=""
            TableName="db_Training_Sessions"
               Where="Project_ID == @Project_ID">
<%--               Where="Course_ID == @Course_ID && Project_ID == @Project_ID">
--%>
                    <WhereParameters>
                        <asp:QueryStringParameter Name="Course_ID" QueryStringField="CourseID"
                            Type="Int32" />
                        <asp:SessionParameter Name="Project_ID" SessionField="SelectedPID"
                            Type="Int32" />
                    </WhereParameters>
        </asp:LinqDataSource>
 
           </td>
       </tr>
 
       </table>
       </telerik:RadAjaxPanel>
 
       </div>
    
     </div>
     </div>
 
 
</asp:Content>

Code Behind

Imports Telerik.Web.UI
 
Partial Class training_session_create
    Inherits System.Web.UI.Page
    Dim CourseID As Integer
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            'Dim lb_panel As Label
            'lb_panel = CType(Master.FindControl("lb_panel"), Label)
            'lb_panel.Text = "Create Session"
            If Not IsNothing(Request.QueryString("CourseID")) Then
 
                Session.Remove("SessionID")
                Session.Remove("EmpList")
 
                rdl_select_course.SelectedValue = Request.QueryString("CourseID").ToString
 
                rdl_select_course.Enabled = False
                rdl_select_location.Enabled = True
 
                RadScheduler1.AllowDelete = False
                RadScheduler1.AllowEdit = False
                RadScheduler1.AllowInsert = False
 
                'rdl_select_employee.Enabled = False
                'rdl_select_dept.Enabled = False
                'rdl_select_jobtitle.Enabled = False
                'rdl_select_roletype.Enabled = False
 
            End If
 
        End If
    End Sub
    Protected Sub RadScheduler1_AppointmentInsert(ByVal sender As Object, ByVal e As AppointmentInsertEventArgs)
        Dim scheduler As RadScheduler = TryCast(sender, RadScheduler)
        'Dim room As Resource = e.Appointment.Resources.GetResourceByType("Room")
        'Dim roomId As System.Nullable(Of Integer) = If(room IsNot Nothing, CType(room.Key, System.Nullable(Of Integer)), Nothing)
        Dim dc As New dcLRDBDataContext
        Dim SessionID As System.Nullable(Of Short) = 0
        Dim sid As Integer = 0
 
        'Check if there any row/record create
        If IsNothing(HttpContext.Current.Session("SessionID")) Then
            Dim dc1 As New dcLRDBDataContext
            Dim newRecord1 As New db_Training_Session
 
            dc1.db_Training_Sessions.InsertOnSubmit(newRecord1)
            newRecord1.Project_ID = Session("SelectedPID").ToString
            newRecord1.Course_ID = Request.QueryString("CourseID").ToString
            newRecord1.LastUpdateDate = DateTime.Now
            newRecord1.LastUpdateBy = HttpContext.Current.Session("UserID")
            'newRecord1.status = "Temp"
            dc1.SubmitChanges()
            sid = newRecord1.Session_ID
            dc1.Dispose()
            HttpContext.Current.Session("SessionID") = sid
        End If
 
        dc.insertSession(SessionID, HttpContext.Current.Session("SessionID"), Session("SelectedPID").ToString, Request.QueryString("CourseID").ToString, rdl_select_trainer.SelectedValue, rdl_select_location.SelectedValue, "", e.Appointment.Start, e.Appointment.[End], e.Appointment.RecurrenceRule, CType(e.Appointment.RecurrenceParentID, System.Nullable(Of Integer)), DateTime.Now, HttpContext.Current.Session("UserID"))
 
        If SessionID.HasValue Then
            'lb_test.Text = "Inserted Value --> " & Convert.ToString(SessionID)
        Else
            'lb_test.Text = "No Value .."
        End If
 
        RadScheduler1.DataBind()
 
    End Sub
    Protected Sub RadScheduler1_AppointmentUpdate(ByVal sender As Object, ByVal e As AppointmentUpdateEventArgs)
        Dim scheduler As RadScheduler = TryCast(sender, RadScheduler)
        'Dim room As Resource = e.ModifiedAppointment.Resources.GetResourceByType("Room")
        'Dim roomId As System.Nullable(Of Integer) = If(room IsNot Nothing, CType(room.Key, System.Nullable(Of Integer)), Nothing)
        Dim dc As New dcLRDBDataContext
 
        dc.updateSession(Convert.ToInt32(e.Appointment.ID), Session("SelectedPID").ToString, Request.QueryString("CourseID").ToString, rdl_select_trainer.SelectedValue, rdl_select_location.SelectedValue, "Draft", e.ModifiedAppointment.Start, e.ModifiedAppointment.[End], e.ModifiedAppointment.RecurrenceRule, _
        CType(e.ModifiedAppointment.RecurrenceParentID, System.Nullable(Of Integer)), DateTime.Now, HttpContext.Current.Session("UserID"))
        RadScheduler1.DataBind()
 
    End Sub
 
    Protected Sub RadScheduler1_AppointmentDelete(ByVal sender As Object, ByVal e As SchedulerCancelEventArgs)
        Dim scheduler As RadScheduler = TryCast(sender, RadScheduler)
        Dim dc As New dcLRDBDataContext
        Dim appt_id As Integer = 0
        appt_id = Convert.ToInt32(e.Appointment.ID)
 
        Dim i As Integer
 
 
 
        If Not IsNothing(HttpContext.Current.Session("SessionID")) Then
            Dim res = (From a In dc.db_Training_Sessions Where a.Session_ID = appt_id).ToList
            For i = 0 To res.Count - 1
                If res.Item(i).Parent_ID = HttpContext.Current.Session("SessionID").ToString Then
                    dc.deleteSession(Convert.ToInt32(e.Appointment.ID))
                    RadScheduler1.DataBind()
                Else
                    Page.ClientScript.RegisterStartupScript(Page.GetType(), "MessageBox", "alert('You cannot delete time slot belongs to other session.');", True)
                End If
 
            Next
        Else
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "MessageBox", "alert('You cannot delete time slot belongs to other session.');", True)
        End If
 
    End Sub
 
    Protected Sub rtbMenu_ButtonClick(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadToolBarEventArgs) Handles rtbMenu.ButtonClick
 
        If e.Item.Value = "Save" Then
            UpdateValues()
            'Response.Redirect("~/TrainingAdmin/training_session_create.aspx?CourseID=" & Request.QueryString("CourseID"))
            Session.Remove("SessionID")
            Response.Redirect("~/TrainingAdmin/training_session.aspx?CourseID=" & Request.QueryString("CourseID"))
        ElseIf e.Item.Value = "Refresh" Then
            If HttpContext.Current.Session("SessionID") IsNot Nothing Then
                ClearValues()
            End If
            Session.Remove("SessionID")
            If Not IsNothing(Request.QueryString("CourseID")) Then
                Response.Redirect("~/TrainingAdmin/training_session_create.aspx?CourseID=" & Request.QueryString("CourseID"))
            Else
                Response.Redirect("~/TrainingAdmin/training_session_create.aspx")
            End If
        ElseIf e.Item.Value = "Back" Then
            If HttpContext.Current.Session("SessionID") IsNot Nothing Then
                ClearValues()
            End If
            Session.Remove("SessionID")
            Response.Redirect("~/TrainingAdmin/training_session.aspx?CourseID=" & Request.QueryString("CourseID"))
        ElseIf e.Item.Value = "Home" Then
            Session.Remove("SessionID")
            Response.Redirect("~/TrainingAdmin/training_course.aspx")
        End If
    End Sub
 
    Protected Sub rdl_select_course_OnSelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rdl_select_course.SelectedIndexChanged
        If rdl_select_course.SelectedText <> rdl_select_course.DefaultMessage And rdl_select_course.SelectedText <> "" And rdl_select_location.Enabled = False Then
            'rdl_select_location.ClearSelection()
            'rdl_select_location.BorderWidth = "1"
            'rdl_select_location.BorderColor = Drawing.Color.OrangeRed
            rdl_select_location.Enabled = True
        End If
        If rdl_select_course.SelectedText <> "" And rdl_select_location.SelectedText <> "" Then
            CheckValid("Course")
        End If
    End Sub
 
    Protected Sub rdl_select_location_OnSelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rdl_select_location.SelectedIndexChanged
        If rdl_select_location.SelectedText <> rdl_select_location.DefaultMessage And rdl_select_trainer.Enabled = False Then
            'rdl_select_location.BorderWidth = "0"
            'rdl_select_trainer.BorderWidth = "1"
            rdl_select_trainer.Enabled = True
            'rdl_select_trainer.BorderColor = Drawing.Color.OrangeRed
        End If
        CheckValid("Location")
 
    End Sub
 
    Protected Sub rdl_select_trainer_OnSelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rdl_select_trainer.SelectedIndexChanged
        'If rdl_select_trainer.SelectedText <> rdl_select_trainer.DefaultMessage And rdl_select_employee.Enabled = False Then
        If rdl_select_trainer.SelectedText <> rdl_select_trainer.DefaultMessage Then
            'rdl_select_trainer.BorderWidth = "0"
            'rdl_select_employee.BorderWidth = "1"
            'rdl_select_employee.Enabled = True
            'rdl_select_employee.BorderColor = Drawing.Color.OrangeRed
 
            Tb_material_url.Enabled = True
 
            RadScheduler1.Enabled = True
            RadScheduler1.AllowDelete = True
            RadScheduler1.AllowEdit = True
            RadScheduler1.AllowInsert = True
 
            'RadListBoxDestination_Dept.Enabled = True
            'RadListBoxDestination_Employee.Enabled = True
            'RadListBoxDestination_RoleType.Enabled = True
            'RadListBoxDestination_job_title.Enabled = True
            'RadListBoxSource_Dept.Enabled = True
            'RadListBoxSource_Employee.Enabled = True
            'RadListBoxSource_RoleType.Enabled = True
            'RadListBoxSource_job_title.Enabled = True
        End If
    End Sub
 
    'Protected Sub rdl_select_employee_OnSelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rdl_select_employee.SelectedIndexChanged
    '    ''If rdl_select_employee.SelectedText <> rdl_select_employee.DefaultMessage And RadListBoxSource_Employee.Enabled = False And RadListBoxDestination_employee.Enabled = False Then
    '    'If rdl_select_employee.SelectedText <> rdl_select_employee.DefaultMessage Then
    '    '    'rdl_select_employee.BorderWidth = "0"           
    '    '    RadListBoxSource_Employee.Enabled = True
    '    '    RadListBoxSource_RoleType.Enabled = True
    '    '    RadListBoxSource_Dept.Enabled = True
    '    '    RadListBoxDestination_Employee.Enabled = True
    '    '    RadListBoxDestination_Dept.Enabled = True
    '    '    RadListBoxDestination_RoleType.Enabled = True
    '    '    'RadScheduler1.Enabled = True
    '    'End If
 
    '    'If rdl_select_employee.SelectedValue = "Employee" Then
    '    '    'Panel_Employee.Visible = True
    '    '    'Panel_Dept.Visible = False
    '    '    'Panel_RoleType.Visible = False
    '    '    RadListBoxDestination_Employee.DataBind()
    '    '    RadListBoxSource_Employee.DataBind()
    '    'ElseIf rdl_select_employee.SelectedValue = "RoleType" Then
    '    '    'Panel_Employee.Visible = False
    '    '    'Panel_Dept.Visible = False
    '    '    'Panel_RoleType.Visible = True
    '    '    RadListBoxDestination_RoleType.DataBind()
    '    '    RadListBoxSource_RoleType.DataBind()
    '    'ElseIf rdl_select_employee.SelectedValue = "Dept" Then
    '    '    'Panel_Employee.Visible = False
    '    '    'Panel_Dept.Visible = True
    '    '    'Panel_RoleType.Visible = False
    '    '    RadListBoxDestination_Dept.DataBind()
    '    '    RadListBoxSource_Dept.DataBind()
    '    'End If
 
    'End Sub
 
    Protected Sub CheckValid(ByVal ddl As String)
        Dim TID As String = ""
 
        If (ddl = "Location") Or (ddl = "Course") Then
            TID = GetAvailableTrainerIDByLocationIDCourseID(rdl_select_location.SelectedValue, rdl_select_course.SelectedValue)
            HttpContext.Current.Session("AvailableTrainerID") = TID
            If TID <> "" Then
                errmsg_ddl_trainer.Visible = False
                rdl_select_course.BorderWidth = "0"
                rdl_select_location.BorderWidth = "0"
 
                If (ddl = "Course") Then
                    rdl_select_location.ClearSelection()
                    rdl_select_location.SelectedText = rdl_select_trainer.DefaultMessage
                    rdl_select_location.DataBind()
 
                    'RadListBoxSource_Employee.Enabled = True
                    'RadListBoxDestination_Employee.Enabled = True
                    'RadListBoxSource_Dept.Enabled = True
                    'RadListBoxDestination_Dept.Enabled = True
                    'RadListBoxSource_RoleType.Enabled = True
                    'RadListBoxDestination_RoleType.Enabled = True
                    'RadListBoxSource_job_title.Enabled = True
                    'RadListBoxDestination_job_title.Enabled = True
                    RadScheduler1.Enabled = True
 
                End If
 
                rdl_select_trainer.ClearSelection()
                rdl_select_trainer.SelectedText = rdl_select_trainer.DefaultMessage
                rdl_select_trainer.DataBind()
 
                'RadListBoxDestination_Employee.DataBind()
                'RadListBoxSource_Employee.DataBind()
                'RadListBoxDestination_RoleType.DataBind()
                'RadListBoxSource_RoleType.DataBind()
                'RadListBoxDestination_Dept.DataBind()
                'RadListBoxSource_Dept.DataBind()
                'RadListBoxDestination_job_title.DataBind()
                'RadListBoxSource_job_title.DataBind()
 
            Else
                rdl_select_trainer.Enabled = False
                Tb_material_url.Enabled = False
 
                rdl_select_trainer.ClearSelection()
                'rdl_select_employee.BorderWidth = "0"
                rdl_select_course.BorderWidth = "1"
                rdl_select_course.BorderColor = Drawing.Color.OrangeRed
                rdl_select_location.BorderWidth = "1"
                rdl_select_location.BorderColor = Drawing.Color.OrangeRed
                errmsg_ddl_trainer.Visible = True
 
                'rdl_select_employee.ClearSelection()
                'rdl_select_employee.Enabled = False
                'RadListBoxSource_Employee.Enabled = False
                'RadListBoxDestination_Employee.Enabled = False
                'RadListBoxSource_Dept.Enabled = False
                'RadListBoxDestination_Dept.Enabled = False
                'RadListBoxSource_RoleType.Enabled = False
                'RadListBoxDestination_RoleType.Enabled = False
                'RadListBoxSource_job_title.Enabled = False
                'RadListBoxDestination_job_title.Enabled = False
                RadScheduler1.Enabled = False
            End If
        End If
    End Sub
 
    Protected Sub UpdateValues()
 
        'Check if there any row/record create
        Dim SessionID As System.Nullable(Of Short) = 0
        Dim sid As Integer = 0
        If IsNothing(HttpContext.Current.Session("SessionID")) Then
            Dim dc3 As New dcLRDBDataContext
            Dim newRecord3 As New db_Training_Session
 
            dc3.db_Training_Sessions.InsertOnSubmit(newRecord3)
            newRecord3.Project_ID = Session("SelectedPID").ToString
            newRecord3.Course_ID = Request.QueryString("CourseID").ToString
            newRecord3.LastUpdateDate = DateTime.Now
            newRecord3.LastUpdateBy = HttpContext.Current.Session("UserID")
            dc3.SubmitChanges()
            sid = newRecord3.Session_ID
            dc3.Dispose()
            HttpContext.Current.Session("SessionID") = sid
        End If
 
        Dim dc1 As New dcLRDBDataContext
        Dim start_time As System.Nullable(Of DateTime) = Nothing
        Dim end_time As System.Nullable(Of DateTime) = Nothing
        Dim rec1 = (From p In dc1.db_Training_Sessions Where p.Parent_ID = HttpContext.Current.Session("SessionID").ToString Order By p.Start_Time).FirstOrDefault
        If Not rec1 Is Nothing Then
            If Not IsNothing(rec1.Start_Time) Then
                start_time = rec1.Start_Time
            End If
            If Not IsNothing(rec1.End_Time) Then
                end_time = rec1.End_Time
            End If
        End If
 
        Dim dc As New dcLRDBDataContext
        Dim rec = (From p In dc.db_Training_Sessions Where p.Session_ID = HttpContext.Current.Session("SessionID").ToString).FirstOrDefault
        If Not rec Is Nothing Then
            rec.Location_ID = rdl_select_location.SelectedValue
            rec.Trainer_ID = rdl_select_trainer.SelectedValue
            rec.status = "Draft"
            rec.LastUpdateDate = DateTime.Now
            rec.LastUpdateBy = HttpContext.Current.Session("UserID")
            If Tb_material_url.Text <> "" Then
                rec.MaterialURL = Tb_material_url.Text.Trim
            End If
 
            If Not IsNothing(start_time) Then
                rec.Date = start_time
                rec.Start_Time = start_time
            End If
            dc.SubmitChanges()
        End If
 
        Using db As New dcLRDBDataContext
            Dim rec2 = From p In db.db_Training_Sessions Where p.Parent_ID = HttpContext.Current.Session("SessionID").ToString
            For Each p2 In rec2
                p2.Location_ID = rdl_select_location.SelectedValue
                p2.Trainer_ID = rdl_select_trainer.SelectedValue
                p2.status = "Draft"
                If Tb_material_url.Text <> "" Then
                    p2.MaterialURL = Tb_material_url.Text.Trim
                End If
                p2.LastUpdateDate = DateTime.Now
                p2.LastUpdateBy = HttpContext.Current.Session("UserID")
            Next
            db.SubmitChanges()
        End Using
 
        dc.Dispose()
 
        ''Insert list box selected value to db
        Dim dc2 As New dcLRDBDataContext
        Dim i As Integer
 
        For i = 0 To RadListBox_select.Items.Count - 1
            dc2.insertSessionDetails_Employee(Session("SessionID").ToString, RadListBox_select.Items(i).Value.ToString, DateTime.Now, HttpContext.Current.Session("UserID"))
        Next
 
    End Sub
 
    Protected Sub ClearValues()
        Dim dc As New dcLRDBDataContext
        Dim result = (From cs In dc.db_Training_Sessions Where cs.Parent_ID = Session("SessionID").ToString And (cs.status Is Nothing Or cs.status = "") Select cs.Session_ID).ToList
        Dim i As Integer
 
        If Not IsNothing(result) Then
            For i = 0 To result.Count - 1
                dc.deleteSession(result.Item(i).ToString)
            Next
        End If
 
        dc.deleteSession(Session("SessionID").ToString)
 
    End Sub
 
    Protected Sub btnSearch_click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click
        Dim list_employee As String
        Dim list_roletype As String
        Dim list_dept As String
        Dim list_jobtitle As String
 
        Dim rList As String = ""
        Dim emp_list As String = ""
 
        If rdl_select_employee.SelectedText <> rdl_select_employee.DefaultMessage Then
            list_employee = rdl_select_employee.SelectedValue
            rList = GetEmployeeListByListByType(list_employee, "Employee")
        End If
 
        If rList <> String.Empty Then
            emp_list = rList & ","
        End If
 
        If rdl_select_roletype.SelectedText <> rdl_select_roletype.DefaultMessage Then
            list_roletype = rdl_select_roletype.SelectedValue
            rList = GetEmployeeListByListByType(list_roletype, "RoleType")
        End If
 
        If rList <> String.Empty Then
            emp_list += rList & ","
        End If
 
        If rdl_select_dept.SelectedText <> rdl_select_dept.DefaultMessage Then
            list_dept = rdl_select_dept.SelectedValue
            rList = GetEmployeeListByListByType(list_dept, "Dept")
        End If
 
        If rList <> String.Empty Then
            emp_list += rList & ","
        End If
 
        If rdl_select_jobtitle.SelectedText <> rdl_select_jobtitle.DefaultMessage Then
            list_jobtitle = rdl_select_jobtitle.SelectedValue
            rList = GetEmployeeListByListByType(list_jobtitle, "JobTitle")
        End If
 
        If rList <> String.Empty Then
            emp_list += rList
        End If
 
        emp_list = TrimList(emp_list)
 
        Dim eList = Split(emp_list, ",")
        Dim b As New List(Of String)()
        b.AddRange(eList.Distinct())
        b.Sort()
 
        Dim tmp As String = ""
 
        For Each x In b
            tmp += x & ","
        Next
 
        tmp = TrimList(tmp)
 
        HttpContext.Current.Session("EmpList") = tmp
        RadListBox_unselect.DataBind()
 
    End Sub
 
    Protected Sub RadScheduler1_DataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.SchedulerEventArgs)
        If Not e.Appointment.ID Is Nothing Then
            'Same Course
            If GetCourseIDBySessionID(e.Appointment.ID).ToString = Request.QueryString("CourseID").ToString Then
 
                e.Appointment.BackColor = Drawing.Color.LightBlue
 
            Else    'Another course
                e.Appointment.BackColor = Drawing.Color.YellowGreen
            End If
 
            e.Appointment.AllowDelete = False
            e.Appointment.AllowEdit = False
 
            If Not IsNothing(HttpContext.Current.Session("SessionID")) Then
                If e.Appointment.ID.ToString = HttpContext.Current.Session("SessionID").ToString Then
                    e.Appointment.AllowDelete = True
                    e.Appointment.AllowEdit = True
                End If
            End If
 
        End If
 
    End Sub
End Class
0
Shinu
Top achievements
Rank 2
answered on 25 Jun 2013, 12:25 PM
Hi Joe,

Unfortunately I couldn't replicate the issue and your code is working fine at my end.

Thanks,
Shinu.
Tags
ListBox
Asked by
Joe
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Joe
Top achievements
Rank 1
Share this question
or