Quantcast
Channel: Telerik Forums RSS
Viewing all 78072 articles
Browse latest View live

Grid questions

$
0
0

Hi,

I appreciate it's still under development so maybe what I ask is unavailable, but I have a couple of questions about the grid:

 

1. If I have a lot of columns can I set the size of the columns and have the grid display a horizontal scrollbar.

2. I'm having trouble getting sorting working with templated columns:

It doesn't seem to work at all when I just set the Items and when using the ReadItems method, which is ultimately what I want to do the sort descriptor is passed in but the sort descriptor member field is empty (the sort direction does contain a value). Do I need to set something on the column template as a sort value or something?

Thanks,
Nick


Download Free Movies

$
0
0

best movie downloading site :

https://www.world4movies.ml/

Grid questions

$
0
0
Also how do I set the sorted columns initially?

Tests shown as "Not Run" with remote execution

$
0
0

Hi Elena,

sorry for the late response. We have been experimenting a little bit.

Changing all coded steps and removing all "Pages" references helped. Our tests are now running on remote machine.

Thanks for your help,

Aleksandar

 

P.S. we have noticed something. If we tried to run the list and execution failed due to "Pages" reference and we remove the trouble causing test from the list when we tried to execute the list again we were not able to. Because it looks like TS keeps the older build or references somehow. We had to refactor the said test, make a successful run including that test and then remove it. Only after that we were able to execute the list without that test and without errors regarding that test.

Expand and Collapsing of rows

$
0
0

Hi,

Could you please send the code again as it is not attached in the reply. 

Currently I use the PivotChartViewModel_Completed event to set the expanded state but there are times when this event is not fired, especially after we load the RadPivotFieldList(it is placed in a docked RadPane). 

The DataProviderStatusChanged event is not working for us.

 

Please provide a recourse.

Regards,

Swapnil

Exception using access text to go to the backstage

$
0
0
Hi Jennifer,

Thank you for the provided additional information. 

I manage to reproduce this exception, therefore I have logged it in our Feedback Portal where you can track its progress. I am happy to inform you that our development team is currently investigating this exception. You should expect a fix in one of our next LIB. The feedback item will be updated with the version in which it will be available.

I have updated your Telerik Points for bringing this behavior to our attention.

Regards,
Dinko
Progress Telerik
Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers.Learn More.

RadAsyncUpload hide file name untill uploading

$
0
0
Hi,

Indeed, the class of the progress bar is called .ruFileProgressWrap so if you'd like to hide the progress bar you can do it by setting:

.ruFileProgressWrap { display: none } or .ruFileProgressWrap { visibility: hidden; } 



Regards,
Rumen
Progress Telerik
Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers.Learn More.

TableBodyComponent.html - Changed after checked

$
0
0
Hi Ron,

There are multiple conditions related to whether a detail row needs to be displayed, whether a master-grid row is expanded, etc., for example related to the conditional display of the detail template:

https://www.telerik.com/kendo-angular-ui/components/grid/advanced-features/detail-template/#toc-conditional-display

To gain a better understanding of the inner logic and mechanics of the various Grid functionalities and rendering logic, you can obtain the whole Grid source code, and inspect it as described in the following section of our documentation:

https://www.telerik.com/kendo-angular-ui/components/installation/source-code/

For example, this is the whole code for the TableBodyComponent:

