Telerik Forums
UI for ASP.NET MVC Forum
2 answers
170 views


Hi Sir

I used async upload, on my view I used the event select and upload function. the problem is the request not sent to the Action once I uploaded a file.

Here's my code snippet.



 $(document).ready(function () {



var lookup = $("#ComboLookupTable").data("kendoComboBox");
$("#get").click(function () {
});

$("#files").kendoUpload({
async: {
saveUrl: "UploadFile/Lookup",
removeUrl: "remove",
autoUpload: false,
value: 'Import'
},
multiple: false,
progress: function (e) {

},
upload: function (e) {
// debugger;
var kendoWindow = $("<div />").kendoWindow({
title: "Replace Lookup Table Data?",
resizable: false,
modal: true
});

kendoWindow.data("kendoWindow")
.content($("#delete-confirmation").html())
.center().open();

kendoWindow
.find(".delete-confirm,.delete-cancel")
.click(function () {
if ($(this).hasClass("delete-cancel")) {

e.preventDefault();
// kendoWindow.data("kendoWindow").close();
//return;
}
else {
e.data = { additional: $("#ComboLookupTable").val() };
}

kendoWindow.data("kendoWindow").close();
})
//.end()



// ---------

//e.data = { additional: $("#ComboLookupTable").val() };
},
select: function (e) {
// debugger;
e.data = { additional: $("#ComboLookupTable").val() };
},
localization: {
select: "Select a file",
uploadSelectedFiles: "Import",
remove: "Remove"
}
//upload: onUpload
//select: onSelect

});
});


Here's my controller (action)

'Upload File (excel)
<HttpPost> _
Public Function UploadFile(ByVal files As HttpPostedFileBase, ByVal additional As String) As ActionResult

Dim data = (New ExcelReader()).ReadExcel(files)

Select Case additional
Case FuelEfficiencyViewModel.Table.Lookup.ConversionFactors
Return View()
Case FuelEfficiencyViewModel.Table.Lookup.ElectricalRegionalEmissionFactors
Return View()
Case FuelEfficiencyViewModel.Table.Lookup.ElectricalSubRegionEmissionFactors
Return View()
Case FuelEfficiencyViewModel.Table.Lookup.FuelEfficiecies
Dim ent As New List(Of ViewModel.FuelEfficiencyViewModel.Create)

For Each datarow In data.DataRows
ent.Add(New ViewModel.FuelEfficiencyViewModel.Create With {.VehicleClass = datarow(0).ToString, _
.FuelEfficiencyValue = Convert.ToDecimal(datarow(1)), _
.CreatedBy = Session(LocalConstant.Ses_UserID), _
.CreatedDate = Now.Date})
Next
_fuelefficiencyRepository.Create(ent)
Return View()
Case FuelEfficiencyViewModel.Table.Lookup.GlobalEmissionFactors
Return View()
Case FuelEfficiencyViewModel.Table.Lookup.GlobalWarmingPotential
Return View()

End Select


'Session(LocalConstant.SessionExcelData) = resultList

Return View("Index", data.Status)
'Return View()
End Function



Thank you in advance and God bless.
Dimiter Madjarov
Telerik team
 answered on 03 Jun 2014
1 answer
311 views
Hi All,

I have parent and child grid. When user create new, there must be 1 record in the child grid before it can save.
How can i validate this on client side before sending request to server?

So far i got this reply from my support ticket but it didn't work because at grid saveChanges event, e.container = null.
How do i get the detailrow on grid saveChanges event?

function onsaveChanges(e) {
    var detailRow = e.container.next(".k-detail-row");
    if (detailRow.length) {
        var grid = detailRow.find("[data-role='grid']").data("kendoGrid");
        var data = grid.dataSource.data();
        if (data.length === 0) {
            e.preventDefault();
            alert("error message");
        }
    }
}


Thanks in advance.
Csa
Top achievements
Rank 1
 answered on 03 Jun 2014
5 answers
443 views





Hi,



Great day.



Just would like to seek help in adding confirmation dialog to my upload
window. I added confirm dialog on select event but I did not know to
implement it properly. All I want is when the user select yes, the
upload event proceed but if the user select "No", the the confirm dialog
will close and the main kendow will close also..



