Telerik Forums
Kendo UI for jQuery Forum
0 answers
136 views
The Grid:
$('#' + idGrid).kendoGrid({
  dataSource: dataSource,
  height: 400,
  toolbar: [{name: "create", text:"Create County"}],
 columns: [
      { field:"_id", title: "ID", width: "50px" },
      { field: "_status", values: status, title:"Status", width: "100px", editor: status_dropdown },
      { field: "_country_id", title: "Country", values: countries, width: "50px", editor: country_dropdown },
      { field: "_county_id", title: "County", values: counties, width: "50px", editor: county_dropdown },
      { field: "code", title: "Code", width: "150px" },
      { field: "name", title: "Name", width: "150px"},
      { field: "localname", title: "Localname", width: "150px"},
      { command: ["edit", "destroy"], title: " ", width: "200px" }],
      editable: "popup",
      sortable: {
       mode: "multiple",
       allowUnsort: true
      },
      filterable: true,
      resizable: true,
      groupable: true,
      pageable: {
    pageSize: 30,
    refresh: true
      }
});

the fields "_status", "_country_id", "_county_id" have integer values in database, but we want to show string values to the user. So we use the "values" parameter that is an array. In the case of _status for example we use:

var status = [{
  "value": 0,
  "text": "Disabled"
  }, {
  "value": 1,
  "text": "Enabled"
}];

Everything works fine...

The other two, however are arrays that are created from datasources that are populated from the server. That means the action is asynchronous. So if you try creating datasource->array->grid asynchronously the array might not be populated so the grid shows integer values instead.