import { Component, Input, SimpleChange, NgZone, Renderer2, ElementRef, OnInit, OnDestroy } from '@angular/core';
import { GroupDescriptor } from '@progress/kendo-data-query';
import { ColumnBase } from '../columns/column-base';
import { DetailTemplateDirective } from './details/detail-template.directive';
import { DetailsService } from './details/details.service';
import { GroupsService } from '../grouping/groups.service';
import { GroupItem, Item, GroupFooterItem } from '../data/data.iterators';
import { ChangeNotificationService } from '../data/change-notification.service';
import { isChanged, isPresent } from '../utils';
import { NoRecordsTemplateDirective } from './no-records-template.directive';
import { EditService } from '../editing/edit.service';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { RowClassFn } from './common/row-class';
import { SelectableSettings } from '../selection/selectable-settings';
import { columnsToRender, columnsSpan } from "../columns/column-common";
import { closest, closestInScope, hasClasses, isFocusable, matchesClasses, matchesNodeName } from './common/dom-queries';
import { DomEventsService } from '../common/dom-events.service';
import { SelectionService } from "../selection/selection.service";
import { ColumnInfoService } from "../common/column-info.service";
import { FilterableSettings, hasFilterRow } from '../filtering/filterable';
import { CellKeydownEvent } from '../navigation/cell-keydown-event';
import { Subscription } from 'rxjs/Subscription';
import { NavigationService } from '../navigation/navigation.service';
import { Keys } from '../common/keys';
 
const NON_DATA_CELL_CLASSES = 'k-hierarchy-cell k-detail-cell k-group-cell';
const NON_DATA_ROW_CLASSES = 'k-grouping-row k-group-footer k-detail-row k-grid-norecords';
const IGNORE_TARGET_CLASSSES = 'k-icon';
const IGNORE_CONTAINER_CLASSES = 'k-widget k-grid-ignore-click';
 
const columnCellIndex = (cell, cells) => {
    let cellIndex = 0;
    for (let idx = 0; idx < cells.length; idx++) {
        if (cells[idx] === cell) {
            return cellIndex;
        }
 
        if (!hasClasses(cells[idx], 'k-hierarchy-cell k-group-cell')) {
            cellIndex++;
        }
    }
};
 
 
/**
 * @hidden
 */
