Telerik Forums
UI for ASP.NET MVC Forum
5 answers
270 views
hi all,
Actually this is related to telerik mvc extension grid.In my telerik grid i have an search text box.i write something in text box and press enter,fire a java script function,from the function i call...ajaxrequest function of grid to rebind the grid for the search.That the simple process.
ok.suppose i am in last page in grid.then i write something in the search textbox and press enter,the search is ok.but the paging is not in correct position.i need to go to the first page in this situation...keypresss enter event is bellow

function ListSearch(keyCode, gridObj)
{
    window.CurrentList = gridObj;
    var id = '#' + $(gridObj).attr('id');
    var searchTxt = $(id + " .watermark-list-search").val();
    var searchList = $(id + " .watermark-list-search").attr('listtype');
    var filterid = $(id + " .watermark-list-search").attr('filterid');

    window.CurrentList.data("tGrid").ajaxRequest({ Name: searchTxt, Data: searchList, id: filterid });
}

i modified the code to include page in ajaxrequest like

window.CurrentList.data("tGrid").ajaxRequest({ Name: searchTxt, Data: searchList, id: filterid,page:1 });


it works i.e getting correct data from database but the current page is wrong and showing wrong status '31 to 60 out of 120 ' instead of '1 to 30 out of 20'

what is the process to make it correct?please let me know
Stefan
Telerik team
 answered on 05 Jun 2017
3 answers
205 views

Hello,
I try to implement dynamic change of series in chart by javascript, but they just disappear.

Build chart ASP.NET MVC Razor:

<div id="chartWrapper"><br>                    @{<br>                        var x = new List<object>();<br>                        x.Add(new { Dt = DateTime.Parse("2017-01-01 01:00:00.000"), Value = 1 });<br>                        x.Add(new { Dt = DateTime.Parse("2017-01-01 02:00:00.000"), Value = 3 });<br>                        x.Add(new { Dt = DateTime.Parse("2017-01-01 03:00:00.000"), Value = 2 });<br>                        x.Add(new { Dt = DateTime.Parse("2017-01-01 04:00:00.000"), Value = 1 });<br>                        var y = new List<object>();<br>                        y.Add(new { Dt = DateTime.Parse("2017-01-01 01:00:00.000"), Value = 0 });<br>                        y.Add(new { Dt = DateTime.Parse("2017-01-01 02:00:00.000"), Value = 3 });<br>                        y.Add(new { Dt = DateTime.Parse("2017-01-01 02:10:00.000"), Value = 1 });<br>                        y.Add(new { Dt = DateTime.Parse("2017-01-01 02:20:00.000"), Value = 3 });<br>                        y.Add(new { Dt = DateTime.Parse("2017-01-01 02:30:00.000"), Value = 2 });<br>                        y.Add(new { Dt = DateTime.Parse("2017-01-01 03:00:00.000"), Value = 3 });<br>                        y.Add(new { Dt = DateTime.Parse("2017-01-01 04:00:00.000"), Value = 1 });<br>                        var z = new List<object>();<br>                        z.Add(new { Dt = DateTime.Parse("2017-01-01 01:00:00.000"), Value = 6 });<br>                        z.Add(new { Dt = DateTime.Parse("2017-01-01 02:00:00.000"), Value = 1 });<br>                        z.Add(new { Dt = DateTime.Parse("2017-01-01 02:05:00.000"), Value = 2 });<br>                        z.Add(new { Dt = DateTime.Parse("2017-01-01 02:10:00.000"), Value = 3 });<br>                        z.Add(new { Dt = DateTime.Parse("2017-01-01 02:15:00.000"), Value = 4 });<br>                        z.Add(new { Dt = DateTime.Parse("2017-01-01 02:20:00.000"), Value = 5 });<br>                        z.Add(new { Dt = DateTime.Parse("2017-01-01 02:25:00.000"), Value = 4 });<br>                        z.Add(new { Dt = DateTime.Parse("2017-01-01 02:30:00.000"), Value = 3 });<br>                        z.Add(new { Dt = DateTime.Parse("2017-01-01 03:00:00.000"), Value = 2 });<br>                        z.Add(new { Dt = DateTime.Parse("2017-01-01 04:00:00.000"), Value = 1 });<br>                    }<br>                    <div class="demo-section k-content wide"><br>                        @(Html.Kendo().Chart()<br>                      .Name("chartTest")<br>                      .HtmlAttributes(new { style = "height: 550px; width: 700px; z-index: 0;" })<br>                      .Title("test")<br>                      .Legend(legend => legend.Position(ChartLegendPosition.Top))<br>                      .SeriesDefaults(seriesDefaults => seriesDefaults.Column().Stack(true))<br>                      .PlotArea(area => area.Background("#f0f0f0").Opacity(0.1))<br>                      .Series(series =><br>                      {<br>                          series.Line(x).CategoryField("Dt").Field("Value").Name("X").Color("#F00").DashType(ChartDashType.Solid).MissingValues(ChartLineMissingValues.Interpolate).Markers(m => m.Visible(false));<br>                          series.Line(y).CategoryField("Dt").Field("Value").Name("Y").Color("#0F0").DashType(ChartDashType.Solid).MissingValues(ChartLineMissingValues.Interpolate).Markers(m => m.Visible(false));<br>                          series.Line(z).CategoryField("Dt").Field("Value").Name("Z").Color("#00F").DashType(ChartDashType.Solid).MissingValues(ChartLineMissingValues.Interpolate).Markers(m => m.Visible(false));<br>                      })<br>                      .CategoryAxis(axis => axis<br>                          .Date()<br>                          .BaseUnit(ChartAxisBaseUnit.Minutes)<br>                          .Labels(labels => labels.DateFormats(formats => formats.Hours("HH:mm")).Rotation(-45).Step(60))<br>                          .MinorGridLines(lines => lines.Visible(false))<br>                          .MinorTicks(t => t.Step(60).Visible(false))<br>                          .MajorGridLines(lines => lines.Step(60).Visible(true))<br>                          .MajorTicks(t => t.Step(60).Visible(true))<br>                          .Crosshair(c => c.Visible(true))<br>                          .PlotBands(bands =><br>                          {<br>                              bands.Add().From(DateTime.Parse("2017-01-01 01:00:00.000")).To(DateTime.Parse("2017-01-01 02:08:00.000")).Color("#b0e1fc").Opacity(0.2);<br>                          })<br>                      )<br>                      .ValueAxis(axis => axis<br>                          .Numeric()<br>                          .Line(line => line.Visible(true))<br>                          .MinorGridLines(lines => lines.Visible(false))<br>                          .MinorTicks(t => t.Step(2).Visible(false))<br>                          .MajorGridLines(lines => lines.Step(1).Visible(true))<br>                          .MajorTicks(t => t.Step(1).Visible(true))<br>                      )<br>                        )<br>                    <br>                    </div><br>                </div>