If i have one such datasource i use the "change" event of the datasource to create the array and then the grid. For example:
var countiesData;
     var counties = new Array();
     var countiesDataSource = new kendo.data.DataSource({
       transport: {
         read: {
           url: "../order_new/county.php"
         }
       },
        schema: {
           data: "data"
         },
         change: function(e) {
                  countiesData = this.data();
                  console.log(countiesData);
                  var counties = new Array();
                  for (var i = 0; i < countiesData.length; i++) {
                    var dataItem = countiesData[i];
     
                    counties.push({
                      "value": parseInt(dataItem._id),
                      "text": dataItem.name
                    });
                  }
                 //here goes the previous code of grid creation
}

This works just fine... But what should i do now that i have two (or maybe more) foreign keys that need integer->string modification?
Just to know, i have tried creating the second datasource inside the change event of the first and then creating the grid inside the change event of the second. Doesn't work! And is far from elegant solution. Any ideas telerik team and users?
Fedon
Top achievements
Rank 1
 asked on 24 Sep 2012
0 answers
66 views
Hello, I need a way to find out how much space the tree view takes after it finish rending, is there such event that I can hook to calculate the height.
Jianwei
Top achievements
Rank 1
 asked on 24 Sep 2012
1 answer
127 views
I have a grid dynamically configured to fill the available space on the screen, and resize as necessary.  How would I go about getting the pagesize to set based on the calculated height of the grid?
Brad
Top achievements
Rank 1
 answered on 24 Sep 2012
1 answer
171 views
Is this even possible?

Orignally I was hoping to be able to have TabStrips inside my Editor Template. The idea being that instead of adding new items to the list, I could choose to add existing items. (for example, I have a Customer Grid and I want to add Items Owned by customer, so I have a sub grid showing Items Owned, I want to be able to add both a entirely new item, and an existing item).

I've tried to use the example TabStrip and PanelBar without luck.

@model Model.Test
  
 @(Html.Kendo().PanelBar()
        .Name("panelbar")
        .ExpandMode(PanelBarExpandMode.Single)
        .HtmlAttributes(new { style = "width:300px" })
        .Items(panelbar =>
        {
            panelbar.Add().Text("My Teammates")
                .Expanded(true)
                .Content(@<div style="padding: 10px;">
                <div class="teamMate">
                    <h2>Andrew Fuller</h2>
                    <p>Team Lead</p>
                </div>
                <div class="teamMate">
                    <h2>Nancy Leverling</h2>
                    <p>Sales Associate</p>
                </div>
                <div class="teamMate">
                    <h2>Robert King</h2>
                    <p>Business System Analyst</p>
                </div>
            </div>);
  
            panelbar.Add().Text("Projects")
                .Items(projects =>
                {
                    projects.Add().Text("New Business Plan");
  
                    projects.Add().Text("Sales Forecasts")
                        .Items(forecasts =>
                        {
                            forecasts.Add().Text("Q1 Forecast");
                            forecasts.Add().Text("Q2 Forecast");
                            forecasts.Add().Text("Q3 Forecast");
                            forecasts.Add().Text("Q4 Forecast");
                        });
  
                    projects.Add().Text("Sales Reports");
                });
  
            panelbar.Add().Text("Programs")
                .Items(programs =>
                {
                    programs.Add().Text("Monday");
                    programs.Add().Text("Tuesday");
                    programs.Add().Text("Wednesday");
                    programs.Add().Text("Thursday");
                    programs.Add().Text("Friday");
                });
  
            panelbar.Add().Text("Communication").Enabled(false);
        })
    )

Both of the times I've tried (with TabStrips and PanelBars) I get Invalid Template, erroring on kendo.dataviz.min.js.

If this cannot be done the only other way I can think is to create 2 custom toolbar buttons which will load a popup which replicates the Add (1 add a new item and 1 add an existing item), but I cannot find any examples of a custom toolbar with a popup (only the ViewDetail example which is inline). 

As you can most probably tell, I am quite new to this!

Thanks, 
Oliver
Top achievements
Rank 1
 answered on 24 Sep 2012
0 answers
149 views
I have a grid which is using ajax to retrieve data using the "read" method. This requires additional data to be posted to the controller. This works good using a javascript function to send the additional data. And their are many examples of this being done. But due to requirements I would like to create the actual javascript function inside the "Data" call instead of specifying the string for the javascript function name. Based on the intellisense I think this is possible but not sure of the syntax. 

So the example below shows what works (Read #1) and what I want to do instead (Read #2).

 @(Html.Kendo().Grid<Tabs.Viewer.UI.WebViewer.Models.MyModel>()
 .Name("Grid")
 .Columns(columns => {       
                                   columns.Bound(p => p.Email).Title("column1");
                                   columns.Bound(p => p.Description).Title("column2");
.DataSource(dataSource => dataSource 
                                         .Ajax()
                                         .Model(model => model.Id(p => p.myId))
  // Read #1 This works fine but do not want to specify the method name
                                         .Read(read => read.Action("PopulateAlertGrid", "ProductAlert").Data("onAdditionalProductAlertGridData"))
 // Read #2 Note: I want to add the actual js code instead of the above line.
                                         .Read(read => read.Action("PopulateAlertGrid", "ProductAlert").Data(function myMethod(){...})
))

So can someone share the syntax to put the js code in the data call or if this is possible?

Thanks, Dan
Dan
Top achievements
Rank 1
 asked on 24 Sep 2012
1 answer
410 views
On Kendo grid I've implemented a search functionality that looks for values in the grid. But I've been able to do this only for one column. example: http://demos.kendoui.com/web/grid/toolbar-template.html 

I am not sure how to do it for multiple columns. Any ideas?

Thanks.
Just
Top achievements
Rank 1
 answered on 24 Sep 2012
1 answer
289 views
Hi,

I am using the latest build of Kendo UI (2012.2 913) and I am trying to display a "success" message after a user creates a new record using popup template.

Currently I am returning a JSON Object once the insert is completed as:

 public ActionResult GalleryCreate([DataSourceRequest]
                                          DataSourceRequest request, UserCreateModel model) // decorated with DataSourceRequestAttribute
        {
                if (null != model && ModelState.IsValid)
                {
                    service.CreateUser(model);

                    var json = new
                    {
                        success = true,
                        successMessage ="Successfully added a new User!"
                        
                    };
                    return Json(json);
                }
}

--->

in my razor page, I am binding to the requestEnd function:

    $(document).ready(function () {
        var grid = $("#userGrid").data("kendoGrid").dataSource;
        grid.bind("requestEnd", function (e) {
            if (e.type == "create") {

                alert(e.successMessage);

            }


        });

    });

--> The event is firing, but I am not sure how to get my hands on the JSON object to display a "success message"?

Thanks!
sL342799
Top achievements
Rank 1
 answered on 24 Sep 2012
3 answers
1.0K+ views
When I copy a row using the Kendo Grid API, the new row is created.
However when i edit the parent row, the newly created row also gets the same data. 

How can I decouple these two rows?

Thanks
henry
Jark Monster
Top achievements
Rank 1
 answered on 24 Sep 2012
0 answers
242 views
With transport update url call, parameters are not sent to mvc3 controller on a grid update involving a multi select dropdownlist. does anyone know if this is a legitimate operation and/or how to correct?

the data source update: is as follows:
update: {
   // filter is a row in the grid
    url: function (filter) {
        alert(CommaDelimitedString);
        return '/path/UpdateData?ID=' + filter.ID
                + '&FilterName=' + filter.FilterName
                + &,AlertSource=' + SelectedAlertSources.replace(',', '|' )
                + '&Param4=' + Param4Arg
                + '&Param5=' + Param5Arg                                    },
                // other parameters are omitted for brevity 
    type: "POST"

fiddler shows the query string being passed as expected, but the controller only receives the values in the grid row. it is as if the datasource is ignoring the url: and substituting its own. the webform tab of fiddler shows just that with many more parameters involved in the post. it is actually taking the fields from the datasource and constructing its own query/post.....

is it possible for me to submit my own query string in the call to my controller? if so, how? i have experimented with the data: object but that has the same dismal results.....my url contains all of the parameters expected by the controller function.

the need for all of this rigmarole is that i do not know how to configure grid column to accept multiple selection values from the dropdownlist, so i construct a global string containing the values which i use as the argument to one of the url parameters.
tony
Top achievements
Rank 1
 asked on 24 Sep 2012
3 answers
124 views

Lets pretend this is the data:

MusicGenre  AgeGroup  TimesPlay

Rock             10-15              100
Rock              16-20             200
Classical        10-15               5
Classical         16-20              4

If I do not group the data and I plot it

1. Then Rock 16-20 is the biggest bubble (biggest)
2. Followed by Rock 10-15 (2nd biggest)
3. Classical 10-15 (tiny)
4. Classical 16-20 (tiny)

But I get the same color for each bubble

If I group by Genre

I want to have the same color for Rock and a different one for classical and that happens, but then the bubble size
is determined by items in the same group, not compared with the rest
So Classical 10-15 and 16-20 now are big
Classical 10-15 = 5 out of 9 instead of 5 out of 309
Classical 16-20 = 4 out of 9 instead of 4 out of 309

Both are rendered big, because the grouping is taking in consideration only items inside the group and not comparing with other groups

I want to group to have different colors, but then the purpose of the bubble chart gets defeated, because having similar sizes doesn't make an useful visualization.

Is this a bug or it is intended to work this way?

 

dataSource: {
  
transport: {
read: { 
 url: "@Url.Content("~/Music/GetData")",
 dataType: "json",
  data: { // This are the parameters
  genre: function() {
   return "All";
  }
}
}
}, 
group: { 
 field: "Genre" 
 }
},

Any help? Is there a way to have groups but the bubble sizes are based on all the items, not only on the ones inside the group?

Thanks

Iliana Dyankova
Telerik team
 answered on 24 Sep 2012
Narrow your results
Selected tags
Tags
Grid
General Discussions
Charts
Data Source
Scheduler
DropDownList
TreeView
MVVM
Editor
Window
DatePicker
Spreadsheet
Upload
ListView (Mobile)
ComboBox
TabStrip
MultiSelect
AutoComplete
ListView
Menu
Templates
Gantt
Validation
TreeList
Diagram
NumericTextBox
Splitter
PanelBar
Application
Map
Drag and Drop
ToolTip
Calendar
PivotGrid
ScrollView (Mobile)
Toolbar
TabStrip (Mobile)
Slider
Button (Mobile)
Filter
SPA
Drawing API
Drawer (Mobile)
Globalization
LinearGauge
Sortable
ModalView
Hierarchical Data Source
Button
FileManager
MaskedTextBox
View
Form
NavBar
Notification
Switch (Mobile)
SplitView
ListBox
DropDownTree
PDFViewer
Sparkline
ActionSheet
TileLayout
PopOver (Mobile)
TreeMap
ButtonGroup
ColorPicker
Pager
Styling
Chat
MultiColumnComboBox
Dialog
DateRangePicker
Checkbox
Timeline
Drawer
DateInput
ProgressBar
MediaPlayer
ImageEditor
TextBox
OrgChart
Accessibility
Effects
PivotGridV2
Licensing
ScrollView
Switch
TextArea
BulletChart
QRCode
ResponsivePanel
Wizard
CheckBoxGroup
Localization
Barcode
Breadcrumb
Collapsible
MultiViewCalendar
Touch
RadioButton
Stepper
Card
ExpansionPanel
Rating
RadioGroup
Badge
Captcha
Heatmap
AppBar
Loader
Security
TaskBoard
Popover
DockManager
TimePicker
FloatingActionButton
CircularGauge
ColorGradient
ColorPalette
DropDownButton
TimeDurationPicker
ToggleButton
BottomNavigation
Ripple
SkeletonContainer
Avatar
Circular ProgressBar
FlatColorPicker
SplitButton
Signature
Chip
ChipList
VS Code Extension
AIPrompt
PropertyGrid
Sankey
Chart Wizard
OTP Input
SpeechToTextButton
InlineAIPrompt
StockChart
ContextMenu
DateTimePicker
RadialGauge
ArcGauge
AICodingAssistant
SmartPasteButton
PromptBox
SegmentedControl
+? more
Top users last month
Miljana
Top achievements
Rank 2
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Bronze
Cynthia
Top achievements
Rank 1
John
Top achievements
Rank 1
Iron
Mozart
Top achievements
Rank 1
Iron
Veteran
Want to show your ninja superpower to fellow developers?
Top users last month
Miljana
Top achievements
Rank 2
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Bronze
Cynthia
Top achievements
Rank 1
John
Top achievements
Rank 1
Iron
Mozart
Top achievements
Rank 1
Iron
Veteran
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?