如何将单个记录从列表传递到MVC中的Dialog,并允许用户接受或拒绝使用对话框内的按钮传递的记录

时间:2016-01-29 11:44:39

标签: c# jquery asp.net-mvc

我正在努力解决这个问题,我有一个MVC应用程序将CSV文件上传到少数,然后我将数据列表传递给存储过程,该存储过程对CSV文件中的记录执行验证,我现在需要将列表中经过验证的响应单独写入对话框,以便用户可以接受或拒绝记录,然后单击“接受”转到下一条记录,依此类推,如果单击拒绝按钮,则只需关闭page(我在Jquery对话框中使用了一个简单的关闭函数)。我正在努力将数据传递到对话框,因为单击接受然后移动到下一条记录并显示在对话框中。

请参阅下面的代码,看看我到底有多远。

我有2个视图,一个是只上传CSV并显示数据列表的索引,然后在View上有一个名为Validate Claims的按钮,打开对话框,这就是我的问题所在。

这是我的索引视图:

!empty

这是我的控制器:

    @{
    ViewBag.Title = "Home Page";
    }


<script src="~/Scripts/jquery-ui-1.11.4.min.js"></script>
<script src="~/Scripts/jquery-ui-1.11.4.js"></script>
<link href="~/Content/themes/base/dialog.css" rel="stylesheet" />


@using CSVSupplierClaims.Models
@model List<CSVSupplierClaims.Models.SupplierClaimsUploadDisplayList>



<button type="submit" id="validateClaims" value="Validate Claims" size="5" data-url="@Url.Action("ValidateClaims", "Home", new { area = "supplierClaimUplaod" })">Validate Claims</button>

<input type="submit" value="Import Claims to CRM" size="5" />

<div id="dialog" title="Claims Validation">
    Accept or Reject The following record
    <p>
        <table>
            <tr>
                <td>ST Key</td>
                <td>Supplier Claim</td>
                <td>Orig Inv</td>
                <td>Error</td>
                <td>System Cost</td>
            </tr>
            @if (Model != null)
            {
                foreach (var claim in Model)
                {
                    <tr>
                        <td>@claim.ST_Key</td>
                        <td>@claim.SupplierClaim</td>
                        <td>@claim.OrigInv</td>
                        <td>@claim.Error</td>
                        <td>@claim.SystemCost</td>
                    </tr>
                }
            }
        </table>
    </p>
</div>


<script type="text/javascript">
    $(function () {
        $("#dialog").dialog({
            autoOpen: false
        });

        $("#validateClaims").click(function () {
            $("#dialog").dialog("open"),
                       $("#dialog").dialog({
                           resizable: true,
                           height: 300,
                           width: 500,
                           modal: true,
                           closeOnEscape: true,
                           buttons: {
                               "Accept": function () {
                                   **//This is where my question lies**

                                   $(this).dialog("close");
                                   $(this).empty();
                               },
                               "Reject": function () {
                                   alert('Validation cancelled..');
                                   $(this).dialog("close");
                               }
                           }
                       });
        });
    });

</script>



<div class="CSSTableGenerator">
    <table>
        <tr>
            <td>No.</td>
            <td>Action</td>
            <td>LineNo</td>
            <td>TotalClaim</td>
            <td>ClaimReference</td>
            <td>Currency</td>
        </tr>
        @if (Model != null)
        {
            int counter = 0;
            foreach (var c in Model)
            {
                counter++;
                <tr>
                    <td>@counter</td>
                    <td>@c.Action</td>
                    <td>@c.LineNo</td>
                    <td>@c.TotalClaim</td>
                    <td>@c.ClaimReference</td>
                    <td>@c.Currency</td>
                </tr>
            }
        }

    </table>
</div>

<form action="" method="post" enctype="multipart/form-data">
    <table style="margin-top:150px">
        <tr>
            <td>
                <label for="file"> Filename</label>
            </td>
            <td>
                <input type="file" name="file" id="file" />
            </td>
            <td>
                <input type="submit" value="Upload" />
            </td>
        </tr>
    </table>
</form>

为了重申我的问题,我需要验证声明按钮单击事件将我的列表作为单个记录传递到对话框,一旦用户单击接受代码,应将该记录添加到新列表,然后对话框必须显示下一条记录。我对服务器端代码感到满意,我正在努力与客户端Jquery一起阅读我的列表并将记录传递给对话框。任何帮助将不胜感激。谢谢

0 个答案:

没有答案