zoukankan      html  css  js  c++  java
  • C# FINEUI 多页签(tab)中的笔记

       一。FINEUI (MVC) 日期格式问题:

       FINEUI 日期控件从VIEW 到control 中的值传递问题(view 中的传值代码如 “txtDate1: F.ui.DatePicker1.getValue(),”  但是在control 里得到的格式 并非标准的 ‘yyyy-MM-dd’格式Thu Jun 01 2017 00:00:00 GMT+0800

     这种带时区的字符串不可转换成日期格式 可以用Substring()  取时区前面的部分。转换成日期格式 在转换成想要的格式 我的转换方式如:Convert.ToDateTime(txtDate2.Substring(0, 24)).ToString("yyyy-MM-dd");

    二。FINEUI(MVC) 多页签公用查询 条件, 查询按钮导出按钮的解决方法。

      

    由于页签的内容比较多,表头形式各异,所以在页面布局和公用部分做了很多尝试,现在写出的是比较笨的方法,把所有的页面全部的View代码和control 全部放一个view 页面和控制器页面 这样代码的复制度 确实复杂了很多。但是在这里我尝试着有了switch 语句 简化了代码 和逻辑。

    a. 在View上 :  F.ui.TabStrip1.getActiveTabIndex() 获取当前活动的tab index ; 在活动的tab找到对应的Grid 的ID 再将所得Grid 做查询和导出按钮的参数

    具体代码如下:

    //alert("1");
    //grid 表头
    var grid_fields;
    var grid_fields2;
    //获取grid 的ID
    var grid;
    var grid2;
    //获取活动tab
    var active = F.ui.TabStrip1.getActiveTabIndex() + 1;
    var active2 = F.ui.TabStrip2.getActiveTabIndex() + 3;

    switch(active)
    {

    case 1:
    grid_fields = F.ui.Grid1.fields;
    grid = F.ui.Grid1;

    break;
    case 2:
    grid_fields = F.ui.Grid2.fields;
    grid = F.ui.Grid2;

    break;
    default:

    break;

    }
    switch(active2)
    {
    case 3:
    grid_fields2 = F.ui.Grid3.fields;
    grid2 = F.ui.Grid3;
    break;
    case 4:
    grid_fields2 = F.ui.Grid4.fields;
    grid2 = F.ui.Grid4;
    break;
    case 5:
    grid_fields2 = F.ui.Grid5.fields;
    grid2 = F.ui.Grid5;
    break;
    case 6:
    grid_fields2 = F.ui.Grid6.fields;
    grid2 = F.ui.Grid6;
    break;
    default:
    break;

    }

    // 触发后台事件
    F.doPostBack('@Url.Action("Grid_ReBindGrid")', {
    fields: grid_fields,
    fields2: grid_fields2,
    index1: active,
    index2: active2,
    pageIndex: grid.pageIndex,
    pageSize: F.ui.ddlPageSize2.getValue(),
    txtSite: F.ui.ddl_Site.getValue(),
    txtDate1: F.ui.DatePicker1.getValue(),
    txtDate2: F.ui.DatePicker2.getValue()
    })

    b control 页的 方法 在初始化时 ,给每一个tab 中的Grid 赋初值:

    string sp_name1 = "P_MA_SASAD_LIST";
    string sp_name2 = "P_MA_SASSG_LIST";
    string sp_name3 = "P_MA_SASSM_LIST";
    string sp_name4 = "P_MA_SASSC_LIST";
    string sp_name5 = "P_MA_SASSS_LIST";
    string sp_name6 = "P_MA_SASAD_LIST";


    BindDDL_List();
    string[] param = new string[3];
    param[0] = "S10";
    param[1] = "2017-06-01";
    param[2] = "2017-12-01";
    BindGrid1(sp_name1, param);
    BindGrid(sp_name2, param);
    BindGrid(sp_name3, param);
    BindGrid(sp_name4, param);
    BindGrid(sp_name5, param);
    BindGrid(sp_name6, param);

    由于取值方法查不到 我把它和并成一个方法

    private void BindGrid(string sp_name, string[] param)
    {
    //表头

    int iPageIndex = 1;
    int iPageSize = 20;
    string WhereStr = " 1=1 ";
    //表内容
    DataTable dtHead = QueryCommonTst.GetQueryResult(sp_name, "column", iPageIndex, iPageSize, WhereStr, param);

    DataTable dt = QueryCommonTst.GetQueryResult(sp_name, "list", iPageIndex, iPageSize, WhereStr, param);

    switch (sp_name)
    {
    case "P_MA_SASSG_LIST":
    //表头
    ViewBag.Grid2Columns = GridCommon.GridHeadColumns(dtHead);
    //表记录
    ViewBag.Grid2RecordCount = Convert.ToInt32(QueryCommonTst.GetQueryResult(sp_name, "count", 1, 99999, WhereStr, param).Rows[0][0]);
    //表内容
    ViewBag.Grid2DataSource = dt;
    break;
    case "P_MA_SASSM_LIST":
    //表头
    ViewBag.Grid3Columns = GridCommon.GridHeadColumns(dtHead);
    //表记录
    ViewBag.Grid3RecordCount = Convert.ToInt32(QueryCommonTst.GetQueryResult(sp_name, "count", 1, 99999, WhereStr, param).Rows[0][0]);
    //表内容
    ViewBag.Grid3DataSource = dt;
    break;
    case "P_MA_SASSC_LIST":
    //表头
    ViewBag.Grid4Columns = GridCommon.GridHeadColumns(dtHead);
    //表记录
    ViewBag.Grid4RecordCount = Convert.ToInt32(QueryCommonTst.GetQueryResult(sp_name, "count", 1, 99999, WhereStr, param).Rows[0][0]);
    //表内容
    ViewBag.Grid4DataSource = dt;
    break;
    case "P_MA_SASSS_LIST":
    //表头
    ViewBag.Grid5Columns = GridCommon.GridHeadColumns(dtHead);
    //表记录
    ViewBag.Grid5RecordCount = Convert.ToInt32(QueryCommonTst.GetQueryResult(sp_name, "count", 1, 99999, WhereStr, param).Rows[0][0]);
    //表内容
    ViewBag.Grid5DataSource = dt;
    break;
    case "P_MA_SASAD_LIST":
    //表头
    ViewBag.Grid6Columns = GridCommon.GridHeadColumns(dtHead);
    //表记录
    ViewBag.Grid6RecordCount = Convert.ToInt32(QueryCommonTst.GetQueryResult(sp_name, "count", 1, 99999, WhereStr, param).Rows[0][0]);
    //表内容
    ViewBag.Grid6DataSource = dt;
    break;
    default:
    break;

    }

    }
    #endregion 数据绑定

    查询数据方法和初始化时思路一样

    #region 查询数据
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Grid_ReBindGrid(JArray fields, JArray fields2, int index1, int index2, int pageIndex, int pageSize, string txtSite, string txtDate1, string txtDate2)
    {
    string sp_name = "";
    string sp_name2 = "";
    FineUIMvc.GridAjaxHelper grid ;
    FineUIMvc.GridAjaxHelper grid2;

    switch (index1)
    {
    case 1:

    grid = UIHelper.Grid("Grid1");
    sp_name = "P_MA_SASSD_LIST";
    break;
    case 2:
    grid = UIHelper.Grid("Grid2");
    sp_name = "P_MA_SASSG_LIST";
    break;
    default:
    grid = UIHelper.Grid("Grid1");
    sp_name = "P_MA_SASSD_LIST";
    break;
    }
    switch (index2)
    {
    case 3:
    grid2 = UIHelper.Grid("Grid3");
    sp_name2 = "P_MA_SASSM_LIST";
    break;
    case 4:
    grid2 = UIHelper.Grid("Grid4");
    sp_name2 = "P_MA_SASSC_LIST";
    break;
    case 5:
    grid2 = UIHelper.Grid("Grid5");
    sp_name2 = "P_MA_SASSS_LIST";
    break;
    case 6:
    grid2 = UIHelper.Grid("Grid6");
    sp_name2 = "P_MA_SASAD_LIST";
    break;
    default:
    grid2 = UIHelper.Grid("Grid1");
    sp_name2 = "P_MA_SASSD_LIST";
    break;
    }

    string text = txtDate1.Substring(1, 24);
    string txtBegin = Convert.ToDateTime(txtDate1.Substring(0,24)).ToString("yyyy-MM-dd");
    string txtEnd = Convert.ToDateTime(txtDate2.Substring(0, 24)).ToString("yyyy-MM-dd");

    string[] aryKey = new string[3];
    aryKey[0] = txtSite;
    aryKey[1] = txtBegin;
    aryKey[2] = txtEnd;

    string WhereStr = " 1=1 ";

    DataTable dt = QueryCommonTst.GetQueryResult(sp_name, "list", pageIndex + 1, pageSize, WhereStr, aryKey);
    DataTable dt2 = QueryCommonTst.GetQueryResult(sp_name2, "list", pageIndex + 1, pageSize, WhereStr, aryKey);
    //表记录
    int count1 = Convert.ToInt32(QueryCommonTst.GetQueryResult(sp_name, "count", 1, 99999, WhereStr, aryKey).Rows[0][0]);
    int count2 = Convert.ToInt32(QueryCommonTst.GetQueryResult(sp_name2, "count", 1, 99999, WhereStr, aryKey).Rows[0][0]);

    // 1.设置总项数(数据库分页回发时,如果总记录数不变,可以不设置RecordCount)
    grid.RecordCount(count1);
    grid2.RecordCount(count2);

    // 2. 设置每页显示项数(每页记录数改变时,要设置PageSize)
    grid.PageSize(pageSize);
    grid2.PageSize(pageSize);

    grid.DataSource(dt, fields);
    grid2.DataSource(dt2, fields2);
    return UIHelper.Result();
    }
    #endregion 查询数据
    }

  • 相关阅读:
    Qt5对付中文真好用
    Qt5下的常见问题————C1083
    macbook pro retina 编程字体推荐
    boost::xml————又一次失败的尝试
    boost::xml——基本操作以及中文乱码解决方案 (续)
    C++单元测试2
    C++单元测试
    生成dll文件的示例
    咋一看你能看明白吗?
    boost::function实践——来自《Beyond the C++ Standard Library ( An Introduction to Boost )》
  • 原文地址:https://www.cnblogs.com/hzf08/p/7481975.html
Copyright © 2011-2022 走看看