@Component({
    selector: '[kendoGridTableBody]', // tslint:disable-line:component-selector
    template: `
    <ng-template [ngIf]="editService.hasNewItem">
        <tr class="k-grid-add-row k-grid-edit-row"
            kendoGridLogicalRow
                [logicalRowIndex]="addRowLogicalIndex()"
                [logicalSlaveRow]="lockedColumnsCount > 0"
                [logicalCellsCount]="columns.length"
                [logicalSlaveCellsCount]="unlockedColumnsCount">
            <ng-template [ngIf]="!skipGroupDecoration">
                <td [class.k-group-cell]="true" *ngFor="let g of groups" role="presentation"></td>
            </ng-template>
            <td [class.k-hierarchy-cell]="true"
                *ngIf="detailTemplate?.templateRef"
                kendoGridLogicalCell
                    [logicalRowIndex]="addRowLogicalIndex()"
                    [logicalColIndex]="0"
                    aria-selected="false"
                >
            </td>
            <td *ngFor="let column of columns; let columnIndex = index"
                kendoGridCell
                    [rowIndex]="-1"
                    [columnIndex]="lockedColumnsCount + columnIndex"
                    [isNew]="true"
                    [column]="column"
                    [dataItem]="newDataItem"
                [ngClass]="column.cssClass"
                [ngStyle]="column.style"
                [attr.colspan]="column.colspan"
                kendoGridLogicalCell
                    [logicalRowIndex]="addRowLogicalIndex()"
                    [logicalColIndex]="logicalColIndex(columnIndex)"
                    [colSpan]="column.colspan"
                role="gridcell">
            </td>
        </tr>
    </ng-template>
    <tr *ngIf="data?.length === 0 || data == null" class="k-grid-norecords">
        <td [attr.colspan]="colSpan">
            <ng-template
                [ngIf]="noRecordsTemplate?.templateRef"
                [templateContext]="{
                    templateRef: noRecordsTemplate?.templateRef
                 }">
            </ng-template>
            <ng-container *ngIf="!noRecordsTemplate?.templateRef">
                {{noRecordsText}}
            </ng-container>
        </td>
    </tr>
    <ng-template ngFor
        [ngForOf]="data"
        [ngForTrackBy]="trackByFn"
        let-item
        let-rowIndex="index">
        <tr *ngIf="isGroup(item) && isParentGroupExpanded(item) && showGroupHeader(item)"
            kendoGridGroupHeader
                [columns]="columns"
                [groups]="groups"
                [item]="item"
                [hasDetails]="detailTemplate?.templateRef"
                [skipGroupDecoration]="skipGroupDecoration"
                [rowIndex]="rowIndex + 1"
                [totalColumnsCount]="totalColumnsCount"
            kendoGridLogicalRow
                [logicalRowIndex]="logicalRowIndex(rowIndex)"
                [logicalSlaveRow]="lockedColumnsCount > 0"
                [logicalCellsCount]="columns.length"
                [logicalSlaveCellsCount]="unlockedColumnsCount">
        </tr>
        <tr
            *ngIf="isDataItem(item) && isInExpandedGroup(item)"
            kendoGridLogicalRow
                [dataRowIndex]="item.index"
                [dataItem]="item.data"
                [logicalRowIndex]="logicalRowIndex(rowIndex)"
                [logicalSlaveRow]="lockedColumnsCount > 0"
                [logicalCellsCount]="columns.length"
                [logicalSlaveCellsCount]="unlockedColumnsCount"
            [ngClass]="rowClass({ dataItem: item.data, index: item.index })"
            [class.k-alt]="isOdd(item)"
            [class.k-master-row]="detailTemplate?.templateRef"
            [class.k-grid-edit-row]="editService.hasEdited(item.index)"
            [attr.data-kendo-grid-item-index]="item.index"
            [class.k-state-selected]="isSelectable() && isRowSelected(item)">
            <ng-template [ngIf]="!skipGroupDecoration">
                <td [class.k-group-cell]="true" *ngFor="let g of groups" role="presentation"></td>
            </ng-template>
            <td [class.k-hierarchy-cell]="true"
                *ngIf="detailTemplate?.templateRef"
                kendoGridLogicalCell
                    [logicalRowIndex]="logicalRowIndex(rowIndex)"
                    [logicalColIndex]="0"
                    [dataRowIndex]="item.index"
                    [dataItem]="item.data"
                    [detailExpandCell]="true"
                    aria-selected="false"
                >
                <a class="k-icon"
                    *ngIf="detailTemplate.showIf(item.data, item.index)"
                    [ngClass]="detailButtonStyles(item.index)"
                    href="#" tabindex="-1" (click)="toggleRow(item.index, item.data)"></a>
            </td>
            <td
                kendoGridCell
                    [rowIndex]="item.index"
                    [columnIndex]="lockedColumnsCount + columnIndex"
                    [column]="column"
                    [dataItem]="item.data"
                kendoGridLogicalCell
                    [logicalRowIndex]="logicalRowIndex(rowIndex)"
                    [logicalColIndex]="logicalColIndex(columnIndex)"
                    [dataRowIndex]="item.index"
                    [dataItem]="item.data"
                    [colIndex]="columnIndex"
                    [colSpan]="column.colspan"
                    role="gridcell" aria-selected="false"
                [ngClass]="column.cssClass"
                [class.k-grid-edit-cell]="editService.isEditedColumn(item.index, column)"
                [ngStyle]="column.style"
                [attr.colspan]="column.colspan"
                *ngFor="let column of columns; let columnIndex = index">
            </td>
        </tr>
        <tr *ngIf="isDataItem(item) && isInExpandedGroup(item) && detailTemplate?.templateRef &&
            detailTemplate.showIf(item.data, item.index) && isExpanded(item.index)"
            [class.k-detail-row]="true"
            [class.k-alt]="isOdd(item)"
            kendoGridLogicalRow
                [dataRowIndex]="item.index"
                [dataItem]="item.data"
                [logicalRowIndex]="logicalRowIndex(rowIndex) + 1"
                [logicalSlaveRow]="false"
                [logicalCellsCount]="1"
            >
            <td [class.k-group-cell]="true" *ngFor="let g of groups"></td>
            <td [class.k-hierarchy-cell]="true"></td>
            <td [class.k-detail-cell]="true"
                [attr.colspan]="columnsSpan"
                kendoGridLogicalCell
                    [logicalRowIndex]="logicalRowIndex(rowIndex) + 1"
                    [logicalColIndex]="0"
                    [dataRowIndex]="item.index"
                    [dataItem]="item.data"
                    [colIndex]="0"
                    [colSpan]="totalColumnsCount - 1"
                    role="gridcell" aria-selected="false"
                >
                <ng-template
                    [templateContext]="{
                        templateRef: detailTemplate?.templateRef,
                        dataItem: item.data,
                        rowIndex: item.index,
                        $implicit: item.data
                        }">
                </ng-template>
            </td>
        </tr>
        <tr *ngIf="isFooter(item) && (isInExpandedGroup(item) || (showGroupFooters && isParentGroupExpanded(item)))
            && !item.data.hideFooter"
            [class.k-group-footer]="true"
            kendoGridLogicalRow
                [logicalRowIndex]="logicalRowIndex(rowIndex)"
                [logicalSlaveRow]="lockedColumnsCount > 0"
                [logicalCellsCount]="columns.length"
                [logicalSlaveCellsCount]="unlockedColumnsCount">
            <ng-template [ngIf]="!skipGroupDecoration">
                <td [class.k-group-cell]="true" *ngFor="let g of groups"></td>
            </ng-template>
            <td [class.k-hierarchy-cell]="true"
                *ngIf="detailTemplate?.templateRef"
                kendoGridLogicalCell
                    [logicalRowIndex]="logicalRowIndex(rowIndex)"
                    [logicalColIndex]="0"
                    aria-selected="false"
                >
            </td>
            <td kendoGridLogicalCell
                    [logicalRowIndex]="logicalRowIndex(rowIndex)"
                    [logicalColIndex]="logicalColIndex(columnIndex)"
                [attr.data-skip]="skipGroupDecoration"
                *ngFor="let column of footerColumns; let columnIndex = index">
                <ng-template
                    [templateContext]="{
                        templateRef: column.groupFooterTemplateRef,
                        group: item.data,
                        field: column.field,
                        column: column,
                        $implicit: item.data?.aggregates
                        }">
                </ng-template>
           </td>
        </tr>
    </ng-template>
    `
})
export class TableBodyComponent implements OnInit, OnDestroy {
    @Input() public columns: Array<ColumnBase> = [];
    @Input() public groups: Array<GroupDescriptor> = [];
    @Input() public detailTemplate: DetailTemplateDirective;
    @Input() public noRecordsTemplate: NoRecordsTemplateDirective;
    @Input() public data: Array<GroupItem | Item | GroupFooterItem>;
    @Input() public skip: number = 0;
    @Input() public selectable: SelectableSettings | boolean;
    @Input() public filterable: FilterableSettings;
    @Input() public noRecordsText: string = this.localization.get('noRecords');
 
