【问题标题】:MVC3 Ajax Checkboxes gridMVC3 Ajax 复选框网格
【发布时间】:2012-07-17 08:49:06
【问题描述】:

我想做一个包含产品/类别的复选框网格。产品和类别可以是动态的(我的意思是,产品/类别的数量可以改变)。当我选中一个框时,我能够创建网格并保存数据。我的问题是正确使用ajax。

这是我的模型:

 public class ProductModel
 {
    public List<List<ProductItemGrid>> ProductItemGrid { get; set; }
    public List<string> ProductNameList { get; set; }
    public List<string> CategoryNameList { get; set; }

}

public class ProductItemGrid
{
    public int ProductID { get; set; }
    public int CategoryID { get; set; }
    public bool ProductInCategory { get; set; }
}

我的部分观点,(我使用列表列表来填充它):

@for (int i = 0; i < Model.ProductNameList.Count(); i++)
{
<tr class=@(i % 2 == 0 ? "even" : "odd")>

    <td style="font-weight: bold;">
        @Html.DisplayFor(x => x.ProductNameList[i])
    </td>
    @foreach (var result in Model.ProductItemGrid[i])
    {
        string ckBoxName = result.ProductID.ToString() + result.CategoryID.ToString();
        <td id='<%=ckBoxName%>'>
        @using (Ajax.BeginForm("UpdateProductItem", "Product", new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = ckBoxName }))
        {

                @Html.Hidden("p_CategoryID", result.CategoryID)
                @Html.Hidden("p_ProductID", result.ProductID)
                @Html.CheckBox("<%=ckBoxName%>", result.ProductInCategory, new { onclick = "test" })

        }
        </td>
    }
    </tr>
}

现在视图包含一些错误,但我相信你明白了主要思想。使用 ajax 表单,我可以更新我的数据库,但我的主要问题是在完成 C# 部分后更新复选框本身。另外,我试图命名

以便能够通过给他一个名称作为 ProductID_CategoryID 来更新 ckbox(这样我更容易知道我在更新哪个)。谢谢。

【问题讨论】:

    标签: ajax asp.net-mvc-3 grid checkbox jscript


    【解决方案1】:

    你有没有查看http://knockoutmvc.com它与 ASP.NET MVC3 的集成非常好,它看起来像是可以帮助你轻松实现所需功能的库类型。

    【讨论】:

    • 看起来很酷,但我在其他项目中使用了一些库,它并不能帮助我理解 javascript 的整个复杂性。这个例子是为了让我更好地理解 ajax 方法。谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 2012-05-05
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2012-10-02
    • 2015-10-03
    相关资源
    最近更新 更多