0
我使用的MVCContrib主要用於分頁,排序和過濾方面。我的網格包含我們的郵件列表應用程序中的所有地址(僅限後端)。用戶可以刪除,激活和禁用列表成員,所以在每行上都有這些選項的操作鏈接。使用jQuery,我捕獲該點擊並執行其他操作,例如完成操作的顯示通知。執行行動後刷新MVCContrib網格
因此,我遇到的問題是在執行這些操作後如何刷新網格,以便用戶可以看到結果?在刪除時,我可以隱藏該行。當一個人激活/停用電子郵件時,我能做些什麼?只需使用jQuery來更新表中顯示狀態的值?
// Activate the email address
$(".ActivateLink").click(function() {
var id = $(this).attr("href");
var i = id.indexOf("#");
id = id.substring(i + 1);
$.ajaxSetup({ 'async': false });
$.post("/List/Activate", { "id": id }, function(data) {
$(".message").text(data.message).addClass("notice");
}, "json");
return false;
});
我的控制器操作:
//
// POST: /List/Activate
[HttpPost]
public ActionResult Activate(int id)
{
string message = String.Empty;
db.ActivateEventEmail(id, ref message);
return Json(new { message = message });
}
筆者認爲:
<%= Html.Grid(Model.EmailAddressList).Columns(column => {
column.For("ImageActions").Named("").Sortable(false);
column.For(a => (a.Email.Length > 30) ? String.Format("{0}...", a.Email.Substring(0, 30)) : a.Email).Encode(true).SortColumnName("Email").Named("Email Address");
column.For(a => (a.ContactName.Length > 30) ? String.Format("{0}...", a.ContactName.Substring(0, 30)) : a.ContactName).Encode(true).SortColumnName("ContactName").Named("Contact Name");
column.For(a => a.SignupDate).Named("Signup Date").Format("{0:d}").Attributes(@style => "text-align: right;");
column.For(a => a.AccountStatus ? "Yes" : "No").SortColumnName("AccountStatus").Named("Active").Attributes(@style => "text-align: center;");
}).Sort(Model.GridSortOptions)
.Attributes(@class => "table-list", style => "width: 100%;").RowAttributes(c => new MvcContrib.Hash(@class => "gridrow"))
%>
那麼你發送整個電網背部和第四之間的客戶端和服務器之間?除了我想在網格中添加一個新行外,我和你在同一條船上。所以我的「refreshTable」方法只是從響應中添加模型,而不是替換整個網格。 – Buzzer 2012-03-29 06:41:48