Telerik Forums
Kendo UI for jQuery Forum
0 answers
278 views
HI,
I made an interface with some controls, from Kendo. It's a number, textbox and dropdownlist. What it does it's create many copies of itself by the press of the "+" button and delete a row by the press of it's "-" button.

Here's the code:
{% extends "saloons/templates/base.html" %}
{% from "ui/forms/macro.html" import wtform %}
{% block content %}
  <form method="POST" action="">
    <table>
        <tr>
            <td>{{ form.order_date.label }}</td>
            <td>{{ form.order_date }}</td>
        </tr>
    </table>
  <div id="grid-users"  class="grid-content" style="text-align: center; width: 100%!important">
      <table id="grid">
    <thead>
      <tr>
        <th data-field="number" style="text-align: center">Nro.</th>
        <th data-field="item" style="text-align: center">Articulo</th>
        <th data-field="staff" style="text-align: center">Usuario</th>
        <th data-field="button" style="text-align: center">Añadir/Remover</th>
      </tr>
    </thead>
    <tbody id="pedidos">
      <tr>
        <td>1.</td>
        <td>{{ form.item }}</td>
        <td>{{ form.staff }}</td>
        <td><button type="button" id="add_textbox">+</button></td>
      </tr>
    </tbody>
      </table>
      <center>
     <div class="buttons">{{ form.save }}</div>
      </center>
  </div>
  </form>
<script type="text/javascript">
    $(function() {
        $("#save").attr('class','k-button');
        $("#c0").attr('class', 'k-input');
        var sel = $("#t0").clone();
        var sel2 = $("#c0").clone();
        var i = 1;
        var data = "{{ inventory }}".replace("[", "").replace("]", "");
                var a = data.split(",");
                for(j=0;j<a.length;j++)
                {
                  if(j == 0){
                   a[j] = a[j].substring(2,a[j].length -1);
                  }
                  else
                  {
                    a[j] = a[j].substring(3,a[j].length -1);
                  }
                }
        $("#add_textbox").attr('class', 'k-button');
        $("#add_textbox").live('click', function() {               
            i++;
            $("#pedidos").append('<tr>' +
                        '<td>'+ i +'. </td>' +
            '<td id="c'+ i +'"></td>' +
            '<td id="t'+ i +'"></td>' +
            '<td><button type="button" rel="del" class="k-button">-</button></td>' +
            '</tr>');
            $(sel2).attr('id',"tc"+i);
            $(sel).attr('id',"ts"+i);
            $(sel2).appendTo("#c"+i);
            $(sel).appendTo("#t"+i);
            $("#tc"+i).css('width', 180);
            $("#tc"+i).kendoAutoComplete({
                   dataSource: a
                        });
            sel = $(sel).clone();
            sel2 = $(sel2).clone();
            $("#ts"+i).css('width', 270);
            $("#ts"+i).kendoDropDownList();
        });
                 
                $("button[rel=del]").live('click', function() {
                   $(this).parent().parent().remove();
                   i--;
                    
                   var a2 = 0;
                   $("#pedidos tr").each(function(i){
                      a2++;
                      $(this).find("td:first").html(a2);                     
                   });                  
        });
                 
                 
     
        $("#order_date").kendoDatePicker({
             min: new Date(),
             value: new Date(),
                     format: "dd/MM/yyyy"
          });
        $("#order_date").attr('disabled','disabled');
         
        $("#grid").kendoGrid({
          height: 460,
          sortable: false,
          columns: [{field:"number", width:40},
                {field:"item", width:40},
                {field:"staff", width:80, editor: function(container, options){
                  }},
                {field:"button", width:40}]
 
          });
        $("#t0").css('width', 270);
        $("#t0").kendoDropDownList();
         
        $("#c0").css('width', 180);
        $("#c0").kendoAutoComplete({
                    dataSource: a
                });
        });
</script>
{% endblock %}

Happens that at some point when you start deleting rows, some dropdowns and textboxes are assigned to the wrong rows. At first I thought that it was because some ids didn't match when making the recount in the minus button, but I already tried that.

Can you help on this one, please?
Christian
Top achievements
Rank 1
 asked on 25 Sep 2012
4 answers
369 views
I am attempting to load a grid into the content of the first tab in a tabstrip.  I have tried several variations of the code and how the grid loads, including via the "activate" event.  Here is a jsfiddle of a basic version of the code.  The grid works with the tabstrip code commented out.  It seems like it would be a simple oversight.
Aparna
Top achievements
Rank 1
 answered on 24 Sep 2012
6 answers
428 views
I have a menu inside a splitter and when it expands, it expands outside the spitter, and the splitter needs to be resized to see the menu items.

Is it possible to change the order of a menu so the overflow is not hidden and it expands over the spitter?

This post: http://www.kendoui.com/forums/ui/menu/menu-z-index.aspx and http://www.kendoui.com/forums/ui/menu/menu-splitter-hides-the-pop-ups.aspx don't work. All this does is cause scrollbars to show on the splitter pane containing the menu, it doesn't actually make the menu items expand over the top of the splitter.
Audrey
Top achievements
Rank 1
 answered on 24 Sep 2012
2 answers
179 views
Hi,

1. From a webpage lets say(a.aspx), I have opened a kendo window(which is again a web page say b.aspx)
2. I have a close button inside b.aspx .
3. now once i click on the close button , the keno window should be closed.


Any suggestions.
Thanks in advance
Michael
Top achievements
Rank 1
 answered on 24 Sep 2012
0 answers
139 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
68 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
176 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
160 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
418 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
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
Drag and Drop
Application
Map
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
Hiba
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Max
Top achievements
Rank 1
Veteran
Iron
Alina
Top achievements
Rank 1
Rakhee
Top achievements
Rank 1
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Hiba
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Max
Top achievements
Rank 1
Veteran
Iron
Alina
Top achievements
Rank 1
Rakhee
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?