2012-04-05 80 views
0

我使用MVC 3 + Razor。我有一个名为Details的MVC视图。我从SQL服务器数据库表中取回并显示了详细信息数据。我有一个可点击的<a/>列“类型”。点击Type Anchor链接显示一个Jquery Popup。使用jQuery对话框在mvc视图中编辑表格

| type  | date | completed | 
|________________________________ _| 
|   |   |   | 
| sample | 1/1/2012 |   | 
|(Clickable)| 
  1. 如何Retreive在SQL服务器与点击的元素从表中整行数据,并显示该数据的jQuery的Dialog.Every类型字段都有一个与之关联的ID。

  2. 我在Jquery Dailog上有一个复选框。如果选中,则视图中的已完成列必须包含当前日期,并且必须更新数据库表(其中包含日期字段)。

寻找代码示例或链接或教程 - 没有找到任何编辑和添加功能。

+0

你签出的jqGrid? http://trirand.net/default.aspx可能有你正在寻找的功能。 – 2012-04-05 16:31:50

回答

0

我不熟悉asp.net或剃须刀,但我知道使用jQuery时,您首先会向服务器发出ajax请求,其中脚本将加载sql数据,将其转换为JSON字符串并发送它回到了jQuery。 jQuery然后可以解析JSON并填充字段。

在jQuery中处理日期(通常为javascript)可能会非常棘手,因为它基于客户端的机器而不是服务器。我会建议再次运行ajax,让服务器检查当前日期并处理数据库更新。

0

使用局部视图弹出,根据您的需求制作UI,并将行细节作为模型传递给此局部视图。

你的表HTML的样子,

<tr id="@model.rowid"> 
     <td> 
      sample 
      (<a onclick="RowDetails(@model.rowid)">Clickable</a>) 
     </td> 
     <td> 
      1/1/2012 
     </td> 
     <td> 
     </td> 
    </tr> 

调用JavaScript功能上Clicktable喜欢的点击,

function RowDetails(RowId) { 
     $("#divDetails").load('/yourController/rowdetail', { id: RowId }).dialog({ 
      modal: true, 
      title: "Row Detail", 
      height: 400, 
      width: 600, 
      buttons: { 
       "Ok": function() { 
        var isComplete = 0; 
        if ($("#rowComplete").is(":checked")) { isComplete = 1; } 
        $.get("/yourController/RowComplete", { id: RowId, isChk: isComplete }, function (d) { 
         $("#" + RowId).before(d).remove(); 
         $("#" + RowId).hide().fadeIn('slow'); 
        }); 
        $(this).dialog('close'); 
       } 
      } 
     }); 
    } 

和控制器一样,

public ActionResult rowdetail(int id) 
{ 
// code to get row from databse 
// return this row as object to partial view 
return("partial view for row details", Object); 
} 

public ActionResult RowComplete(int id, int chk) 
{ 
// code to update row from databse 
// return this row as object 
return("pass updated row", Object); 
}