Javascrip that erase series:

var chart = $("#chartTest").data("kendoChart");<br>chart.refresh();<br>

In my case chart.refresh(); - just clear data, I try to change chart.options.series to new data with the same result, there is no series after refresh.
Tsvetina
Telerik team
 answered on 02 Jun 2017
1 answer
103 views

Is there a json/jscript function to select the filtered data when using the spreadsheet. I'm trying to find a way to limit the data that has to get serialized when I'm doing updates. Here's my Save function. I'm looking for a way to potentially replace the spreadsheetData with the filtered data set instead of the entire bound data set.

function Save_onClick() {
        var staticNotification = $("#staticNotification").data("kendoNotification");
        staticNotification.show(" Updating data...");
        var dataSource = $("#spreadsheet").data("kendoSpreadsheet").activeSheet().dataSource;
        var spreadsheetData = dataSource._data;
 
        if (spreadsheetData) {
            $.ajax({
                type: "POST",
                url: '@Url.Action("Grid_Update", "Spreadsheet")',
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify({ datum: spreadsheetData, moduleId: @Model.TheModule.Id }),
                dataType: "json",
                success: function (result) {
                    if (result.status == "Success") {
                        $(".validation-summary-valid").text(result.message);
                        staticNotification.hide();
                    } else {
 
                    }
                }
            });
        }
    }

 

Thanks,

Neil

Ianko
Telerik team
 answered on 02 Jun 2017
2 answers
536 views

