zoukankan      html  css  js  c++  java
  • DataRow移動技巧

    /// <summary>
    /// 上移
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void ctBtnRevSave5_Click(object sender, EventArgs e)
    {
        if (gridView1.GetSelectedRows().Length == 0)
        {
            return;
        }
        int selectRow = gridView1.GetSelectedRows()[0];

        if (selectRow > 0)
        {
            DataTable dt = dataSetMain2.Tables[AaaTableName];
            DataRow dr = dt.Rows[selectRow];
            DataRow drPrev = dt.Rows[selectRow - 1];
            foreach (DataColumn dc in dt.Columns)
            {
                if (dc.ColumnName.ToLower() == "morder")
                {
                    continue;
                }
                object dataTemp = dr[dc.ColumnName];
                dr[dc.ColumnName] = drPrev[dc.ColumnName];
                drPrev[dc.ColumnName] = dataTemp;
            }
            gridView1.FocusedRowHandle = selectRow - 1;
        }
    }
    ---------------------------------
    多謝如下頁面的提示:
    http://blog.csdn.net/czh4869623/article/details/6598866

    protected void setRowToRow(DataRow dataRow, DataRow tempRow)
    {
        //tempRow["id"] = dataRow["id"];//主键唯一约束
        tempRow["type"] = dataRow["type"];
    }
    /// <summary>
    /// 上移
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnUp_Click(object sender, EventArgs e)
    {
        DataRow currentRow = ((DataTable)ViewState["dtTitles"]).Rows.Find(102);//根据主键获取当前row
        DataRow[] rows = ((DataTable)ViewState["dtTitles"]).Select();//获取table中所有的row
        int currentIndex = Array.IndexOf(rows, currentRow); //获取当前row的index
        DataRow tempRow = ((DataTable)ViewState["dtTitles"]).NewRow();
        setRowToRow(((DataTable)ViewState["dtTitles"]).Rows[currentIndex - 1], tempRow);
        setRowToRow(((DataTable)ViewState["dtTitles"]).Rows[currentIndex], ((DataTable)ViewState["dtTitles"]).Rows[currentIndex - 1]);
        setRowToRow(tempRow, ((DataTable)ViewState["dtTitles"]).Rows[currentIndex]);
        BindData();
    }

  • 相关阅读:
    搭建SSM框架 Demo
    Mybatis (ParameterType) 如何传递多个不同类型的参数
    IDEA如何将本地项目上传到码云
    VUE项目
    Oralce(三)特殊符号
    NodeJS and Intellij IDEA
    Handler
    Netty 框架 (一) channelDisconnected、channelClosed两个事件区别
    数据库索引
    Websocket
  • 原文地址:https://www.cnblogs.com/luoyaoquan/p/2576393.html
Copyright © 2011-2022 走看看