使用Ajax.BeginForm()<table> </table>追加行

时间:2009-05-28 12:20:35

标签: asp.net-mvc asp.net-ajax

我有一个HTML&lt; TABLE&gt;显示表格行中的项目列表。要将新项添加到项列表中,我有一个表单,使用Ajax.BeginForm通过AJAX将数据提交给我的控制器。一旦控制器上的动作完成,它就返回一个部分视图,其中包含要追加到我的表的新行的标记(例如&lt; TR&gt;&lt; TD&gt; .......&lt; / TD&gt;&lt; / TR&GT)。我的问题是如何在现有表中添加新行?

我在id为“userrightsgridheader”的头文件的顶部创建了一个,并指定了我的Ajax.BeginForm,如下所示:

<% using (Ajax.BeginForm(
                   "CreateUserRight",
                    new { workstationId = Model.Id },
                    new AjaxOptions
                    {
                        HttpMethod = "POST",
                        InsertionMode = InsertionMode.InsertAfter,
                        UpdateTargetId = "userrightsgridheader"
                    }
                ))
               {  %>

问题是这不起作用。有没有人对如何实现这个有任何想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以添加以下AjaxOption,当Ajax功能成功执行时,它会执行'jsfunction':

new AjaxOptions { OnSuccess = "jsfunction" };

您可以在jsfunction中添加tablerow。

<强>更新 您可以按如下方式定义jsfunction:

function jsfunction(ajaxContext) {
    //ajaxContext contains the responseText
}

AjaxContext定义如下:

AjaxContext ajaxContext = new AjaxContext(request, updateElement, loadingElement, ajaxOptions.InsertionMode);