Updating a table field after editing.
Updating a table field after editing.
Hi
In a table in my database I store some key-value pairs.
When my dataTable is being rendered I show only the value.
[code]
oTable = $('#tbl').dataTable({
"aoColumns": [
{ "mData": "Mod" }
{ "mData": "Other" }
],
[/code]
but the server returns both "ModId" (the key) and "Mod" (the value) and the "other" data
On editing, the field is a "select" which is initialized by that key-value table from db. It is initialized as needed, so the selected value is exactly the same as shown in the dataTable, because initialization is by that key, passed before.
[code]
$(document).ready(function () {
editor = new $.fn.dataTable.Editor({
"ajaxUrl": "Data.aspx",
"domTable": "#tbl",
"fields": [
{ "label": "Mod", "name": "ModId", "type": "select", "ipOpts": getModList() },
{ "label": "other", "name": "Other" },
]
});
[/code]
After clicking "update" in the editor I have the following error
"DataTables warning tableId='tbl' requested unknown parameter 'Mod' from the dataSource for row 5"
And, as rendered, the 'Mod' value turns empty. Though the data is updated and after a refresh I have the new value shown.
Please help me solve the issue.
How can i connect between the value selected in the editor and the new value shown in dataTable right after updating?
In a table in my database I store some key-value pairs.
When my dataTable is being rendered I show only the value.
[code]
oTable = $('#tbl').dataTable({
"aoColumns": [
{ "mData": "Mod" }
{ "mData": "Other" }
],
[/code]
but the server returns both "ModId" (the key) and "Mod" (the value) and the "other" data
On editing, the field is a "select" which is initialized by that key-value table from db. It is initialized as needed, so the selected value is exactly the same as shown in the dataTable, because initialization is by that key, passed before.
[code]
$(document).ready(function () {
editor = new $.fn.dataTable.Editor({
"ajaxUrl": "Data.aspx",
"domTable": "#tbl",
"fields": [
{ "label": "Mod", "name": "ModId", "type": "select", "ipOpts": getModList() },
{ "label": "other", "name": "Other" },
]
});
[/code]
After clicking "update" in the editor I have the following error
"DataTables warning tableId='tbl' requested unknown parameter 'Mod' from the dataSource for row 5"
And, as rendered, the 'Mod' value turns empty. Though the data is updated and after a refresh I have the new value shown.
Please help me solve the issue.
How can i connect between the value selected in the editor and the new value shown in dataTable right after updating?
This discussion has been closed.
Replies
Are you able to link us to the page you are working on so we can look at it directly and resolve the issue?
Also, I don't have a record of an Editor license for your account, either a trial or purchased license. Could you tell me how you are using Editor so I can update my records and provide the appropriate level of support.
Regards,
Allan
Secondly, I'm working on an editor provided by my superior. So my account is not linked to whatever license or trial it has (I think its trial though).
It's very problematic for me to link you to the page because, it's intranet app.
I can provide other code details if you need, and here is debugger output (preedit)
http://debug.datatables.net/anisah
Also here is the stored procedure which returns the data as I said before.
[code]
select
t1.Value as Mod,
t1.Id as ModId,
t2.Other
From t1 inner join t2 on t1.Id = t2.ModId
ORDER BY t2.Other
[/code]
I also wanted to create a postedit output but something seems to go wrong there, and the debugger doesn't work, it stops at:
[quote]DataTables debug bookmarklet
Creating debug information...[/quote]
Thank you in advance...
[code]
$(document).ready(function () {
editor = new $.fn.dataTable.Editor({
"ajaxUrl": "Data.aspx",
"domTable": "#tbl",
"events": {
"onPreEdit": function (json, data) {
data.Mod = getEnumValueById(data.ModId);
}
},
"fields": [
{ "label": "Mod", "name": "ModId", "type": "select", "ipOpts": getModList() },
{ "label": "other", "name": "Other" },
]
});
oTable = $('#tbl').dataTable({
"aoColumns": [
{ "mData": "Mod" }
{ "mData": "Other" }
],
[/code]
But now as I come back from the editor my whole table changes it's alignment. Almost all columns width are changed even after I add "sWidth" I suppose it's because of the 'smart' width.
How can i turn that "'smart' width" down?
Thanks,
Allan