    @Input() public skipGroupDecoration: boolean = false;
    @Input() public showGroupFooters: boolean = false;
    @Input() public lockedColumnsCount: number = 0;
    @Input() public totalColumnsCount: number = 0;
 
    private clickSubscription: Function;
    private cellKeydownSubscription: Subscription;
    private clickTimeout: any;
 
    @Input() public rowClass: RowClassFn = () => null;
 
    constructor(
        public detailsService: DetailsService,
        public groupsService: GroupsService,
        private changeNotification: ChangeNotificationService,
        public editService: EditService,
        private localization: LocalizationService,
        private ngZone: NgZone,
        private renderer: Renderer2,
        private element: ElementRef,
        private domEvents: DomEventsService,
        public selectionService: SelectionService,
        private columnInfoService: ColumnInfoService,
        private navigationService: NavigationService
    ) {
        this.cellKeydownSubscription = this.navigationService.cellKeydown.subscribe((args) => this.cellKeydownHandler(args));
    }
 
    public get newDataItem(): any {
        return this.editService.newDataItem;
    }
 
    // Number of unlocked columns in the next table, if any
    public get unlockedColumnsCount(): number {
        return this.totalColumnsCount - this.lockedColumnsCount - this.columns.length;
    }
 
    public toggleRow(index: number, dataItem: any): boolean {
        this.detailsService.toggleRow(index, dataItem);
        return false;
    }
 
