精华内容
下载资源
问答
  • Datagridview行下移与按住按钮持续下移,按钮按住不松会持续下移并且移动速度会慢慢变快,上移方法就不多说了改下其中语句就好。
  • 上移 下移 动态移动

    2017-10-27 16:35:58
    上移 下移 动态移动,上移 下移 动态移动,上移 下移 动态移动,
  • php上移下移

    2017-11-18 20:01:02
    php上移一位下移一位 源码我修改完善后 亲测可用 已多次应用到网站的。
  • 下移图片列表展示响应式网页模板
  • 由于当前表格较为复杂,其中包含较多合并单元格,所以拖拽不大好处理,于是使用简单的上移下移按钮来替代。表格采用的是element-ui的el-table实现的。用于展示的数据是一个数组,经过合并单元格的方法处理,展现效果...

    由于当前表格较为复杂,其中包含较多合并单元格,所以拖拽不大好处理,于是使用简单的上移下移按钮来替代。表格采用的是element-ui的el-table实现的。用于展示的数据是一个数组,经过合并单元格的方法处理,展现效果为上图所示。而上移、下移是基于整体项目的上移下移。vue中无需操作dom节点仅修改数据就可以达到页面的处理效果,所以上移、下移只需要修改这个用于展示的数组的数据即可。

    大概思路:

    如果,直接基于数组中的数据进行处理,逻辑上会较为复杂,所以可以考虑将相同项目的数据作为一个整体,调整顺序后,重新转换为分散的数据。

    具体代码:

    /** * 根据项目id转换二维数组 * @param sourceArray 源数组 项目明细数组 * @param targetItemId 目标项目id */ convertItemArray(sourceArray, targetItemId) { // 目标数组 const targetArray = [] // 项目顺序数组 用于保存项目顺序 const itemOrder = [] // 项目map 用于数据分类 const itemMap = {} // 传入源数组有值 if (sourceArray && sourceArray.constructor === Array && sourceArray.length) { // 遍历原数组 sourceArray.forEach(item => { const itemId = item.itemId // 项目顺序数组中不存在该项目时 添加到数组中 if (itemOrder.indexOf(itemId) === -1) { itemOrder.push(itemId) } // 项目id匹配目标项目id if (targetItemId === itemId) { // 获取目标项目id对应的下标值 this.curItemIndex = itemOrder.length - 1 } // 临时项目数组 let tempItemArray = [] // 如果项目中存在数组 则为其赋值 if (itemMap[itemId]) { tempItemArray = itemMap[itemId] } // 将项目添加到数组中 tempItemArray.push(item) // 将数组添加到map中 itemMap[itemId] = tempItemArray }) } // 项目顺序数组有值 if (itemOrder && itemOrder.length) { // 遍历项目顺序 itemOrder.forEach(itemId => { // 根据项目id取出项目数组 const tempItemArray = itemMap[itemId] // 添加到目标数组中 targetArray.push(tempItemArray) }) } // 返回目标数组 return targetArray }, /** * 将二维数组转换为一维数组(项目数组转换为项目明细数组) */ convertItemDetailArray(sourceArray) { // 目标数组 const targetArray = [] // 判断不为空 if (sourceArray && sourceArray.constructor === Array && sourceArray.length) { for (let i = 0; i < sourceArray.length; i++) { const itemArray = sourceArray[i] // 判断当前元素是数组 if (itemArray && itemArray.constructor === Array) { // 当前是最后一项时 if (i === sourceArray.length - 1) { // 计算最后一项下标值 this.lastProjectIndex = targetArray.length } for (let j = 0; j < itemArray.length; j++) { const item = itemArray[j] // 重置排序号 item.itemOrder = i // 添加元素到目标数组中 targetArray.push(item) } } } } // 返回目标数组 return targetArray }, /** * 数组元素交换位置 * @param {array} arr 数组 * @param {number} index1 添加项目的位置 * @param {number} index2 删除项目的位置 * index1和index2分别是两个数组的索引值,即是两个要交换元素位置的索引值,如1,5就是数组中下标为1和5的两个元素交换位置 */ swapArray(arr, index1, index2) { arr[index1] = arr.splice(index2, 1, arr[index1])[0] return arr }, /*** 下移项目* @param {Object} index */ downProject(index) { // 获取项目id const itemId = this.itemDetailList[index].itemId // 先根据项目id转换二维数组 并给项目数组下标赋值 const itemArray = this.convertItemArray(this.itemDetailList, itemId) // 下标值大于等于0 if (this.curItemIndex >= 0) { // 下移 交换位置 this.swapArray(itemArray, this.curItemIndex, this.curItemIndex + 1) } // 转换回一维数组 this.itemDetailList = this.convertItemDetailArray(itemArray) // 项目合并单元格 this.merage() // 评价方法合并单元格 this.mergeIndexArr = this.getMergeArr(this.itemDetailList, 'checkMethod') }, /** * 上移项目 * @param {Object} index */ upProject(index) { // 获取项目id const itemId = this.itemDetailList[index].itemId // 先根据项目id转换二维数组 并给项目数组下标赋值 const itemArray = this.convertItemArray(this.itemDetailList, itemId) // 下标值-1 大于等于0 if (this.curItemIndex - 1 >= 0) { // 上移 交换位置 this.swapArray(itemArray, this.curItemIndex - 1, this.curItemIndex) } // 转换回一维数组 并且重置itemOrder 项目排序号 this.itemDetailList = this.convertItemDetailArray(itemArray) // 项目合并单元格 this.merage() // 评价方法合并单元格 this.mergeIndexArr = this.getMergeArr(this.itemDetailList, 'checkMethod') },

    展开全文
  • jQuery实现table上移下移和置顶 jQuery实现table上移下移和置顶
  • 在表格中常常需要调整表格中数据的显示顺序,我用的是jqgrid,实现原理就是将表中的行数保存到数据库中,取数据时按行进行排序下面话不多说了,来一起看看详细的介绍吧jqgrid上移下移单元格1、上移,下移按钮上移下移...

    前言

    JQGrid是一个在jquery基础上做的一个表格控件,以ajax的方式和服务器端通信。

    在表格中常常需要调整表格中数据的显示顺序,我用的是jqgrid,实现原理就是将表中的行数保存到数据库中,取数据时按行进行排序

    下面话不多说了,来一起看看详细的介绍吧

    jqgrid上移下移单元格

    1、上移,下移按钮

    上移

    下移

    2、上移下移 功能

    function operateWithOneRowById(callback) {

    var selected = tableObj.jqGrid('getGridParam', 'selrow');

    if (selected == null) {

    alert("请用鼠标点击选择一行后再执行操作!");

    return;

    }

    return callback(selected);

    }

    3、这里的callback是up和down 函数的合并,那么我们再看看这两个函数

    function up(selected) {

    if (selected == 1) return;

    else {

    gridHelper.moveRow("up", tableObj);

    }

    }

    function down(selected) {

    gridHelper.moveRow("down", tableObj);

    }

    4、在这个函数中,我们都调用了一个函数movRow() 让我们来看看这个函数,这个函数的原理就是把当前选中的行和我要移到至的行进行交换就行了。

    //移动一行

    this.moveRow = function(moveMethod, grid) {

    if (grid) tableObj = grid;

    var id;

    // if(selRow) id=selRow;

    // else id = getSelRow();

    id = this.getSelRow();

    tableObj.restoreRow(id);

    if (id == null) return;

    var targetId = this.getTargetId(id, moveMethod)

    if (targetId == -1) return;

    var temp1 = tableObj.getRowData(id);

    var temp2 = tableObj.getRowData(targetId);

    //对调行号

    var tempRn = temp1.rn;

    temp1.rn = temp2.rn;

    temp2.rn = tempRn;

    //对调数据

    tableObj.setRowData(id, temp2);

    tableObj.setRowData(targetId, temp1);

    tableObj.setSelection(targetId);

    }

    5、在4中调用了getTargetId()方法,我们再来看看这个方法

    //取得上移时的上一行的id,或下移时的下一行的id

    this.getTargetId = function(selId, method, grid) {

    if (grid) tableObj = grid;

    var ids = tableObj.getDataIDs();

    for (var i = 0; i < ids.length; i++) {

    if (selId == ids[i] && method == "up") {

    if (i == 0) return -1;

    else return ids[i - 1];

    }

    if (selId == ids[i] && method == "down") {

    if (i == ids.length - 1) return -1;

    else return ids[i + 1];

    }

    }

    }

    6、增加数据库字段Sequence  我用的nhibernate 还要在配置文件中进行修改,增加一行实体类中增加字段 order,在保存表时保存表中的行号

    保存数据说明:保存时是保存表中的所有数据,有已经在数据库中的数据,有没有存在数据库中的数据,根据IDj是否为0来判断的。

    public void UpdatePlan(PlanToReport plan, List list)

    {

    NHibernate.ISession session = NHibernateSessionManager.Instance.GetSession();

    try

    {

    PlanToReportService.UpdatePlan(plan);

    for (int i = 0; i < list.Count; i++)

    {

    PlanPerson item = list[i];

    if (item.ID != 0)

    {

    PlanPerson itemnew = PlanToReportService.GetPlanPersonById(item.ID);

    itemnew.JobName = item.JobName;

    itemnew.ApprovalResults = item.ApprovalResults;

    itemnew.Attachments = item.Attachments;

    itemnew.CountryCode = item.CountryCode;

    itemnew.CountryName = item.CountryName;

    itemnew.MissionType = item.MissionType;

    itemnew.Position = item.Position;

    itemnew.Remark = item.Remark;

    itemnew.StartDate = item.StartDate;

    itemnew.Status = item.Status;

    itemnew.Explain = item.Explain;

    itemnew.Order = i;

    PlanToReportService.AddNewPlanPerson(itemnew);

    }

    else

    {

    item.PlanID = plan.ID;

    item.Order = i;

    PlanToReportService.AddNewPlanPerson(item);

    }

    }

    session.Transaction.Commit();

    }

    catch (Exception ep)

    {

    session.Transaction.Rollback();

    throw ep;

    }

    }

    7、取数据时根据 Order 字段进行排序

    public List GetShowPersonInPlan(int planID)

    {

    ISession session = NHibernateSessionManager.Instance.GetSession();

    ICriteria criteria = session.CreateCriteria(typeof(PlanPersonShowInGrid));

    criteria.Add(Expression.Eq("PlanID", planID)).AddOrder(Order.Asc("Order"));

    List list = new List();

    try

    {

    IList l = criteria.List();

    list = PlanToReportDao.IListToList(l);

    }

    catch { }

    return list;

    }

    至此,表格中数据的上移下移就完成了。

    总结:

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

    时间: 2018-11-06

    展开全文
  • delphi 回车替Tab下移控件
  • ztree右击上移下移.rar

    2019-07-22 10:39:12
    ztree,右击(点击小图标)上移、下移、置顶、置底。点击空白隐藏div
  • //取消scrollview的自动像素下移 self.automaticallyAdjustsScrollViewInsets = NO; //取消navigationbar导致的view层自动下移 self.extendedLayoutInclude...

    //取消scrollview的自动像素下移

        self.automaticallyAdjustsScrollViewInsets = NO;

        

        //取消navigationbar导致的view层自动下移

        self.extendedLayoutIncludesOpaqueBars = YES;

        

        self.navigationController.interactivePopGestureRecognizer.delegate = self;

    转载于:https://my.oschina.net/u/2394515/blog/692504

    展开全文
  • push后导航栏下移

    2020-12-08 20:56:16
    <div><p>你好,请问页面push后导航栏整体下移是为什么</p><p>该提问来源于开源项目:Pircate/EachNavigationBar</p></div>
  • 一、前言这个demo由于太过简单,而不用过多的文字描述,其实就是实现了在一个文本框中输入完成以后,回车自动跳入下一个文本框,焦点下移,这个在很多的社保系统、医疗系统等系统中很常用,因为那些系统需要很多输入...

    4ce294c5e9f0cd9d57074fbec9937873.gif

    一、前言

    这个demo由于太过简单,而不用过多的文字描述,其实就是实现了在一个文本框中输入完成以后,回车自动跳入下一个文本框,焦点下移,这个在很多的社保系统、医疗系统等系统中很常用,因为那些系统需要很多输入的地方,最快捷的方法就是输入完成以后回车跳入下一个输入框,这样用户不需要去用鼠标单击来切换光标焦点,在我们平时使用电脑的过程中,鼠标+键盘配合,效率是最高的,比如在编写代码过程中,需要把乱七八糟的代码格式化一下,看起来心情也好了很多,此时直接用快捷键会非常方便的,而不是使用鼠标去选择菜单。

    二、代码思路

    Widget::Widget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::Widget)
    {
        ui->setupUi(this);
        connect(ui->lineEdit1, SIGNAL(returnPressed()), this, SLOT(next()));
        connect(ui->lineEdit2, SIGNAL(returnPressed()), this, SLOT(next()));
        connect(ui->lineEdit3, SIGNAL(returnPressed()), this, SLOT(next()));
    }
    
    Widget::~Widget()
    {
        delete ui;
    }
    
    void Widget::next()
    {
        QLineEdit *lineEdit = (QLineEdit *)sender();
        if (lineEdit == ui->lineEdit1) {
            ui->lineEdit2->setFocus();
        } else if (lineEdit == ui->lineEdit2) {
            ui->lineEdit3->setFocus();
        } else if (lineEdit == ui->lineEdit3) {
            ui->lineEdit1->setFocus();
        }
    }
    

    三、效果图

    9af931d368e881eeb1086d84727f0bf7.gif

    四、开源主页

    以上作品完整源码下载都在开源主页,会持续不断更新作品数量和质量,欢迎各位关注。

    1. 国内站点:https://gitee.com/feiyangqingyun/QWidgetDemo
    2. 国际站点:https://github.com/feiyangqingyun/QWidgetDemo
    3. 个人主页:https://blog.csdn.net/feiyangqingyun
    4. 知乎主页:https://www.zhihu.com/people/feiyangqingyun/
    展开全文
  • 建议在组件中 $emit 事件,然后在父组件中绑定事件题目(删除)(上移)(下移)Vue.component('article-list',{template:'\\{{item.title}}\删除\上移\下移\',props: ['item','index'],methods: {deleteList: function() ...
  • 主要给大家介绍了关于如何利用jqgrid实现上移下移单元格功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 后台上移下移,编辑,删除效果后台上移下移,编辑,删除效果
  • scrollerview 下移64

    2016-06-06 23:18:11
     当导航控制器发现 self.view 的第一个子控件为 scrollerview 或者 scrollerview 的子类的时候 self.view 会自动为 scrollerview 的的 edginset 自动下移64个单位  满足的两个条件 就会自动下移  1.这是一个导航...
  • 主要介绍了jquery实现标签上移、下移、置顶的相关资料,并附上示例,非常实用,需要的朋友可以参考下
  • 主要介绍了jQuery基于排序功能实现上移、下移的方法,结合实例形式分析了jQuery使用ajax与后台php交互实现元素的排序,上移、下移功能相关操作技巧
  • 建议在组件中 $emit 事件,然后在父组件中绑定事件题目(删除)(上移)(下移)Vue.component('article-list',{template:'\\{{item.title}}\删除\上移\下移\',props: ['item','index'],methods: {deleteList: function() ...
  • 主要介绍了基于js实现数组相邻元素上移下移,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 上移&下移

    2021-02-05 00:13:32
    3,上移:获得index-1位置的对象,下移:获得index+1位置的对象 4,置换两者的orderValue值 5,把两者更新到数据库 修改: 1,获得当前列表中orderValue的最大值max 2,手动设置修改记录的weight值等于max+1 3,把...
  • a标签文字下移

    2021-01-28 10:09:27
    正常的行内块不会出现位置的变动,但一旦加上文字后,会出现下移现象 1.那是因为第二个标签是inline-block,它的对齐方式是基线对齐,对齐的是第一个元素里面字的下划线,所以第二个元素的下边缘对齐的是1的下划线,...
  • 密钥协商下移

    2014-08-27 10:32:58
    密钥协商下移 如果用户选择的安全策略是WPA/WPA2,用户在漫游切换时,需要重新进行密钥协商,密钥协商过程是在STA和AC之间进行的。为了缩短漫游切换时间,通过密钥协商下移功能,即将STA和AC间的密钥协商过程...
  • vue实现列表数据下移

    2020-08-10 06:50:11
    列表数据下移 {{user.name}}
  • 本文实例讲述了js实现Select列表各项上移和下移的方法。分享给大家供大家参考。具体如下: 这里介绍Select列表各项上移和下移的Js代码,可以手功排序,以前我们都见到过的,从事WEB编程的朋友经常会用得到。 运行...
  • 今天小编就为大家分享一篇关于易语言设置按回车下移焦点功能的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • 实现上移下移功能,具体绑定一个数据源,操作数据源,最后把数据源赋值给数据源。
  • table上移下移 js

    2009-04-29 08:37:53
    table上移下移table上移下移table上移下移table上移下移
  • 主要介绍了jQuery表格行上移下移和置顶的实现方法,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,611
精华内容 2,244
关键字:

下移