我遇到了一个我在MVC中创建的webgrid的问题。网格在部分视图中生成,该视图通过ajax表单更新,以便不必重新加载整个页面。局部视图本身由控制器方法返回。我还使用了一个简单的jquery脚本来突出显示所选行并将其相关值复制到表单中。该脚本工作正常,除了我去另一个页面或排序网格。选择该操作后,jquery似乎被忽略,因为.click函数无法激活。
如果我搜索新值,网格会再次生成并且无故障地工作,直到我再次尝试前往另一个页面或订购网格。我将包含ajax表格:
@using (Ajax.BeginForm("webby", "Home", new AjaxOptions {HttpMethod = "Get", InsertionMode = InsertionMode.Replace, UpdateTargetId = "target" }))
{
<div>
House Number
<input type="text" id="houseno" name="houseno" />
</div>
<div>
Location
<input type="text" id="location" name="location" />
</div>
<p>
<input type="submit" value="Search" />
</p>
}
<div class="target" id="target">
</div>
我也有webgrid(在局部视图中):
@{
WebGrid grid = new WebGrid(Model, rowsPerPage: 10, ajaxUpdateContainerId: "grid");
}
<div id="grid">
@grid.GetHtml(
columns: grid.Columns(
grid.Column("FarmName", header: "Grower Name"),
grid.Column("HouseNo", header: "House Number"),
grid.Column("Flock_Age", header: "Flock Age"),
grid.Column("KillDate", header: "Sample Date"),
grid.Column("breedcode", header: "Breed Code"),
grid.Column("PlantNo", header: "Location")
)
)
</div>
这是用于选择行的脚本(显然脚本在局部视图中):
<script type="text/javascript">
$(document).ready(function () {
$("tr").click(function () {
if (this.cells[2] != null)
<!--This if statement prevents the bottom row from throwing an error when clicked-->
{
$(this).css('background', 'yellow');
$('#FLOCK_AGE').val(this.cells[2].innerHTML);
$('#SMPL_DATE').val(this.cells[3].innerHTML);
$('#GROWER_NAME').val(this.cells[0].innerHTML);
$('#HOUSE_NUMBER').val(this.cells[1].innerHTML);
$('#BREEDCROSS').val(this.cells[4].innerHTML);
$('#LOCATION').val(this.cells[5].innerHTML);
}
});
});
</script>
选择新页面或网格排序时是否存在部分视图未被调用的问题?为什么这会在部分视图中删除jquery脚本?我仍然非常环保网络开发,所以请原谅任何天真。
感谢您的时间。