    public trackByFn = (index: number, item: any): any => {
        if (item.type === 'data' && this.editService.hasEdited(item.index)) {
            return item.data;
        }
        return index;
    }
 
    public isExpanded(index: number): boolean {
        return this.detailsService.isExpanded(index);
    }
 
    public detailButtonStyles(index: number): any {
        const expanded = this.isExpanded(index);
        return expanded ? 'k-minus' : 'k-plus';
    }
 
    public isGroup(item: Item | GroupItem): boolean {
        return item.type === 'group';
    }
 
    public isDataItem(item: Item | GroupItem): boolean {
        return !this.isGroup(item) && !this.isFooter(item);
    }
 
    public isFooter(item: Item | GroupItem | GroupFooterItem): boolean {
        return item.type === 'footer';
    }
 
    public isInExpandedGroup(item: Item): boolean {
        return this.groupsService.isInExpandedGroup(item.groupIndex, false);
    }
 
    public isParentGroupExpanded(item: any): boolean {
        return this.groupsService.isInExpandedGroup(item.index || item.groupIndex);
    }
 
    public isOdd(item: any): boolean {
        return item.index % 2 !== 0;
    }
 
    public isSelectable(): boolean {
        return this.selectable && (<SelectableSettings>this.selectable).enabled !== false;
    }
 
    public isRowSelected(item: any): boolean {
        return this.selectionService.isSelected(item.index);
    }
 
    public ngOnChanges(changes: { [propertyName: string]: SimpleChange }): void {
        if (isChanged("columns", changes, false)) {
            this.changeNotification.notify();
        }
    }
 
    public logicalRowIndex(rowIndex: number): number {
        let pos = this.skip + rowIndex;
        if (this.hasDetailTemplate) {
            pos *= 2;
        }
 
        const absoluteRowIndex = 1 + pos;
        const addRowOffset = this.editService.hasNewItem ? 1 : 0;
        const filterRowOffset = hasFilterRow(this.filterable) ? 1 : 0;
        const headerRowCount = this.columnInfoService.totalLevels + filterRowOffset + addRowOffset;
 
        return absoluteRowIndex + headerRowCount;
    }
 
    public addRowLogicalIndex(): number {
        return this.columnInfoService.totalLevels + 1;
    }
 
    public logicalColIndex(colIndex: number): number {
        return this.lockedColumnsCount + colIndex + (this.hasDetailTemplate ? 1 : 0);
    }
 
    public ngOnInit(): void {
        this.ngZone.runOutsideAngular(() => {
            const clickHandler = this.clickHandler.bind(this);
            const mousedownSubscription = this.renderer.listen(this.element.nativeElement, 'mousedown', clickHandler);
            const clickSubscription = this.renderer.listen(this.element.nativeElement, 'click', clickHandler);
            const contextmenuSubscription = this.renderer.listen(this.element.nativeElement, 'contextmenu', clickHandler);
 
            this.clickSubscription = () => {
                mousedownSubscription();
                clickSubscription();
                contextmenuSubscription();
            };
        });
 
        let originalNoRecordText = this.localization.get('noRecords');
 
        this.localization.changes.subscribe(() => {
            if (this.noRecordsText === originalNoRecordText) {
                this.noRecordsText = this.localization.get('noRecords');
                originalNoRecordText = this.noRecordsText;
            }
        });
    }
 
    public ngOnDestroy(): void {
        if (this.clickSubscription) {
            this.clickSubscription();
        }
 
        this.cellKeydownSubscription.unsubscribe();
 
        clearTimeout(this.clickTimeout);
    }
 
