gridview中的选中复选框将在单击按钮后更新gridview

时间:2014-10-15 03:51:10

标签: c# sql asp.net gridview checkbox

以下是解释:

  1. 我的数据库中有两个表,tblDiscount和tblDaily表。它们通过tenantId列相互关联。

  2. 我在sql中有一个查询,它创建了另一个名为GSC的列,它在tbldaily表中汇总了现金,费用,礼品和折扣的价值。结果传递给asp.net中的sqldatasource,在那里它用于加载gridview。

  3. 我在gridview中放了一个复选框列,条件是当用户选中复选框/ es gridview并单击按钮时,gridview必须重新加载并更新GSC列,从之前的总和中扣除折扣值(现金+充电+礼品+折扣)。复选框的检查用作在tblDiscount表中插入一个值,另一方面取消选中这些值将删除所述表中的记录。

  4. 我想要实现的目标:

    1. 当用户搜索租户和特定日期时(例如:搜索麦当劳,交易日期:01/01/2014 - 2014年1月31日),gridview将按原样加载gridview创建专栏:GSC,总结现金,信用,礼品和折扣价值。当他/她检查01/01/2014 - 01/05/2014复选框行时,单击重新计算按钮:

      一个。系统将在tblDiscount表中插入数据(tbldiscount列为:dates,tenantID)。

      湾然后gridview将重新计算gridview - GSC COLUMN从中扣除折扣值

    2. 当用户取消选中已检查的日期时,它将执行相反的操作:

      一个。将删除tbldiscount中的数据

      湾gridview将再次重新计算GSC列 - 添加折扣值。

    3. gridview和recompute按钮中的复选框类似于在tblDiscount中插入和删除数据的工具,并且信号汇总并从GRIDVIEW DATA中的GSC(销售总销售额)中扣除折扣。

      怎么做?

      以下是我开始的代码:

      protected void btnRecompute_Click(object sender, EventArgs e)
          {
              //int counter = 0;
              double newGSC = 0;
              string oDisc = "", gsc = "", oDiscFinal = "", gscFinal = "", answer = "";
              con.Open();
      
              foreach (GridViewRow row in grdDSTR.Rows)
              {
      
      
                  if (row.RowType == DataControlRowType.DataRow)
                  {
                      CheckBox chkRow = (row.Cells[0].FindControl("chkCheckRow") as CheckBox);
                      if (chkRow.Checked)
                      {
                          oDisc = (row.Cells[7].Text);
                          oDiscFinal = (oDisc.Replace(",", string.Empty));
      
                          gsc = (row.Cells[10].Text);
                          gscFinal = (gsc.Replace(",", string.Empty));
      
                          newGSC = Convert.ToDouble(gscFinal) - Convert.ToDouble(oDiscFinal);
      
      
      
                      }
      
                  }
      
              }
      }
      

      我从那里开始实际上提取了复选复选框的GSC AND DISCOUNT COLUMN的值并从DISCOUNT中减去GSC,差异将用于更新数据库,但这是不可能的,因为GSC不是实际的列在tblDaily中,它只是一个计算或自制的列。

      主要目标或问题,如何根据复选框中的日期在tblDiscount中插入数据,然后重新计算GSC列,从中扣除折扣值,反之亦然

      更新

            IF EXISTS (select * from tbldiscount
                  where date between '02/01/2014' and '02/28/2014'
                  and tenantcode = 'OHBUFF11')
      
                  BEGIN
                  select ....
              convert(varchar,cast(((sum(a.cash) + SUM(a.charge) + SUM(a.gift)) - (SUM(a.surcharge))) as money),1) as GSC 
          ...
      where (a.date between '02/01/2014' and '02/28/2014') and b.tenantcode = 'OHBUFF11'
      
                  END
      
      
      
                  ELSE
                  BEGIN
                   select ....
              convert(varchar,cast(((sum(a.cash) + SUM(a.charge) + SUM(a.gift)+ SUM(a.other)) - (SUM(a.surcharge))) as money),1) as GSC 
          ...
      where (a.date between '02/01/2014' and '02/28/2014') and b.tenantcode = 'OHBUFF11'
                  END
      

      在我更新的评论中,我尝试在mssql中测试我的查询,使用IF EXIST QUERY,我将测试折扣表是否有数据,如果为true,它将转到第一个选项,其中折扣值不是GSC总和,否则可以选择将其添加到GSC。

      发现限制:如何仅确定仅在tblDiscount中可用的复选框/日期?

      感谢您在hwo上预先分享您的逻辑思想

0 个答案:

没有答案