I have a grid and a popup editor.  One column of the grid is a list of objects and it is handled by a multiselect in the editor window.  The multiselect list of values depends on the grid row selected for edit, so I cannot bind a list to the multiselect until the grid Edit button click. I am setting the value I need in the grid Edit event and the muitlselect dataSource Read().Data() calls a function to get the value from the edited row.  The issue I am having is the multiselect is being bound BEFORE the grid edit event fires, so the Read().Data() call returns a null value and the controller action fails. Can anyone suggest how to fix this or suggest an alternative? Thanks!

To restate the problem with reference to the code below: the Data function of the multiselect "farmIdForSelectedGrouping" which returns the value of "farmId" is called BEFORE the "farmId is set in the Grid Edit event handler "onWipGroupingGridEdit"

View with Grid:

<script type="text/kendo" id="bmpListTemplate">
    <ul class="horizontalList">
        #for(var i = 0; i< data.length; i++){#
        <li class="horizontalList">#:data[i].BmpNumber#</li>
        #}#
    </ul>
</script>
<script type="text/javascript">
    var farmId;
    var bmpTemplate = kendo.template($("#bmpListTemplate").html(), { useWithBlock: false })
    function groupingBmpListChange(e) {
        var row = this.element.closest("tr"),
            model = $("#WipGroupingGrid").data("kendoGrid").dataItem(row);
        model.set("MiniBmpList", this.dataItems());
    }
// function called from multiselect dataSource.Read().Data()
    function farmIdForSelectedGrouping() {
        return farmId;
    }
    function onWipGroupingGridEdit(e) {
        debugger;
        grouping = e.model;
        farmId = e.model.FarmId;
         
    }
    

</script>

@(Html.Kendo().Grid<WipGroupingViewModel>()
    .Name("WipGroupingGrid")
     (the rest of the Grid definition)
    .Events(e =>
    {
        e.Edit("onWipGroupingGridEdit");
    })
)

 

View for popup:

@model WapTool.UIModel.ViewModel.Wip.WipGroupingViewModel
<div class="pad-left">
    <table id="wipGroupingTable">
        <tbody >
             (other rows left out for brevity)
            <tr>
                <td colspan="3">
                    <div style="font-size: .8rem">
                        @(Html.Kendo().MultiSelectFor(m => m.MiniBmpList)
                            .Name("GroupingBmpListMultiSelect")
                            .DataValueField("Id")
                            .DataTextField("BmpNumber")
                            .Events(e => e.Change("groupingBmpListChange"))
                            .DataSource(d =>
                            {
                                d.Custom()
                                 .Type("aspnetmvc-ajax")
                                 .Transport(t =>
                                 {
                                     t.Read(r =>
                                     {
                                         r.Action("FarmBmps", "WipGrouping");
                                         r.Data("farmIdForSelectedGrouping");
                                         r.DataType("json");
                                     });
                                 })
                                .ServerFiltering(true);
                            })
                            .Value(Model.MiniBmpList)
                        )
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
</div>

John
Top achievements
Rank 1
 answered on 02 Jun 2017
2 answers
105 views

Hi

I need Access to the server side types like RecurrenceRange etc I am not using a standard MVC project this is actually a microservice (using the service fabric sdk) that will process the saved schedule in the back end.

What is the safest way to manage the required assemblies in a fashion that will be functional on local dev machines and our build server?

Ryan
Top achievements
Rank 1
 answered on 01 Jun 2017
1 answer
130 views

I have a grid (MVC) that displays a summary list, but when I Export to Excel I would like to use a different datasource that has detail information

when I use the ProxyUrl, it still takes the gridDatasource  and when I use forceProxy(true)  the post api method is called and data is retrieved, but I get the error

This XML file does not appear to have any style information associated with it. The document tree is shown below.
     

Currently I am returning a model,   but this seems to need to be some sort of Styling formatting to convert into a excel file to open.

 

What do I return in the API to allow the List<model> to open in Excel

 

Boyan Dimitrov
Telerik team
 answered on 01 Jun 2017
2 answers
127 views

I have been trying to create a Tornado style graph in Telerik UI but have been having some issues as there is no immediate support for them. My best bet so far is to create a Ranged Bar graph and hack it slightly to the desired effect. By using the Gap and Spacing settings I am getting the look but its not rendering quite right, the main issue is the top and bottom bars are clipped.

 

Any thoughts on how to get around this greatly appreciated!

 

Thanks

 

 

Code:

 

