选择之后,不能再选择。分配之后,不能再分配

参考下图来理解标题:


即是说模块被分配之后,不能让用户再选择来分配。

分析:
模块是存储在一张表中。从数据库读取出来,绑定在checkboxList上。
分配的数据,是存在另一张表中。
这样子数据库有2张表存储这些数据。

 Ok,为checkbox list准备的数据源:

上图中IsDistribution是在两个张均不存在的字段,是在SELECT时,我们添加上去的。它是根据分配后的表的数据来判断,分配后为1,没有分配的为0:
那在数据库怎样判断呢?使用表关联即可。
先这样子,使用LEFT JOIN :



上图中的#um即是第二张分配表,如果没有被分配的,外键值为NULL。
um.[Module_nbr] as [IsDistribution]

只要判断NULL即可。如果为空即是没有被分配的,我们再改一下SQL语句:


有了数据源之后,在ASP.NET MVC的Razor就可以这样去写了:

好了,超简单的实现方法。

最终的效果:

原文地址:https://www.cnblogs.com/insus/p/6097536.html