FineUI动态表头(每次按查询条件动态显示表头)的解决方法:1.重定向:Response.Redirect("~/Sales1/MA_SASSD"); 在页面传递全局静态变量,相当于每次重新加载页面效率比较高。
这个重定向是重定向自己,页面传值不是很复杂, 但是有个问题每次初始化下拉框变成默认值了,此解决方法是后台制定下拉框的选择项 .SelectedValue(ViewBag.Selected) 在前段定义
后台传值ViewBag.Selected。
主要代码如下:
1. 查询时重定向
#region 查询数据
public ActionResult Grid1_ReBindGrid(JArray fields, string sp_name, int pageIndex, int pageSize, string txtSite, FormCollection values)
{
sp_name1 = sp_name;
txtSite1 = txtSite;
txtBegin1 = values["DatePicker1"];
txtEnd1 = values["DatePicker2"];
Response.Redirect("~/Sales1/MA_SASSD"); --重定向
return UIHelper.Result();
}
#endregion
2 每次重定向时指定下拉框的选择项
后台
public ActionResult MA_SASSD()
{
BindDDL_List();
string[] param = new string[3];
param[0] = txtSite1;
param[1] = txtBegin1;
param[2] = txtEnd1;
BindGrid1(sp_name1, param);
ViewBag.Selected = txtSite1;
return View();
}
前段
F.DropDownList()
.Label("据点")
.LabelWidth(80)
.ID("ddl_Site")
.SelectedValue(ViewBag.Selected)
.DataTextField("ddl_Text")
.DataValueField("ddl_Value")
.DataSource(ViewBag.ddl_SiteDataSource)
二,grid 中显示合计信息。
逻辑:根据得到的datatable 遍历要合计的列 求和
#region 总计信息
private JObject GetSummaryData(DataTable source)
{
float MA_UNIT_QTYTotal = 0.0f;
foreach (DataRow row in source.Rows)
{
MA_UNIT_QTYTotal += Convert.ToInt32(row["MA_UNIT_QTY"]);
}
JObject summary = new JObject();
//summary.Add("major", "全部合计");
summary.Add("MA_UNIT_QTY", MA_UNIT_QTYTotal.ToString("F2"));
}
把上步的函数赋值给 grid1.SummaryData()就可以显示合计了。