    public get columnsSpan(): number {
        return columnsSpan(this.columns);
    }
 
    public get colSpan(): number {
        return this.columnsSpan + this.groups.length + (this.hasDetailTemplate ? 1 : 0);
    }
 
    public get footerColumns(): ColumnBase[] {
        return columnsToRender(this.columns);
    }
 
    public showGroupHeader(item: any): boolean {
        return !item.data.skipHeader;
    }
 
    private get hasDetailTemplate(): boolean {
        return isPresent(this.detailTemplate);
    }
 
    private clickHandler(eventArg: any): void {
        const target = eventArg.target;
        const cell = closest(target, matchesNodeName('td'));
        const row = closest(cell, matchesNodeName('tr'));
        const body = closest(row, matchesNodeName('tbody'));
 
        if (cell && !hasClasses(cell, NON_DATA_CELL_CLASSES) &&
            !hasClasses(row, NON_DATA_ROW_CLASSES) &&
            body === this.element.nativeElement) {
 
            this.editService.preventCellClose();
 
            const focusable = target !== cell && isFocusable(target, false);
            if (!focusable && !matchesNodeName('label')(target) && !hasClasses(target, IGNORE_TARGET_CLASSSES) &&
                !closestInScope(target, matchesClasses(IGNORE_CONTAINER_CLASSES), cell)) {
                const args = this.cellClickArgs(cell, row, eventArg);
 
                if (eventArg.type === 'mousedown') {
                    this.domEvents.cellMousedown.emit(args);
                } else {
                    if (args.isEditedColumn || !this.editService.closeCell(eventArg)) {
                        if (eventArg.type === 'click') {
                            this.clickTimeout = setTimeout(() => {
                                this.emitCellClick(args);
                            }, 0);
                        } else {
                            this.emitCellClick(args);
                        }
 
                    }
                }
            }
        }
    }
 
    private emitCellClick(args: any): void {
        this.domEvents.cellClick.emit(Object.assign(args, {
            isEdited: args.isEditedRow || args.isEditedColumn
        }));
    }
 
    private cellKeydownHandler(args: CellKeydownEvent): void {
        const body = closest(args.rowElement, matchesNodeName('tbody'));
        if (body !== this.element.nativeElement) {
            return;
        }
 
        if (args.keyCode === Keys.enter) {
            const clickArgs = this.cellClickArgs(args.cellElement, args.rowElement, args.originalEvent);
            this.domEvents.cellClick.emit(clickArgs);
        }
    }
 
    private cellClickArgs(cell: any, row: any, eventArg: any): any {
        const index = columnCellIndex(cell, row.cells);
        const column = (this.columns as any).toArray()[index];
        const columnIndex = this.lockedColumnsCount + index;
        let rowIndex = row.getAttribute('data-kendo-grid-item-index');
        rowIndex = rowIndex ? parseInt(rowIndex, 10) : -1;
 
        const dataItem = rowIndex === -1 ? this.editService.newDataItem : (this.data as any).at(rowIndex - this.skip);
        const isEditedColumn = this.editService.isEditedColumn(rowIndex, column);
        const isEditedRow = this.editService.isEdited(rowIndex);
 
        return {
            column: column,
            columnIndex: columnIndex,
            dataItem: dataItem,
            isEditedColumn: isEditedColumn,
            isEditedRow: isEditedRow,
            originalEvent: eventArg,
            rowIndex: rowIndex,
            type: eventArg.type
        };
    }
}

I am afraid the provided information is not enough for us to determine what exactly is triggering the described error, but if you send us an isolated runnable project (or a Stackblitz example, similar to our online demos) where the described error can be observed, we will investigate it further, and try to determine what is causing and suggest a solution. Thank you in advance.

Regards,
Dimiter Topalov
Progress Telerik
Get quickly onboarded and successful with your Telerik and Kendo UI products with the Virtual Classroom free technical training, available to all active customers.Learn More.

