ExtJs Combobox with multiple values in one selection - extjs

I m new to ExtJs. I was wondering if there's some way wherein i can display multi-line combo-box in ExtJS in a way that for eg : when i select one item, that item may contain 2 values i.e ID and Name., and both the items are considered as one selection, and not with Ctrl+Select way.

Sure there is. Look at the tpl config option of ExtJS ComboBox. You can define a custom template where you may utilize any fields from the Store of the ComboBox as you wish. (See the example included for the tpl config option from ExtJS API documentation that I linked.)

Related

Codename One ComboBox how to highlighting already selected value

We are able to create ComboBox and populating data too. But we need to highlighting already saved values. Can you please suggest code for this.
Our requirement is if Combobox has 1,2,3. If I select 2 and save. We need to set the combo box value 2 in such way that when we open the Combobox need to display this 2 as highlight value along with 1,2,3 values.
Simply same as select box option selection.
I would generally recommend avoiding ComboBox altogether.
Assuming this isn't an option you will need to define a renderer and disable the OS specific 2 render mode using a theme constant:
otherPopupRendererBool=false

ExtJS grid-like custom control

I need to implement grid like control that utilizes some complex custom widgets for viewing and displaying rows. Just like this one:
The key point here is that controls in the right column depend on the value selected in the combobox from the left column.
Does anyone know what is the best way to implement it using ExtJS 5.0 components? Should I create my own widgets to display row data that will serve as both custom renderers and editors?
I would use a beforeedit function which changes the editor of the right column (setEditor) to the required widget type depending on what is set in the left column. If you use Editing (RowEdit) plugin instead of CellEditing, you would also have to setEditor in the left column's change or select event.
This is the easiest way, but it won't show all editors at once, of course.
To have all editors displayed at once, I would make a new field containing multiple fields. You can add multiple instances of these fields to a fieldset, container, panel or form at runtime.

How to make an extjs grid a form field?

I have a requirement to create a custom form field that is basically an extjs grid. The user should be able to click a result in the grid. This clicked result should then become the fields value. Also, this field needs to extend Ext.form.field. Here's what I got:
Ext.define('MyApp.field.Grid', {
alias: 'widget.GriedField',
extend: 'Ext.form.field.Base',
I'm a lot of confused on how to add a grid to form field base. Looks like form field base's template expects HTML. How do I get it accept a component?
If you just need to select a value from a list of items. Why not use a combobox?
If you need to select multiple items. There is an example of how to use the MultiSelect ux component in the documentation examples.
http://docs.sencha.com/ext-js/4-1/#!/example/multiselect/multiselect-demo.html
If you really must use a grid. Then I wouldn't bother with trying to create a field type and cause yourself grief.
Add a listener to your grids selectionchange event and update a hidden field in your form with the value you want from the grid. Job done.
I ended up putting the grid on a form indirectly through creation of dependencies on my model.
My model has master-detail, which the detail is just a store reference. I found that using associations did not work for me.
So, in adding a field to a form, I have something that manages changed events for the model (master record) and the detail stores.

How to dehighlight the row when checkbox is checked in extjs grid

I am using extjs4.1 grid in aspnet mvc3 application.
I have used checkboxrowselection model.
the issue is :
once the checkbox is checked,the row should not get highlighted in the extjs grid.
How can i acheive this.
please help
The purpose of the checkbox selection model is to select rows. In extjs, selecting a row means to specifically highlight it, what you want is just a logical selection. You should be using the user extension: Ext.ux.CheckColumn that ships with the core library.
To gather the rows, you would need to do a query on the store where the models property is set to true for the data index you define on the checkcolumn.

2 level combobox

Is it possible to create multilevel combobox using ExtJS 4.0? I mean, that it should have, for example, these options:
This
Month
Year
Last
Month
Year
This and Last options should be not selectable.
This absolutely is possible.
You can define a template for your combobox which defines how the row is displayed. What you can do is have the store have a field which defines the type of record, such as a boolean header field.
In your xTemplate which you pass into the Combobox's tpl config, you can check the value of that field and if it's a header apply separate styling. Then, add a beforeselect listener and if the record's header field is true, return false.
I saw something similar on the Ext website, but can't locate it right now. If you need more details, let me know.

Resources