Here's my code:







    $(document).ready(function () {



        var lookup = $("#ComboLookupTable").data("kendoComboBox");

        $("#get").click(function () {

        });



        $("#files").kendoUpload({

            async: {

                saveUrl: "UploadFile/Lookup",

                autoUpload: false,

                value: 'Import'

            },

            multiple: false,

            progress: function (e) {



            },

           

            select: function (e) {

                debugger;

                var kendoWindow2 = $("<div />").kendoWindow({

                    title: "Replace Lookup Table Data?",

                    resizable: false,

                    modal: true

                });



                kendoWindow2.data("kendoWindow")

                    .content($("#delete-confirmation").html())

                    .center().open();



                kendoWindow2

                    .find(".delete-confirm,.delete-cancel")

                        .click(function () {

                            if ($(this).hasClass("delete-cancel")) {

                                debugger;

                                //e.preventDefault();

                                e.close();

                                kendoWindow2.data("kendoWindow").close();

                                //return;

                            }

                            else {

                                debugger;

                                kendoWindow2.data("kendoWindow").close();

                            }

                        })

                       // .end()

            },

            localization: {

                select: "Select a file",

                uploadSelectedFiles: "Import",

                remove: "Remove"

            },

            upload: function (e) {

                debugger;



                e.data = { additional: $("#ComboLookupTable").val() };

                debugger;

            }

            //upload: onUpload

            //select: onSelect



        });

    });









<script id="delete-confirmation" type="text/x-kendo-template">

    <p class="delete-message">This will replace all of the existing data for lookup table</p>

    <p></p>

    <p> Are you sure?</p>



    <button class="delete-confirm k-button">Yes</button>

    <button class="delete-cancel k-button">No</button>

</script>







I hope you could help me on this. Thank you in advance. God bless
Dimiter Madjarov
Telerik team
 answered on 02 Jun 2014
5 answers
520 views
Hello,

I want to make specifics operations if I click on an element of the MultiSelect and others operations if I click on empty space of the MultiSelect.

How can I do this?

Best regards

Chavigny
Dimiter Madjarov
Telerik team
 answered on 02 Jun 2014
2 answers
110 views
Hello,

I want to make specifics operations if I click on an element of the MultiSelect and others operations if I click on empty space of the MultiSelect.

How can I do this?

Best regards

Chavigny
Dimiter Madjarov
Telerik team
 answered on 02 Jun 2014
2 answers
360 views
Hi,

I have a rather large form which is spread over a series of tabs to break it down into sections. I have a single "Save" button that uses ajax to post the form. This all works fine, and the validator shows errors next to the controls that fail validation. The issue i have is that if i try and save something on one tab it isn't immediately clear which tab might be showing a control that fails validation, and therefore isn't clear to the user why the form hasn't submitted.

What i'd like to do is use the validationsummary or a simple div to display the errors above the tabs in a list form. I've been experimenting with the KendoValidator and can see the list or errors under validator._errors. but is it possible to access the _errors values to append to a div using a foreach on validator_errors?

Thanks

Ant
Ant
Top achievements
Rank 1
 answered on 02 Jun 2014
3 answers
226 views
Hi

I have an issue when binding both a MultiSelecr and ListView to the same properties in a ViewModel but in different views. Here is an example:

In my ViewModel I have the following public properties

//Select List of all cars
 
public IEnumerable<System.Web.Mvc.SelectListItem> AllCars
        {
            get
            {
                if (Cars != null)
                {
                    var _sacts = Cars.Select(f => new System.Web.Mvc.SelectListItem
                    {
                        Value = f.code,
                        Text = f.description
                    });
                    return _sacts;
                }
                else return null;
            }
        }
 
public IEnumerable<CarTypes> Cars { get; set; }
 
//Select List of previous saved cars
 
public IEnumerable<System.Web.Mvc.SelectListItem> SelectedCars
        {
            get
            {
                if (SelectedCarsValues != null)
                {
                    var _sacts = SelectedCarsValues.Select(f => new System.Web.Mvc.SelectListItem
                    {
                        Value = f.code,
                        Text = f.description
                    });
                    return _sacts;
                }
                else return null;
            }
        }
 
public IEnumerable<CarTypes> SelectedCarsValues { get; set; }

Cars and SelectedCarsValues are populated from a db context.

On one view i have my MultiSelect

@(Html.Kendo().MultiSelectFor(m => m.SelectedCars)
    .BindTo(Model.AllCars)
    .DataTextField("Text")
    .DataValueField("Value")
)

And on another view I have my ListView

<script type="text/x-kendo-tmpl" id="CarsTemplate">
    ${Text}
</script>
 
@(Html.Kendo().ListView(Model.SelectedCars)
    .Name("Cars")
    .TagName("p")
    .ClientTemplateId("CarsTemplate")
    .BindTo(Model.SelectedCars)
)

This all works fine. But when i submit the form containing my multiselect the validation fails (ModelState.isvalid) as it is trying to convert a selecteditem to a string. So what i did was change my ViewModel for SelectedCars to be an IEnumerable<string> instead:

public IEnumerable<string> SelectedCars
{
    get
    {
        if (SelectedCarsValues != null)
        {
            return SelectedCarsValues.Select(a => a.code);
        }
        else return null;
 
    }
}

