如何在C#中选中特定的数据?
我这里要讲的是在C#中选中特定的数据,其实双击或者单击某行数据,再通过某种媒介来传输数据,以达到选中你想要的那一行的数据。接下来我就举个例子来讲解。
例子说明:
我需要双击某行数据,然后数据自己回填到另一张有相关信息的表格。
效果图: 双击第一行数据,数据自动回填到表格里面。
在这里我要说一下,由于我用的是layui表格,所以我只能用我的例子为例,其实用其他的方法也是差不多用这种数据的传递,那接下来来看一下如何实现这个功能的,我就不讲怎么设置表格行的样式了,因为会用layui的人都知道怎么弄,在这里就不多此一举了。
1、首先要说的是怎么双击行数据,数据自动回填呢,这有关于数据重载的问题了。
//监听选中商品表的双击事件
layuiTable.on('rowDouble(tabCommodity)', function (obj) {
//获取商品表的ID,以便传递数据
var commodityID = obj.data.CommodityID;
//将回填商品信息的表格里面的数据重载一遍
tabInsertInventCheck.reload({
url: "selectInsertInventCheckAll", //路径
where: {
CommodityID: commodityID, //传递
}
});
$("#modalSelectCommodity").modal("hide"); //关闭模态框
});
2、由于用到重载又要通过CommodityID来传递数据,所以需要在控制器里面重新查询一遍数据,已达到数据回填的效果。
public ActionResult selectInsertInventCheckAll(int CommodityID)
{
List<commodityVo> listCheck = (from tbCommodity in myModels.PW_Commodity
where tbCommodity.CommodityID == CommodityID
select new commodityVo
{
CommodityID = tbCommodity.CommodityID,
CommodityName = tbCommodity.CommodityName,
CommodityNumber = tbCommodity.CommodityNumber,
Specification = tbCommodity.Specification,
Unit = tbCommodity.Unit,
CommodityIQ = tbCommodity.CommodityIQ,
PracticalQuantity = 0,
CommodityRemark = "",
StockConsultPrice = tbCommodity.StockConsultPrice
}).ToList();
//实例化
LayuiTableData<commodityVo> layuiTableData = new LayuiTableData<commodityVo>
{
data = listCheck
};
return Json(layuiTableData, JsonRequestBehavior.AllowGet);
}
由上面可以看到,就是将数据重新查询一遍,然后重载到表格里面,主要用到重载的方法再用到ID来传递数据。