【问题标题】:Asp.net MVC - Variable amount of entriesAsp.net MVC - 可变数量的条目
【发布时间】:2011-01-30 07:30:07
【问题描述】:

我有一个视图,用户可以在其中输入银行交易。因此,他们选择一个帐户、一个收款人、一个类别(基于所选收款人的允许类别)和一个子类别(基于类别选择)和一个​​值。这是通过 JQuery 完成的,并且正在运行。

但是,每笔交易需要选择多个类别/子类别/金额(拆分交易)。

我可能想添加一个“网格”(所以,一个表格),以及类别/子类别/数量部分下的按钮,标记为“添加”,然后将选定的 Cat/SubCat/Amount 添加到一个网格,然后将现有选择清空,准备添加更多 - 允许用户根据需要添加任意数量的“数量”。

但是 - 怎么做?

在添加按钮上,我想我需要将 CategoryId、SubCategoryId 和 Amount 添加到列表?然后根据该列表,构建摘要网格?

我希望屏幕不闪烁。这是否必须通过 JQuery 完成?用 JQuery 建表,然后在提交表单时将猫/子猫/金额的列表发送回服务器?

【问题讨论】:

    标签: c# jquery asp.net-mvc


    【解决方案1】:

    您可能想查看jQuery tmpl 插件。此插件允许您构建客户端模板。这是您可能希望在您的网站上使用的东西。

    您为表格行定义一个模板,每次只需根据该模板添加一个新行。 我会给表格行中的每个表单项一个额外的索引变量(例如第一行的 name="CategoryID-1")。在插入新行时,您只需将当前索引发送到模板,并确保模板将当前索引添加到表单元素的名称中。

    然后在服务器端,你可以做一个简单的查询来获取所有的索引。

    int[] indices = Request.Form.AllKeys.Where(k => k.StartsWith("CategoryID-")).Select(k => Convert.ToInt32(k.Substring(11))).ToArray();
    
    foreach (int index in indices)
    {
        string cat = Request.Form["CategoryID-" + index.ToString()];
        string subcat = Request.Form["SubCategoryID-" + index.ToString()];
        //etc.
    
    }
    

    【讨论】:

    • 我对整个 JQuery 游戏是全新的 - 插件听起来像是我最好学习的东西。我会调查一下。
    • 现在了解 jQuery 非常重要。 tmpl 插件的文档可以在这里找到:api.jquery.com/jQuery.tmpl,在 jquery 网站上有一个教程部分:docs.jquery.com/Tutorials
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2018-05-20
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多