Asp.net mvc 2 ASP.NET MVC 2-控制建议
我是ASP.NETMVC2的新手,我需要一些关于在这种情况下使用最佳“控件”的建议。(我知道ASP.NET MVC并不真正使用服务器控件,但有许多附加组件,如) 这是我需要做的。我在数据库中有一个表,其中包含测试列表。我需要能够在视图中显示这些,并允许用户以某种方式(通过复选框或其他方式)选择它们 然后我需要能够确定选择了哪些项目 有人能告诉我实现这一目标的最佳方法吗 欢迎提供任何帮助/意见Asp.net mvc 2 ASP.NET MVC 2-控制建议,asp.net-mvc-2,Asp.net Mvc 2,我是ASP.NETMVC2的新手,我需要一些关于在这种情况下使用最佳“控件”的建议。(我知道ASP.NET MVC并不真正使用服务器控件,但有许多附加组件,如) 这是我需要做的。我在数据库中有一个表,其中包含测试列表。我需要能够在视图中显示这些,并允许用户以某种方式(通过复选框或其他方式)选择它们 然后我需要能够确定选择了哪些项目 有人能告诉我实现这一目标的最佳方法吗 欢迎提供任何帮助/意见 TIA。如果您使用客户端功能,它最终将主要由两部分组成: 可视化HTML 函数式Javascript 我
TIA。如果您使用客户端功能,它最终将主要由两部分组成:
Views/Shared
文件夹中TR
都会序列化该特定行中显示的对象的JSON。序列化可以通过编写自定义对象扩展方法来完成,因此您可以在之后对任何对象调用ToJson()
<tr data='<%= this.Model[0].ToJson()'>
<td class="actions"> <a href="#" class="action-select">Select</a> ... </td>
<td>...</td>
...
</tr>
选择
类,并且您的选择
对象将始终有选定的行(或者更好地说是其对象),您可以随意使用
附加说明
为什么我将选择设置为对象而不是数组?因为Javascript对象是一种关联数组,所以搜索特定元素比枚举其元素要快,因为它是一个普通数组。通过这种方式,我可以立即看到行是否被选中,并直接从中删除一个元素
结果
这样,您将有一个可重用的表,可以放在不同的页面上(因此与用户控件相似)。但是,如果您需要在页面中添加几个这样的表,您必须稍微调整它们,以便客户端功能不会在不同的表之间混合数据
$(function(){
var selection = {};
$(".actions a.action-select").click(function(evt){
evt.preventDefault();
var context = $(this);
var rowObj = $.parseJSON(context.closest("tr[data]").toggleClass("selected").attr("data"));
if (selection[rowObj.Id])
{
// deselect
delete selection[rowObj.Id];
}
else
{
// select
selection[rowObj.Id] = rowObj;
}
});