Grid questions

$
0
0
Hi Nick,

To each question:

  • If I have a lot of columns can I set the size of the columns and have the grid display a horizontal scrollbar. - this can be achieved by having a lot of columns, but the grid container having limited width. With this, the entire grid would be scrolled in its container. For later releases (hopefully, R1 2020), we intend to have scrolling options as a feature in the grid. For the time being, I must note there is a bug in this scenario, you can see here for a sample of such a scrollbar, the bug, and its workaround.
  • I'm having trouble getting sorting working with templated columns - as long as their Field is in the main grid model, this should work, and I suggest you compare against the demo we have which works as expected: https://demos.telerik.com/blazor-ui/grid/sorting.
    Perhaps you should also check the following page for a similar case that the grid cannot handle: https://feedback.telerik.com/blazor/1408650-column-sorting-breaks-under-subclassing-scenarios.
    When an OnRead handler is attached, however, the grid will no longer sort, filter or page the data, as described here, so you will need to extract that information form the DataSourceRequest field of the event arguments. I'm attaching below a small example that works fine for me and extracts the sort status so you can use it as a reference.
  • how do I set the sorted columns initially - I would encourage you to post a feature request for this feature in the feedback portal through the "Request a Feature" button. Just make sure to select the "make public" checkbox at the final step. This will let you explain your goals, requirements, even perhaps add a sample of what API and functionality you would expect it exposes. You can then Vote for it and Follow it to get updates on status changes. If it gets good traction with the community, we will consider its implementation. In this case, perhaps a property on the BoundColumn like "InitialSort" or something like that may be viable.

Regards,
Marin Bratanov
Progress Telerik UI for Blazor

Language selection in Rad Spellchecker

$
0
0
Hi Petros,

Do you use RadEditor in SharePoint or this is a standard ASP.NET Web Forms application?

The steps you find provided in this thread applies for SharePoint.

The steps for a normal app are provided at https://docs.telerik.com/devtools/aspnet-ajax/controls/editor/functionality/spellchecker/overview, e.g.

<telerik:RadEditor RenderMode="Lightweight" runat="server" ID="RadEditor1">
    <SpellCheckSettings SpellCheckProvider="EditDistanceProvider" DictionaryLanguage="el-GR" />
    <Content>κάποοιο λάάθος κείμενκο</Content>
</telerik:RadEditor>

or if you need a spellcheck dropdown:

<telerik:RadEditor RenderMode="Lightweight" runat="server" ID="RadEditor1">
    <SpellCheckSettings SpellCheckProvider="EditDistanceProvider" />
    <Languages>
        <telerik:SpellCheckerLanguage Code="en-US" Title="English" />
        <telerik:SpellCheckerLanguage Code="el-GR" Title="Greek" />
    </Languages>
    <Content>κάποοιο λάάθος κείμενκο</Content>
</telerik:RadEditor>

where the dictionaries should be placed in the App_Data/RadSpell folder in the root of the app as shown in the attached screenshot I made for you.


Best Regards,
Rumen
Progress Telerik
 
Learn how the Telerik controls can be integrated in SharePoint 2007/2010 from this resource. To watch them in action, explore our online SharePoint 2010 and SharePoint 2007 demo sites.

Inline edit mode: Add command button does nothing

Language selection in Rad Spellchecker

$
0
0
I use SharPoint radeditor and I am in the Edit form of a custom list/doc library

Language selection in Rad Spellchecker

$
0
0
Thank you for the additional information, Petros.

Can you please send the whole error message that you get along with a screenshot?

What is sure is that the SpellCheckProvider should be set to EditDistanceProvider in the ConfigFile.xml file:

 \Program Files\Common Files\Microsoft Shared\Web Server Extensions\wpresources\RadEditorSharePoint\x.x.x.x__1f131a624888eeed\Resources\ConfigFile.xml file:

<property name="SpellCheckProvider">EditDistanceProvider</property>