@(Html.Kendo().Chart()
        .Name("Tornado")
        .Title("My First Tornado")
        .Legend(legend => legend
            .Visible(false)
        )

        .ChartArea(chartArea => chartArea
            .Background("transparent")
        )
        .SeriesDefaults(defaults =>
        {
            defaults.RangeBar().Gap(-1);
            defaults.RangeBar().RangeBarSeries.Spacing = 2;
            defaults.RangeBar().Border(b => b.Color("#000000"));

        })
            .Series(series =>
            {
                series.RangeBar(new double[][] { new double[] { 136, 320 }, new double[] { 136, 244 }, new double[] { 136, 283 } }).Name("Sensitivities");
                series.RangeBar(new double[][] { new double[] { 130, -171 }, new double[] { 130, -74 }, new double[] { 130, 40 }, new double[] { 130, 3 } }).Name("Unique visitors");
            })
        .CategoryAxis(axis => axis
        .Name("series-axis")
        .Color("#880000")
        .Line(l => {
            l.Visible(true);
            l.Width(10);
            l.DashType(ChartDashType.Solid);
        }).MinorTicks(t =>
        {
            t.Visible(false);

        }).MajorTicks( t =>
        {
            t.Visible(false);
        }))
        .CategoryAxis(axis => axis
        .Name("label-axis")
            .Categories("Price 2, 7 ($/mmbtu)", "Resources 5, 10 (mmboe)", "Capex 1250, 1588 ($m)", "Penalties", "Tr 4 Price Structure")
            .MajorGridLines(lines => lines.Visible(false))
        )
        .ValueAxis(axis => axis
            .Numeric()
            .Line(line => line.Visible(false))
            .AxisCrossingValue(133, int.MinValue)
            .MajorGridLines(lines => lines.Visible(true))

        )
        .Tooltip(tooltip => tooltip
            .Visible(true)
            .Template("#= series.name #: #= value #")
        )
    )

Ed
Top achievements
Rank 1
 answered on 01 Jun 2017
1 answer
181 views

we were using font awesome icons on windows title bars. after upgrade to last kendo version, it doesn't work anymore 

sintax was --- modal.setOptions({
                modal: true,
                width: "45%",
                height: "55%",
                minHeight: 440,
                title: "<span class='fa fa-info'></span> About..",
                actions: ["Minimize", "Maximize", "Close"],
            });

Dimitar
Telerik team
 answered on 01 Jun 2017
1 answer
371 views

I am attempting to write the onDrop event:

function onTreeDrop(e) {
        var treeview = $("#treeview").data("kendoTreeView");
        var p = e.dropPosition;
        
        sn = treeview.dataItem(e.sourceNode);
        dn = treeview.dataItem(e.destinationNode);
        psn = treeview.parent(e.sourceNode);
        pdn = treeview.parent(e.destinationNode);

        if (p == "over") {
            if (dn.IsDept) {
                treeview.append(sn, pdn);
            }
            else {
                treeview.append(sn, dn);
            }
            e.setValid(true);
        }
        else if (p == "before") {

        }
        else if (p == "after") {

        }
    }

 

when I do a drop over I get the following error:

 

kendo.all.js:78326 
Uncaught TypeError: t.children is not a function
    at kendo.all.js:78326
    at init.append (kendo.all.js:79643)
    at init.onTreeDrop (Index:497)
    at init.trigger (kendo.all.js:124)
    at Object.drop (kendo.all.js:78557)
    at init.dragend (kendo.all.js:78269)
    at init.i (jquery-1.10.2.min.js:21)
    at init.trigger (kendo.all.js:124)
    at init._trigger (kendo.all.js:23904)
    at init._end (kendo.all.js:23881)

when I follow the error to kendo.all.js:78326 the object has node.children. My own Model has a Children property. Perhaps the two "children" are conflicting?

 

 

