精华内容
下载资源
问答
  • 最近在做一个需求的时候,需要在dataGridView的最后两添加一个平均值、总计的,这两不能参与排序的。现在的dataGridView其实默认最后一不参加排序的,但是现在我是最后两参与排序,因此需要自己动手解决...

            最近在做一个需求的时候,需要在dataGridView的最后两行添加一个平均值、总计的行,这两行不能参与排序的。现在的dataGridView其实默认最后一行不参加排序的,但是现在我是最后两行不参与排序,因此需要自己动手解决。类似的,以下解决方案可以让任意一行不参与排序。

            首先建立一个winform程序,放入控件dataGridView,然后建立四个列,这里需要将排序设置为NotSorttable,如图所示:

            这里主要的原理是这样:刚开始加载的时候,先将需要排序的数据加载到dataGridView中,排序主要靠代码实现,不再试直接修改属性实现。因此需要一个一个排序的标志,sortSign,让其true时进行正序排列,false时进行倒序排列。然后加载完排序的数据,再加载不需要进行排序的数据,并进行相关的计算。点击列头,触发DataGridView1_ColumnHeaderMouseClick事件,然后获取到列的序号,根据列的序号对某一列进行排序。代码实现如下:

    namespace WinfromSortTest
    {
    	public partial class Form1 : Form
    	{
    		//排序标志
    		private bool sortSign = true;
    		//列序号
    		private int columnIndex = 0;
    
    		public Form1()
    		{
    			InitializeComponent();
    		}
    
    		private void Form1_Load(object sender, EventArgs e)
    		{
    			
    			ShowData();
    		}
    		/// <summary>
    		/// 给dataGridView添加初始的数据
    		/// </summary>
    		private void ShowData()
    		{
    			this.dataGridView1.RowCount = 5;
    			for (int i = 0;i < 4;i++)
    			{
    				this.dataGridView1.Rows[i].Cells["Column1"].Value = i;
    				this.dataGridView1.Rows[i].Cells["Column2"].Value = i+1;
    				this.dataGridView1.Rows[i].Cells["Column3"].Value = i+2;
    				this.dataGridView1.Rows[i].Cells["Column4"].Value = i+3;
    			}
    			//排序
    			if(sortSign)
    			{
    				this.dataGridView1.Sort(dataGridView1.Columns[columnIndex], ListSortDirection.Ascending);
    
    			}
    			else
    			{
    				this.dataGridView1.Sort(dataGridView1.Columns[columnIndex], ListSortDirection.Descending);
    			}
    			//排序完成后进行平均值和合计两行数据的添加,这样,其就不会进行排序了
    			SumAndAvg();
    		}
    		/// <summary>
    		/// 点击列标题触发的事件
    		/// </summary>
    		/// <param name="sender"></param>
    		/// <param name="e"></param>
    		private void DataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    		{
    			sortSign = !sortSign;
    			columnIndex = int.Parse(e.ColumnIndex.ToString());
    			ShowData();
    			this.dataGridView1.ClearSelection();
    		}
    
    		/// <summary>
    		/// 平均值和合计两列数据的添加
    		/// </summary>
    		private void SumAndAvg()
    		{
    			this.dataGridView1.RowCount = 6;
    
    			this.dataGridView1.Rows[5].Cells["Column1"].Value = "合计";
    
    			double column2Sum = 0;
    			double column3Sum = 0;
    			double column4Sum = 0;
    
    			for(int i = 0;i < 4; i++)
    			{
    				column2Sum += double.Parse(this.dataGridView1.Rows[i].Cells["Column2"].Value.ToString());
    				column3Sum += double.Parse(this.dataGridView1.Rows[i].Cells["Column3"].Value.ToString());
    				column4Sum += double.Parse(this.dataGridView1.Rows[i].Cells["Column4"].Value.ToString());
    			}
    
    			this.dataGridView1.Rows[5].Cells["Column2"].Value = column2Sum;
    			this.dataGridView1.Rows[5].Cells["Column3"].Value = column3Sum;
    			this.dataGridView1.Rows[5].Cells["Column4"].Value = column4Sum;
    
    			this.dataGridView1.Rows[4].Cells["Column1"].Value = "平均值";
    
    			this.dataGridView1.Rows[4].Cells["Column2"].Value = Math.Round(column2Sum / 4,2,MidpointRounding.AwayFromZero);
    			this.dataGridView1.Rows[4].Cells["Column3"].Value = Math.Round(column3Sum / 4, 2, MidpointRounding.AwayFromZero);
    			this.dataGridView1.Rows[4].Cells["Column4"].Value = Math.Round(column4Sum / 4, 2, MidpointRounding.AwayFromZero);
    		}
    	}
    }
    

            以下是运行结果,点击列头进行排序:

           下载资源链接:https://download.csdn.net/download/qq_41061437/12029527

            没有积分的给我留言,留下邮箱,我私发。

    展开全文
  • /* element ui table 排序 指定参与排序,比如“总体”,一直保持在第一 */ // 添加:ref="experienceInfoTable" 和 :row-class-name="tableRowClassName" <el-table border height="500" ref=...
    /* element ui table 排序 指定行不参与排序,比如“总体”,一直保持在第一行 */
    
    // 添加:ref="experienceInfoTable" 和 :row-class-name="tableRowClassName"
    <el-table border
        height="500"
        ref="experienceInfoTable"
        :data="experienceInfoList"
        :default-sort="{prop: 'total', order: 'descending'}"
        @sort-change="changeTableSort"
        :header-cell-style="{ background: '#eceefd' }"
        :row-class-name="tableRowClassName">
    
    // 需要排序的列 添加 sortable='custom'
    <el-table-column label="Excellent"
         align="center"
         prop="excellent"
         sortable='custom' />        
    
    // 方法
    changeTableSort (column) {
      const orderGroup = []
      const fieldName = column.prop
      const sortingType = column.order
      this.experienceInfoList.map(item => {
        orderGroup.push(item)
      })
      // 降序排序
      if (sortingType == 'descending') {
        this.experienceInfoList = orderGroup.sort((a, b) => {
          let aVal = a[fieldName]
          let bVal = b[fieldName]
    
          // 令中心总体所在行指标值最大
          if (a.userName == '总体') {
            aVal = 99999999
          }
          if (b.userName == '总体') {
            bVal = 99999999
          }
          return bVal - aVal
        })
      } else if (sortingType == 'ascending') {
        // 升序排序
        this.experienceInfoList = orderGroup.sort((a, b) => {
          let aVal = a[fieldName]
          let bVal = b[fieldName]
          if (a.userName == '总体') {
            aVal = -2
          }
          if (b.userName == '总体') {
            bVal = -2
          }
          return aVal - bVal
        })
      } else {
        this.$refs.experienceInfoTable.clearSort() // 清除排序
      }
    },
    
    展开全文
  • 作者获悉,中国电影在互动平台表示,公司参与了电影《李焕英》的出品、发行,未参与保底发行。
    作者获悉,中国电影在互动平台表示,公司参与了电影《李焕英》的出品、发行,未参与保底发行。
    展开全文
  • 大股东参与下定向增发中的发行折价与利益输送,谢赤,徐琪,为了考察大股东参与背景下的定向增发折价现象和利益输送行为,并分析利益输送具体影响因素,本文构建了折价影响因素回归模型和利
  • 10代码实现抽奖助手自动参与抽奖

    千次阅读 2018-04-10 20:32:37
    (免费给抽奖助手做个小广告),我在公众号多次用它来发过很多奖品,同时,我每天也会去参与一些抽奖,目前的中奖记录为0(尴尬脸)在助手中参与抽奖你不需要支付一分钱,但是需要花时间,想抽奖就不得不每天打开小...

    不知道大家用过抽奖助手小程序没?(免费给抽奖助手做个小广告),我在公众号多次用它来发过很多奖品,同时,我每天也会去参与一些抽奖,目前的中奖记录为0(尴尬脸)


    在助手中参与抽奖你不需要支付一分钱,但是需要花时间,想抽奖就不得不每天打开小程序逐个点击参与才能参与,每天重复的操作觉得好繁琐,于是我萌生出一个想法,用程序去自动参与抽奖。

    说干就干,熟悉爬虫基本原理的大概能猜出来怎么做。我们之前写过基于Python爬微信公众号爬虫的系列教程,现在假设你已经会用 Fiddler 去代理 HTTP 请求。怎么安装 Fiddler 和配置手机端这里不再介绍,自行百度。


    配置好 Fiddler 之后,手机打开小程序 “抽奖助手” 之后,有个公共抽奖列表


    通过 Fiddler 抓包,我们看到抽奖列表的请求地址是:/public_lottery?page=1&size=5, 请求方法是 GET,还有一个 Header 字段 Authorization,返回的数据结构可以清晰看到总共返回了5条数据,代表5个奖品,每个字段基本能猜出来什么意思。



    我们再来手动选择一个活动点击参与抽奖,看背后它是怎么向服务器发送请求的,弄清楚了原理之后就可以用程序来自动模拟请求。


    参与抽奖的请求有几个注意的地方,请求使用的是 POST 方法,URL地址是:/lottery/67c3a5afe794dc7bdbed85a38a18bb44/join ,和抽奖列表一样,还有一个请求 Header 是 Authorization,它的值就是后面一串很长的 Bearer 开头的字符串… 。

    现在我们就可以用 Python 来构建一个自动参与抽奖的脚本,每隔一段时间就去自动刷,发现有新的奖品,就自动参与抽奖。

    源代码

    # coding=utf-8

    import requests

    def main():
       url = "https://lucky.nocode.com/public_lottery?page=1&size=5"
       # 替换成你自己的Authorization
       headers = {
           "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV...."}
       res = requests.get(url, headers=headers)
       lotteries = res.json().get("data")
       join_url = "https://lucky.nocode.com/lottery/{id}/join"
       for lottery in lotteries:
           res = requests.post(join_url.format(id=lottery.get("id")), headers=headers)
           data = res.json()
           if res.status_code == 200 and 'errors' not in data:
               print("成功参与抽奖:《%s》" % lottery.get("prizes").get("data")[0].get("name"))

    if __name__ == '__main__':
       main()

    运行

    成功参与抽奖:《阿玛尼红管唇釉》
    成功参与抽奖:《Havaianas 人字拖》
    成功参与抽奖:《《不要成为无聊的大人》》
    成功参与抽奖:《Satan 钥匙扣》
    成功参与抽奖:《桌面理线器》



    现在所有奖品都变成已参与状态,坐等中奖吧。你还可以对代码进行改进。


    有人可能会问,这算不算作弊呢?我觉得这就是程序员的优势,我们只是用了不一样的工具来完成相同的事情,以后编程还真的是每个人都应该掌握的一项基本技能,没事写个代码解决繁琐的、重复的工作。懒惰是推动社会文明进步的原动力。

    展开全文
  • 如何让datagridview的最顶端的两参与排序,就是点击了列头,只有其他排序了,这两不动呢,请大家指教!
  • GridView 排序状态下,如果不采用GridView自带的新增空白的话,而是采用AddNewRow或者自己编写的方法,新增因为单元格值为空,导致排序发生混乱, 如果想固定住新增始终停留在最底部,就需要自定义排序,...
  • GridView 排序状态下,如果不采用GridView自带的新增空白的话,而是采用AddNewRow或者自己编写的方法,新增因为单元格值为空,导致排序发生混乱,如果想固定住新增始终停留在最底部,解决方案有两种: ...
  • (免费给抽奖助手做个小广告),我在公众号多次用它来发过很多奖品,同时,我每天也会去参与一些抽奖,目前的中奖记录为0(尴尬脸) 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不...
  • (免费给抽奖助手做个小广告),我在公众号多次用它来发过很多奖品,同时,我每天也会去参与一些抽奖,目前的中奖记录为0(尴尬脸)在助手中参与抽奖你不需要支付一分钱,但是需要花时间,想抽奖就不得不每天打开小...
  • //放置总计一数据 tableData.map((item) => { if (item.name == "平均") { avgData = item; } if (item.name == "总计") { sumData = item; } }); if (sortingType == "ascending") { //正序 tableData = table...
  • 9月24日,“省本级社会组织参与脱贫攻坚五个专项行动”之花垣在花垣县民政局正式启动,省智慧教育装备展示体验中心、省守合同重信用企业协会、省电力工程企业协会、省广东商会、湖南信息学院等33家社会组织带着...
  • 用ES6代码实现IE可兼容的table表格某一(合计)不参与倒序的排序 **`//对表格排序 function checkColumnValue(index, type,tableId) { var tableObject1 = $('#'+tableId); //获取id为simpleLineTable的table对象 ...
  • 计算移动加权平均价是(上期成本+本期成本)/...第一计算出移动加权平均单价,把该结果*第一的本期数量结存,参与到下一的移动加权平均单价的计算中去? (不用存储过程,之前就是存储过程实现的,维护太麻烦)
  • 前言 会用与灵活的用好之间是妙之巅豪,失之千里。小细节大管理与大效率,管理没有大小之分, 很小的...方法(借口)行参与返回只用实体类 说一个真实的故事 刚刚到一个新小组,在一次会议的时候。 鸟菜啊:以后所...
  • 12月17日消息,针对相关媒体报道ofo小黄车参与进入区块链行业一事,ofo官方发布声明称,从未参与虚拟货币的发行,ofo与GSE Lab之间仅为合作关系。随着2018年ofo海外业务缩...
  • 雷帝网 乐天 1月30日报道蔚来汽车日前...蔚来汽车的股东腾讯控股、高瓴资本(Hillhouse Capital Management Ltd)将参与认购,预计将分别购买价值3000万美元和1000万美元的发行票据,购买条款与其他票据相同。本次发...
  • tablesort很强大,但是有时候也很不足,比如我想让某些参与排序只是跟着前一移动,或者我table里面有inner table的时候,绑定外层表的时候总会影响到内部的表。其实要让他实现这些很简单, step1,让表中的...
  •   基本思路是排序前删除合计,排序后吧删除的添加上去 int flag = 0; void dataGrid1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { var list = GetDataSource(); list....
  • 方法(借口)行参与返回只用实体类说一个真实的故事刚刚到一个新小组,在一次会议的时候。鸟菜啊:以后所有的方法(接口)行参与返回只用实体类老员工A说:这不是增加了很多工作量吗?新员工B说:是啊,很麻烦啊。鸟菜啊...
  • 当然如果一个视频的评分不是太高,对用户来说会产生一定的抵触影响,点击播放的人肯定会大大减少,所以视频站点一定要和用户产生互动才。   3、给视频添加了什么标签 为了更好地区分视频种类,一般网站...
  • 中生代技术链接技术大咖,分享技术干货全文:7200字本文作者:林承军,中国工商银行软件开发中心高级经理,有用多年开放平台相关技术研究及实施经验,多次参与工行重点项目的原型技术研究、IT ...
  • 出口商贸易融资工具:贸易项下风险参与 贸易项下风险参与业务指在国际贸易结算业务中,采取信用证结算方式下议付行或者保兑行,福费廷业务中包买商,保函业务中的受益行,为降低业务风险,...(2)风险参与行参与金额
  • 声明 CSDN【原创博客】,在提交博客页面勾选【加入原力计划】即可参与; CSDN 将从参加“原力计划”的博文中,挑选优质博文进行推荐; 参与活动的文章必须是原创首发 CSDN 平台。 评选规则: 当月声明【原创首发】的...
  • 中国官员和专家们表示,中国正在测试推出中国首款央行数字货币(CBDC)的多种方式,他们预计私营机构将更多地参与创造政府支持的货币。 基于一些领域正在进行的试验,引入 CBDC 的时机已经接近成熟。但与中国央行...

空空如也

空空如也

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

参与行