作者:龙文浩
开发工具与关键技术: MVC/C#
撰写时间:2019年4月13号
一个需求是要在表格中可以修改数据的需求,那么有些数据涉及到了需要通过外键在
其他表中查询数据,下面的例子是,商品表需要关联了尺码表、颜色表、类型表、单位表,
需求要在表格中修改数据,这几个涉及到外表的字段,就需要通过下拉框的选择项显示在
表格上:
我使用的是bsgrid表格绑定的数据,遵照它的规则使用w_render来转换一下就可以在表格中内嵌
Select 标签了;如下图:
1
代码如下:
2
使用bsgrid的w_render 就行了,然后我向表格中添加一个按钮,只有在点击按钮的时候
才会去查询下拉框的数据,这还是关乎性能的,每一行数据都具有下拉框,一千条数据,就
有4*1000个下拉框要绑定,那加载速度上肯定是会变慢的,所以还是需要用那条数据才去
查询那条数据;
我在每一个行的Select哪里都绑定了一个私有的id,所以就可以单独处理某一行;代码如下:3
点击按钮,识别出来某一行的点击事件之后,先给一个加载层,防止反复点击,反复去查询,
而导致的卡机,由于有四个Select,我总共提交了四次数据,同一个请求方法,根据不同的
参数,作为条件,而返回不同的结果:
再看服务器(控制器)上的代码:
我声明了一个类,类里面总共有8个字段,我原本打算使用类把数据全部放入类集合中,
但是那样的话还要在View层进行判断分割,而那些不是View应该有的工作,所以还是
决定采用请求4次的方式来进行查询:
4
总共返回四次,分别是尺码、颜色、单位、类型,
然后在View进行数据的接收:
也因为有四个Select所有要把数据绑定到正确的Select上:
5
我在最上面使用了$.ajaxSetting.async = false
来让代码同步执行;循环完毕之后,我赋予Select标签初始值,
初始值就是数据库中所对应的外键ID
下面查看第二种下拉框的绑定方式:
这种查询,是通过调用一个封装好的下拉框的查询的方法:6
这种逻辑个第一种基本上是一样的。7
控制器这边也是通过条件来查询,然后把结果返回个View然后View只负责把数据
显示给页面就可以了;
然后,在这个类里面放上要使用的字段,然后在view层传递一个方法过去服务器(控制器),