我需要讓jqGrid動態設置編輯&刪除網址,不僅取決於選中的行的ID,還取決於其他行的列的內容。 我發現的所有例子都涉及到僅暴露「id」字段的onclickSubmit。有小費嗎?jqGrid,根據行數據動態設置編輯/刪除網址
回答
編輯和刪除只有一個值:'editurl'。所以你只需要更新那個。你可以用setGridParam改變值editurl,像這樣:
$("#jqGridTable").setGridParam('editurl', 'myNewUrl/foo');
如果你想使用基於當前所選行的內容邏輯構建一個URL,然後做這樣的事情:
onSelectRow: function(id){
var rowData = $("#jqGridTable").getRowData(id);
// example logic
if (rowData['col1'] == 'foo' && rowData['col2'] == 'bar')
$("#jqGridTable").setGridParam('editurl', 'myNewUrl/foo/bar');
else
$("#jqGridTable").setGridParam('editurl', 'myNewUrl/foo');
}
我決定寫我的答案只是因爲傑克Feasel寫道「只有一個值編輯和刪除:'editurl'」在他的答案。我認爲有很多方法,最好的方法取決於其他要求。
通常發送到服務器的數據從樹份
- 類型等POST HTTP請求組成,PUT或DELETE
- 的URL,直到所述的部分「?」字符
- 直到'?'後面的URL參數字符
- HTTP請求的主體
每默認的jqGrid使用HTTP POST請求和放置信息有關的ID(或逗號在multiselect: true
殼體分離id列表)在體的HTTP的請求。如果您更改HTTP請求的類型,則可能必須更改從主體發送到服務器的信息的位置。在服務器端使用RESTful服務的情況下,應該使用HTTP DELETE進行刪除操作,並且在案例中具有空主體。
以任何方式使用一些回調函數(事件)來填充有關編輯或刪除行的其他信息。在回調函數內部,可以使用getRowData
或getCell
methods來獲取刪除行或編輯行其他單元的附加信息。有時取決於具有哪種方法的確切情況將不起作用。如果您嘗試從單元格中獲取信息,在編輯過程中將更改爲<input>
,<select>
或其他控件,將會出現內聯編輯的單元格編輯。如果還有其他技巧可以用作解決方法(例如參見here)。
其中一種方法是更改onSelectRow
中的URL,因爲可以刪除或編輯最後一個選定的行。我只會使用$(this)
而不是$("#jqGridTable")
。
另一種方法是更改onclickSubmit
(參見here和here)中的url
。
只有當需要更改URL部分直到'?'時,我推薦使用這兩種方式。字符。如果您只需要向url添加其他參數,如paramNama=paramValue
除以&
,則可以更好地使用editData或delData參數。參數可以包含功能。見here或here。
如果您需要更改機構的請求,您可以使用serializeDelData
或serializeEditData
。
所以有很多方法,哪一個最好的方法取決於你的其他要求。
我通常也會使用$(this)而不是$('#jqGridTable'),但是如果沒有完整的上下文,我認爲這會更令人困惑。 –
我想上面有一個錯字,。 應該
$("#jqGridTable").setGridParam({'editurl':'myNewUrl/foo/bar'});
不
$("#jqGridTable").setGridParam('editurl', 'myNewUrl/foo/bar');
- 1. JQGrid,編輯網址
- 2. jqGrid - 編輯數據
- 3. JQGrid動態行可編輯
- 4. jqGrid設置單元格數據,同時內聯編輯活動
- 5. jqgrid編輯刪除按鈕行
- 6. 根據動態字段更改網址
- 7. jqGrid:發送編輯數據
- 8. jqGrid的ASP.net C#添加編輯刪除數據庫
- 9. 如何添加/編輯/刪除MySQL數據庫與jqGrid的
- 10. 擾網址動態數據
- 11. jQgrid根據內容刪除值
- 12. 用於刪除/編輯Javascript數據的動態按鈕(CodeIgniter)
- 13. 在Silverlight數據網格中編輯,添加和刪除行?
- 14. 如何動態編輯mysql數據行?
- 15. 編輯數據網格行
- 16. JQGrid爲添加,編輯,刪除設置不同的URL
- 17. 根據條件刪除數據行
- 18. 根據列的動態數量刪除重複的行
- 19. jqGrid刪除行在編輯模式下,並通過其他數據
- 20. 根據日期自動編輯行
- 21. 如何根據最小截斷值動態刪除數據
- 22. jqgrid設置單元格可動態編輯假條件
- 23. jqgrid內嵌編輯:動態設置可正確編輯另一列的列
- 24. 根據您當前的網址進行動態鏈接
- 25. datatable:編輯和刪除數據
- 26. 數據表可編輯刪除
- 27. 根據當前位置刪除數據庫行
- 28. 動態數據到Jqgrid
- 29. 根據條件刪除行
- 30. 根據列值刪除行
+1我同意你的看法。我認爲只有這不是**唯一的方法**。 – Oleg
我從來沒有寫過「唯一的辦法」就是這樣做,儘管聽起來就像我說的那樣。當我說「你只需要更新那個」時,我的意思並不是它是完成這個的唯一手段,而是它是最簡單的方法。 –
好吧,我不會重複你的話,但'editurl'並不是唯一可以修改的參數。如果在[prmEdit],[navGrid](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:navigator#definition)的'prmAdd'或'prmDel'參數中使用'url'屬性, 'editurl'將被忽略。但我不想太過正式。我之前說過,你建議的方式應該工作,你寫了關於'getRowData'的用法,這似乎是問題的主要問題。 – Oleg