我有一个包含两个单选按钮的页面。在单击每个单选按钮时,我必须在div中加载不同的可编辑网格(使用ajax)。
首次加载页面时,将预先检查“radio1”,并将grid1加载到容器div中。当我点击“radio2”时,它应该将不同的网格加载到同一个容器div中。
我创建了两个单独的局部视图来加载不同的网格,并在这些局部视图中完成网格设置。在单选广播中,我执行ajax调用以将局部视图的结果加载到容器div中。
首次加载页面时,grid1已加载且可编辑,但当我单击任何单选按钮时,它会正确加载网格,但会失去编辑功能(网格变得不可编辑)。
我花了很多时间在这上面却找不到问题。请帮忙。
由于
修改
以下是简化代码......
MVC控制器
public ActionResult Details()
{
//This returns the main page
return view();
}
public ActionResult RenderGrid1()
{
return PartialView();
}
public ActionResult RenderGrid2()
{
return PartialView();
}
RenderGrid1部分视图
<div id="jqGrid">
<table id="grid"><table>
</div>
<script>
$(document).ready(function () {
//JS to initiate jqGrid 1
));
</script>
RenderGrid2部分视图
<div id="jqGrid">
<table id="grid"><table>
</div>
<script>
$(document).ready(function () {
//JS to initiate jqGrid 2
));
</script>
详细信息视图
<input type="radio" name="group" id="group1" checked>Load Grid 1 <br>
<input type="radio" name="group" id="group2">Load Grid 2 <br>
<div id="dvContainer">
@Html.Action("RenderGrid1")
</div>
<script>
$(document).ready(function () {
$("#group1").click(function(){
loadGrid("RenderGrid1");
});
$("#group2").click(function(){
loadGrid("RenderGrid2");
});
var laodGrid = function(action){
$.ajax({
type: "POST",
url: action,
async: false,
cache: false,
success: function (result) {
$("#dvContainer").html(result);
}
});
}
}
</script>
部分视图的jqGrid配置
$("#grid").jqGrid({
caption: "",
colNames: ['Id', 'Name', 'Code'],
colModel: [
{ name: 'Id', index: 'Id', hidden: true },
{ name: 'Name', index: 'Name', editable: true, edittype: "text" },
{ name: 'Code', index: 'Code', editable: true, edittype: "text" }
],
other properties....
});