Index:497 Unc
aught TypeError: t.children is not a function at kendo.all.min.js:66 at init.append (kendo.all.min.js:67) at init.onTreeDrop (Index:497) at init.trigger (kendo.all.min.js:25) at Object.drop (kendo.all.min.js:67) at init.dragend (kendo.all.min.js:66) at init.i (jquery-1.10.2.min.js:21) at init.trigger (kendo.all.min.js:25) at init._trigger (kendo.all.min.js:36) at init._end (kendo.all.min.js:36)
Index:497 Uncaught TypeError: t.children is not a function at kendo.all.min.js:66 at init.append (kendo.all.min.js:67) at init.onTreeDrop (Index:497) at init.trigger (kendo.all.min.js:25) at Object.drop (kendo.all.min.js:67) at init.dragend (kendo.all.min.js:66) at init.i (jquery-1.10.2.min.js:21) at init.trigger (kendo.all.min.js:25) at init._trigger (kendo.all.min.js:36) at init._end (kendo.all.min.js:36)
Dimitar
Telerik team
 answered on 01 Jun 2017
3 answers
221 views

Hello,

I'm currently trying to implement an ASP.NET MVC Grid that hosts products and displays additional product information via detail rows. The additional information in the detail row is depending on the product group (e.g. products of productgroup 1 should display additonal information a, b and c and products of productgroup 2 should display additonal information d, e and f). I tried to implement this using ClientDetailTemplateId combined with Partial Views:

<script id="template" type="text/html">
    # if(Productgroup == "Productgroup1") { #
    @{ Html.RenderPartial("Partial/Productgroup1View"); }
    # } else if(Productgroup == "Productgroup2") { #
    @{ Html.RenderPartial("Partial/Productgroup2View"); }
    # } else { #
    @{ Html.RenderPartial("Partial/DefaultView"); }
    # } #
</script>

 

In the partial views in want to use a NumericTextBox to display product information like:

@(Html.Kendo().NumericTextBox()
      .Value("#= NumericProductProperty1 #")
      .Name("NumericProductProperty1"))

 

As the Value property of a numeric textbox needs a decimal this is not working.

Is there any way to solve my problem? Is there a possibility to use early bound properties in client templates? In general: Is ClientTemplateId the recommended way to implement my requirements?

I tried to solve my problem using a server-side DetailTemplate but this is not working with an Ajax datasource.

Any help is appreciated!

Regards

Raphael

Stefan
Telerik team
 answered on 01 Jun 2017
Narrow your results
Selected tags
Tags
Grid
General Discussions
Scheduler
DropDownList
Chart
Editor
TreeView
DatePicker
Upload
ComboBox
MultiSelect
Window
ListView
TabStrip
Menu
Installer and VS Extensions
Spreadsheet
AutoComplete
TreeList
Gantt
PanelBar
NumericTextBox
Filter
ToolTip
Map
Diagram
Button
PivotGrid
Form
ListBox
Splitter
Application
FileManager
Sortable
Calendar
View
MaskedTextBox
PDFViewer
TextBox
Toolbar
MultiColumnComboBox
Dialog
DropDownTree
Checkbox
Slider
Switch
Notification
ListView (Mobile)
Pager
Accessibility
ColorPicker
DateRangePicker
Wizard
Security
Styling
Chat
MediaPlayer
TileLayout
DateInput
Drawer
SplitView
Barcode
ButtonGroup (Mobile)
Drawer (Mobile)
ImageEditor
RadioGroup
Sparkline
Stepper
TabStrip (Mobile)
GridLayout
Template
Badge
LinearGauge
ModalView
ResponsivePanel
TextArea
Breadcrumb
ExpansionPanel
Licensing
Rating
ScrollView
ButtonGroup
CheckBoxGroup
NavBar
ProgressBar
QRCode
RadioButton
Scroller
Timeline
TreeMap
TaskBoard
OrgChart
Captcha
ActionSheet
Signature
DateTimePicker
AppBar
BottomNavigation
Card
FloatingActionButton
Localization
MultiViewCalendar
PopOver (Mobile)
Ripple
ScrollView (Mobile)
Switch (Mobile)
PivotGridV2
FlatColorPicker
ColorPalette
DropDownButton
AIPrompt
PropertyGrid
AICodingAssistant
ActionSheet (Mobile)
BulletGraph
Button (Mobile)
Collapsible
Loader
CircularGauge
SkeletonContainer
Popover
HeatMap
Avatar
ColorGradient
CircularProgressBar
SplitButton
StackLayout
TimeDurationPicker
Chip
ChipList
DockManager
ToggleButton
Sankey
OTPInput
ChartWizard
SpeechToTextButton
InlineAIPrompt
TimePicker
StockChart
RadialGauge
ContextMenu
ArcGauge
+? more
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?