I want to make a row field readOnly after the row of the grid was created. I want to make it work both in editMode 'row' and 'rowedittemplate'. How can I do this?
You need to configure the column settings in the updating feature and set readOnly to true for the updating of the column you want to be non-editable:
$(element).igGrid({
features: [
{
name: "Updating",
columnSettings: [
{ columnKey: "Key", readOnly: true }
]
}
]
});
Here's the API docs.
Related
I am trying to add a pdf with form fields document to a docusign envelope using inlineTemplates, everything is good, docusign is able to parse the textTabs, signHereTabs etc, but the problem is radioGroupTabs, when I send the envelope, these fields are locked.
The only way I got those fields unlocked/fillable is by assigning first signer as defaultRecipient.
tabs: {
textTabs: [
{
tabLabel: `ESIG_ADVISORDOC_SIGNER1_\\*`,
},
],
radioGroupTabs: [
{
groupName: `ESIG_ADVISORDOC_SIGNER1_TCP_ADD_REM`, // didn't work
},
{
groupName: `ESIG_ADVISORDOC_SIGNER1_\\*`, // didn't work
}
]
}
I tried multiple things, example use tabLabel in place of groupName for the radioGroupTabs etc etc, nothing worked. Tried with a wildcard, tried with the exact fieldName, tried with both.
Can someone please suggest a solution?
Tabs have an optional field locked. I believe the default for that value should be false but you could try explicitly setting locked to false to force the tabs to be editable.
Finally after two days of trials and errors, found that we need to pass locked: false in the radios attribute.
tabs: {
textTabs: [
{
tabLabel: `ESIG_ADVISORDOC_SIGNER1_\\*`,
},
],
radioGroupTabs: [
{
groupName: `ESIG_ADVISORDOC_SIGNER1_\\*`,
radios: [
{ locked: 'false' }
]
}
]
}
Docusign should be better with their documentation.
Is there a way to disable the right button like here in the contacts app?
Set the enabled option to false.
rightButtons: [
{
id: 'fertigBtn',
text: 'Fertig',
enabled: false
}
]
I have the following components
my-app: contains a layout-toolbar and a layout-container
layout-container: contains one or more layout-pages
layout-page: contains one or more layout-elements
layout-element: component to visualize certain data, f.e. a styled numeric label.
The layout-container has an options property that is bound to the apps layoutContainerOptions property like this:
<layout-container .options="${this.layoutContainerOptions}"></layout-container>
layoutContainerOptions is initialized like this:
this.layoutContainerOptions = {
name: "Project 1",
pages: [
{
name: "Page 1",
elements: [
{
name: "Element 1",
color: "red"
},
{
name: "Element 2",
color: "yellow"
}
]
},
{
name: "Page 2",
elements: [
...
]
}
]
}
This correctly renders a layout with two pages and some elements. Now the user should be able to use the toolbar to interactively edit selected elements, f.e. to change the color of an element. How do I propagate a property change to a selected child element?
I could use something like
this.layoutContainerOptions.pages[0].elements[0].color = "blue";
this.layoutContainerOptions = Object.assign({}, layoutContainerOptions, { });
This works but seems to be very inefficient because there may be hundreds of elements which all get re-rendered (or don't they?)
What is the most efficient way to update properties of individual child elements?
to replace raw values I use "lookup" feature of Tabulator.
But "select" and "autocomplete" behaves differently
var country_list = {
1: "Germany",
2: "Ukraine",
3: "Canada",
};
//Build Tabulator
var table = new Tabulator("#example-table", {
height:"311px",
data: tabledata,
columns:[
{title:"ID", field:"id", width:40 },
{title:"Country", field:"country_id", width:130,
editor:"select",
editorParams:{values: country_list, },
formatter : "lookup",
formatterParams : country_list,
},
{title:"Country2", field:"country_id", width:130,
editor:"autocomplete",
editorParams:{values: country_list, },
formatter : "lookup",
formatterParams : country_list,
},
],
});
Try to edit Country and Country2 fields:
JSFiddle
"select" displays label, but "autocomplete" displays raw value.
Is this behavior consistent?
If yes, how to force Tabulator to hide raw value?
This is a bug, a fi has been pushed to the 4.2 branch which should be released shortly
I have the following data :
From SELECT c.addresses[0] address, [ c.name ] filenames FROM c
[
{
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [
"File 01.docx"
]
},
{
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [
"File 02.docx"
]
},
{
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [
"File 03.docx"
]
}, ....
The address field is the key, I have an index with a field defined as follows :
new Field()
{
Name = "filenames",
Type = DataType.Collection(DataType.String),
IsSearchable = true,
IsFilterable = true,
IsSortable = false,
IsFacetable = false
},
As you can see, I create an array for the filenames with [ c.name ] filenames.
When I index the data displayed above, the index contains one row in the filenames collection, that row is the last one that has been indexed. Can I make it add to the collection (merge) rather than replace?
I am also looking at solving this with the Query, but CosmosDB does not support a subselect (yet) and a UDF can only see the data that's passed into it.
Fundamentally, the way you have structured your Cosmos DB collection makes this scenario unworkable because Azure search does not support merging into a collection.
Consider changing your design to so that address is a key (that is, unique) in the collection, and all filenames are gathered in a single document per address:
{
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [ "File 01.docx", "File 02.docx", "File 03.docx", ... ]
}
Also, please add a suggestion on Azure Search UserVoice site to add support for merging collections, which would make your scenario easier to achieve.