万变不里其中的“回填”操作

今天我想跟大家讲一下殊途同归的 “回填”,回填我在前面讲过,但那个时候所讲的回填是在整个修改模态窗体上的回填。回填:主要分为几种:
一、单表。直接查询整张表。回填整张表的数据。
二、多表。连表查询。再去查找所需要的字段。回填所需要的字段(数据)
三、单表,但是只回填或者所需要的字段里面发一个字段属性。
我们最常见的是点击修改,单表的数就会回填。这个是最为简单的。也是最基础。这里注意的就是要回填一个ID,根据那个去修改。
图一 图二
在这里插入图片描述

还有一种是类似于回填但是它并没有模态框。如下面修改菜品的数量。右侧是数据库里面内容的显示。
左侧是她原来表的子段。属于它自身表的字段只有一个,就是清单数量=右侧的数量。其他的字段都是通过连接别的表格所得到的数据。
在这里面要实现的功能就是点击单行的数据回填到框框里面去。通过点击数量变更更换它的数量。有些人就不知道该如何去实现。其实这也是回填的操作。只是少了一个模态框。道理还是那个道理。只是换了一种表达方式。换汤不换药。大家不要被欺骗了。
图一 图二
在这里插入图片描述
这里面的回填需要注意它的外键,他有四个外键也要回复过去,要不外键为空,回填过去之后会导致外键为空数据出不来。大家可以看我写的这个代码。
这个是div页面修改那里我所放置的四个隐藏域。





在数据请求的时候所放置的字段
$.post(“BackfillDetailed”, { DetailedListID: DetailedListID }, function (data) {
$("#Duantity").val(data[0].DetailedQuantity);
$("#DetailedListID").val(data[0].DetailedListID);//根据ID寻找哪
$("#LiquorCSmallID").val(data[0].LiquorCSmallID);//根据ID寻找
$("#LiquorCProjectID").val(data[0].LiquorCProjectID);//根据ID寻找 $("#LiquorCBigID").val(data[0].LiquorCBigID);//根据ID寻找 $("#LiquorCUnitID").val(data[0].LiquorCUnitID);//根据ID寻找哪个酒菜
$("#SetMealID").val(data[0].SetMealID);//根据ID
在控制器那里查询那里也要把它所有的字段查询出来,
在这里插入图片描述

这三个弄后后再去写数量变更代码就可以,数量变更可以看作是一个保存的按钮。保存的时候,页面也
要把它的外键查询出并且进行传递到控制器。同时,也要在控制器也要把它的外键全部查询出来。然后,回填到页面这样就可以了。
其实这整个过成也是一个修改操作,数据回填,修改,这里最大的麻烦就是她的外键太多,本身它就有四个外键,修改时候要再去回填它本身的一个就五个,在这里大家最容易犯错的地方就是,回填或者保存的时候,并没有把它的外键回填或者传递到控制器,与控制器自身也没查出来。这样回填数外键回填不了。修改保存的时候外键丢失,最后页面数据就会显示不出来,
四、还有一种类似回填。就是通过寻找编号再回填名称。再这里我做了一个下拉框回填的小示范
这种可以说是回填操作也以说是触发的绑定事件,不过用法都差不多。大家可以看到下面一个图。看他的样子跟一个表的回填差不了多少。确实。它们是同一个表,但是在这里我做的确是通过绑定一个表的编号在去查询这个编号的名称。
图一 图二
在这里插入图片描述

这种做法最大的好处就是但你需要做一种输入编号名称就可自已显示出来的效果。运用下拉框来做的话直接省调了这个编号下有没有这个名称的判断,在这里我是直接通过表的编号去查询名称。他们是同一张表,查询出来的名称,在通过编号下拉框改变事件来调用名称这个方法。这样她就可以达到一种回填的效果了啦。
控制器通过编号查询出名称(name)值
public ActionResult SelectPNamer(int Number) //根据编号查询name信息
{
var listClass = (from tbLiquorCProject in myModel.PW_LiquorCProject
where tbLiquorCProject.LiquorCProjectID == Number
select new
{
// tbLiquorCProject.LiquorCUnitID,
tbLiquorCProject.LiquorPName
}).ToList();
return Json(listClass, JsonRequestBehavior.AllowGet);
}
页面面通过下拉框改变事件的方法去调用这个回填的方法即可。
//1.5下拉框改变 触发 下拉框改变
$("#ILiPNumber").change(function () {
var number = $("#ILiPNumber").val();
$.post(“SelectPNamer?Number”, { Number: number }, function (data) {
$("#ILiPName").val(data[0].LiquorPName);//获取元素=赋值
})
})
这种做法也是一种回填操作。这种做法适合一种功能需求即是输入编号就可以知道这个编号有没有名称,这种很大上解决了有没有这个名称的判断。
遇到这种需求的大家都可以考虑运用这种绑定下拉框,在通过这个字段去查找。相对应的,再去调用change改变事件的方法,就可以了。
好了。今天所讲的都是数据的回填,只是他们的用法稍微有点不同罢。其实就是万变不离其中的回填操作,看起来很复杂的感觉,其实是一样的啦。大家也不用想着很复杂的样子。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值