现在遇到点问题 , 希望大侠帮下忙 在查询条件中有一个下拉列表的选择  是否欠费:是  否现在将数据绑定在gridview中 用其中的两列进行相减 得到的数据就是作为是否欠费的依据由于种种原因不能在存储过程中完成 所以在RowDataBound事件里进行计算 代码如下 逻辑好想有问题 数据少的时候看不出来,数据多的时候分页就乱了  每页显示的就不一样多了  请问还有别的方法吗?
 protected void gv_rptStu_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {   
                decimal qianfeimoney = amount - factMoney;//欠费金额
                e.Row.Cells[8].Text = qianfeimoney.ToString();
                if (ddlisowe.SelectedIndex == 1)//欠费
                {
                    if (qianfeimoney > 0)
                    {
                        e.Row.Visible = true;
                    }
                    else
                    {
                        e.Row.Visible = false;
                    }
                }
                else if (ddlisowe.SelectedIndex == 2)//不欠费
                {
                    if (qianfeimoney > 0)
                    {
                        e.Row.Visible = false;
                    }
                    else
                    {
                        e.Row.Visible = true;
                    }
                }
                else
                {                }
            }
        }

解决方案 »

  1.   


    为何不直接在下拉列表的change事件中写呢 ?每次选择就刷新下GridView中的数据,
      绑定数据的时候改一下查询条件  where amount > factMoney
      

  2.   

    你把gridview保存在一个session中,然后在下拉框里面的OnSelectedIndexChanged事件下面写,直接用 if (DropDownList1.SelectedValue == "是")
    {...
    }else
    {
    ...
    }
      

  3.   

    绑定数据源的时候实际上只有两列,其他列都是在RowDataBound事件里通过绑定的两列计算出来的
    不知道计算出来的列如何作为条件去筛选
      

  4.   

    可以在后台先计算好数据,再根据下拉列表的值加个判断,保存在一个datatable中,值为0时保存全部,值为1时保存欠费的数据,为2时保存不欠费的数据,用下拉列表的事件去触发Gridview的绑定事件