Now when i submit my form with the multiselect the validation passes. Yet, when i use my view i now have [object][object] showing as my ListView. I can change this to ${data} but it obviously only shows the code and not the description.

Therefore. How can i reuse the public properties from my ViewModel for both the MultiSelect and Listview without causing validation to fail when the MultiSelect is submitted? Or, am i binding either the MultiSelect or ListView (or both) incorrectly. Note that the Listview is not within a form and is not submitted to the controller.

Thanks for taking the time to have a look at this for me.

Anthony

Ant
Top achievements
Rank 1
 answered on 31 May 2014
1 answer
113 views
Hi Kendo,

Once a user has filtered the data in a Kendo Grid, is it somehow possible to pass only the filtered data to an MVC Controller action? Can I only pass the data that is being displayed in the Grid to a routine that processes the users choices? What might be the best way to deal with this scenario? Thanks for any suggestion

-Carl
Alexander Popov
Telerik team
 answered on 31 May 2014
7 answers
343 views
Hello,

We're currently using version 2014.1.318.

We have a chart containing two  valueAxis's:

valueAxis: [{
            name: "volumeAxis",
            title: { text: "@GlobalResources.BCount", font: "16px Segoe UI, Arial", color: "#6f6f6e" },
            labels: { format: "{0}", skip: 2, step: 2, opacity: 1 },
            color: '#adadad'
        }, {
            name: "time",
            visible: false
        }]

I'm trying to dynamically obtain the max and majorUnit value for the "volumeAxis".

I've tried:
var maxValueAxis = chart.options.series[0].valueAxis.max;
but the chart.options.series[0].valueAxis is undefined, the hint to use this came from http://www.telerik.com/forums/dynamic-value-axes-for-multi-axis-chart


The reason we're trying to do this is to dynamically increase the chart's volumeAxis by one unit (majorUnit), so eventually achieving something like this:

var maxValueAxis = kchart.options.series[0].valueAxis.max;
var majorUnit = kchart.options.series[0].valueAxis.majorUnit;

valueAxis = [{
    name: "volumeAxis",
    title: { text: "@GlobalResources.BCount", font: "16px Segoe UI, Arial", color: "#6f6f6e" },
    labels: { format: "{0}", skip: 2, step: 2, opacity: 1 },
    color: '#adadad',
    max: maxValueAxis + majorUnit
}, {
    name: "time",
    visible: false
}];

chart.setOptions({ valueAxis: valueAxis });
chart.redraw();

Thanks advance.






































Andy
Top achievements
Rank 1
 answered on 30 May 2014
4 answers
156 views
Hello Telerik Team, hello Community

I have a grid with two columns that have a similar name: Leadauditor (decimal) and Leadauditor_DisplayName (string). I initially designed it this way so that the user can search the Name in the Leadauditor_DisplayName field and then I programmatically write the ID into the (hidden) Leadauditor field (using e.g. model.set('Leadauditor', 3).

Since I upgraded from 2013.2.716 to 2014.1.318 this does not work any more. My assumption is that the validation fails because it validates the wrong field...

Kindly refer to my attached screenshots:
in the Kendo.min.js, _validate Method, there are 4 elements when it searches with :Input[data-bind*=\"value:Leadauditor\"]. The data() from the jquery.min.js function returns the [0] Position, which is actually the Leadauditor_DisplayName. Now the validation fails because this contains actually a string but the rules for an mvcdecimal are applied...
If the search string is changed to :Input[data-bind=\"value:Leadauditor\"] then it should work because it only returns one search result (kindly refer to the third screenshot).

best regards,
Rainer
Rainer
Top achievements
Rank 1
 answered on 30 May 2014
Narrow your results
Selected tags
Tags
Grid
General Discussions
Scheduler
DropDownList
Chart
Editor
TreeView
DatePicker
ComboBox
Upload
MultiSelect
ListView
Window
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
Accessibility
ListView (Mobile)
Pager
ColorPicker
DateRangePicker
Wizard
Security
Styling
Chat
DateInput
MediaPlayer
TileLayout
Drawer
SplitView
Template
Barcode
ButtonGroup (Mobile)
Drawer (Mobile)
ImageEditor
RadioGroup
Sparkline
Stepper
TabStrip (Mobile)
GridLayout
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
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
AICodingAssistant
+? more
Top users last month
Bohdan
Top achievements
Rank 3
Iron
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Elliot
Top achievements
Rank 1
Iron
Iron
Iron
Sunil
Top achievements
Rank 1
Cynthia
Top achievements
Rank 1
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Bohdan
Top achievements
Rank 3
Iron
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Elliot
Top achievements
Rank 1
Iron
Iron
Iron
Sunil
Top achievements
Rank 1
Cynthia
Top achievements
Rank 1
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?