【发布时间】:2015-05-21 01:14:39
【问题描述】:
以下是我的观点...您可以看到网格是从视图模型中填充的
for (int i = 0; i < Model._effGrid.Count; i++)
{
<div id="gridRow@(i)" class="row">
<div class="col-md-1">
@Html.CheckBoxFor(m => m._effGrid[i].chkBox, new { id = ("chkGridRow" + i), @unchecked = true })
@*<input type="checkbox" id="chkBox@(i)" />*@
</div>
<div class="col-md-2">
@Html.DropDownListFor(m => m._effGrid[i].iterationId, new SelectList(Model.Iterations, "Value", "Text", Model._effGrid[i].iterationId), new { id = ("drpIteration" + i) })
</div>
<div class="col-md-2">
@Html.DropDownListFor(m => m._effGrid[i].PhaseID, new SelectList(Model.Phases, "Value", "Text", Model._effGrid[i].PhaseID), new { id = ("drpPhase" + i) })
</div>
<div class="col-md-2">
@Html.DropDownListFor(m => m._effGrid[i].ActivityID, new SelectList(Model.Activities, "Value", "Text", Model._effGrid[i].ActivityID), new { id = ("drpActivity" + i) })
</div>
<div class="col-md-2">
@*<input id="dtEffort@(i)" type="date" class="textwidth90percent texthieght10percent" value="@Model._effGrid[i].EffortDate.ToString("yyyy-MM-dd")">*@
@*@Html.EditorFor(m => m._effGrid[i].EffortDate)*@
@Html.TextBoxFor(m => m._effGrid[i].EffortDate, Model._effGrid[i].EffortDate.ToString("yyyy-MM-dd"), new { type = "date", @class = "textwidth90percent texthieght10percent" })
</div>
<div class="col-md-1">
@Html.TextBoxFor(m => m._effGrid[i].Hours, new { id = ("hours" + i), @class = "textwidth60percent" })
</div>
<div class="col-md-1" style="visibility: hidden">
@Html.TextBoxFor(m => m._effGrid[i].effortid)
</div>
</div>
counter = i;
}
}
用户可以选择检查 chkboxes 并单击上面的按钮...在 UPON 上,我需要检查已选中的复选框并获取相应的数据以在 ajax 调用中发送。
<script type="text/javascript">
$(document).ready(function () {
$("#SaveEffortChanges").click(function (e) {
debugger;
@foreach (var item in Model._effGrid)
{
var it = item;
if (it.chkBox)
{
UpdateEffortDetail(it.effortid, it.iterationId, it.ActivityID, it.PhaseID, it.EffortDate, it.Hours);
}
}
//$("#EffortForm").submit(e.data)
});
}
);
在上面的js函数中UpdateEffortDetail只是一个ajax调用。 我希望现在问题更清楚了,如果您需要进一步的输入,请告诉我。
【问题讨论】:
-
你究竟要实现什么?有什么特别的输出吗?
-
我实际上拥有的是一个从视图模型填充的网格,网格中的每一行都会有一个复选框...单击底部的更新按钮,我正在尝试更新与选中的复选框相对应的网格中的编辑数据。我个人发现 razor 语法非常方便,因此可以解释上述方法。如果需要进一步说明,请告诉我
-
你想要的输出是什么?您想成为客户端的哪些位?
item.chkbox是否适用于任何元素? -
在这种情况下,您将无法使用 Razor 模型,因为该模型将在页面加载时用于渲染网格,并且您的要求是处理单击更新按钮后检查的行点击更新按钮,剃须刀型号将不可用。
-
@marcGravell 是的,预计 item.chkbox 将检查一行或多行,基于这些行将触发 ajax 调用。
标签: c# jquery razor model-view-controller