0

我正在使用 MVC 3 + Razor。我有一个名为 Details 的 MVC 视图。我从 SQL Server 数据库表中检索并显示了详细信息数据。我有一个可点击的<a/>列“类型”。单击 Type Anchor 链接将显示一个 Jquery 弹出窗口。

| type      |   date   | completed |  
|________________________________ _|  
|           |          |           |  
| sample    | 1/1/2012 |           |  
|(Clickable)|
  1. 如何从 SQL Server 的表中检索与 Clicked 元素相关的整个行数据,并在 Jquery Dialog 上显示该数据。每个类型字段都有一个与之关联的 ID。

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

寻找代码示例或链接或教程 - 无法找到任何具有编辑和添加功能的东西。

4

2 回答 2

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>

单击 Clicktable 时调用 javascript 函数,例如,

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);
}
于 2012-08-07T08:50:31.633 回答
0

I am not familiar with asp.net or razor, but I do know that with jQuery you would first make an ajax request to the server where a script would load the sql data, convert it to a JSON string, and send it back to jQuery. jQuery then can parse the JSON and populate the fields.

Dealing with dates in jQuery (javascript in general) can be tricky because it's based on the client's machine and not the server's. I would suggest running with ajax again, letting the server check against the current date and handling the database update.

于 2012-04-05T16:34:47.580 回答