where x.x.x.x is the version of RadEditorSharePoint installed on your server.

You also need to copy the make sure that the en-US.tdf and el-GR files in the following folder:

\Program Files\Common Files\Microsoft Shared\web server extensions\wpresources\RadEditorSharePoint\x.x.x.x__xxxxxxxxxxxxxxx\RadControls\Spell\TDF 

and also configure the SpellChecker to use these languages in the ToolsFile.xml and ListToolsFile.xml files of RadEditor. Both files are located in the following folder: 
\Program Files\Common Files\Microsoft Shared\web server extensions\wpresources\RadEditorSharePoint\x.x.x.x__xxxxxxxxxxxxxxx\RadControls\Editor

You need to add the multi-language definition, along with the languages you need to appear in the dropdown:

  <languages>
    <language code="en-US" title="English"></language>
    <language code="el-GR" title="Greek"></language>
  </languages>
 


Regards,
Rumen
Progress Telerik
 
Learn how the Telerik controls can be integrated in SharePoint 2007/2010 from this resource. To watch them in action, explore our online SharePoint 2010 and SharePoint 2007 demo sites.

Changing NewRow default text

$
0
0
Hello Alex,

Thank you for your feedback.

I've taken the liberty of creating a new feature request in our feedback portal on your behalf regarding such a property. If this item accumulates enough votes, we will consider implementing it in a future release. You can follow the item to get notified about any changes in its status.

I do hope you find the suggestion proposed by my colleague earlier applicable for the time being.

If I can further assist you in any way, please let me know.

Regards,
Dilyan Traykov
Progress Telerik
Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers.Learn More.

Loading indicator during local computation

$
0
0
Hello Kristiyan,

When there are time-consuming synchronous operations that are blocking the main thread, the suggested approach is to make them asynchronous (for example via calling the time-consuming operation in a setTimeout).

This way a loading indicator can be displayed before starting the time-consuming operation, and hidden synchronously after the operation is complete (in the body of the setTimeout callback, right after calling the time-consuming operation).

Here is a runnable sample demonstrating the suggested approach:

https://stackblitz.com/edit/angular-3viu72?file=app/app.component.ts

I hope this helps.

Regards,
Dimiter Topalov
Progress Telerik
Get quickly onboarded and successful with your Telerik and Kendo UI products with the Virtual Classroom free technical training, available to all active customers.Learn More.

Running against parallel tests

$
0
0
I wonder how one might set up fiddler core to be able to handle tests running a parallel. I saw a similar post but no resolution to it.

My first thought was that I could get my test to add a custom header to each request using a guid for example which means each test would get a unique header.

But in the BeforeRequest delegate how would I check that the proxySession has the header that matches that of the test?

I can read the headers in proxySession but I have no way of passing this header in from the test as this delegate is called from an event. 

A few questions about exporting RadGridView to Excel?

$
0
0
Ups, my mistake, I was looking for asp.net! Sorry!

Expand and Collapsing of rows

$
0
0
Hi Swapnil,

I'm reattaching the project my colleague Polya set up for your reference.

Could you please have a look and let us know if the proposed approach would work for your specific scenario?

I will be looking forward to your reply.

Regards,
Dilyan Traykov
Progress Telerik
Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers.Learn More.

Not able exporting the RadEditor content with images into msword file using c#

$
0
0
Hi Narender,

Are you able to reproduce the problem in the following demo: https://demos.telerik.com/aspnet-ajax/editor/examples/import-export/docx-import-export/defaultcs.aspx? Can you also provide the rich text HTML content you'd like to export so that I can examine and test it on my end?

For your convenience I have attached a simple runnable project which exports properly the content with a table, images and text.

Regards,
Rumen
Progress Telerik
Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers.Learn More.

Changing NewRow default text

$
0
0

Thank you for creating the feature request for me. 

For the time being, I've actually used a different approach from another thread on this forum. 

Viewing all 78072 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>