用户
 找回密码
 立即注册

40

主题

340

帖子

1456

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1456
发表于 2016-3-25 11:59:48
      时光飞逝,转眼又到周二了,今天楼楼更的coms管理系统的"工作单"功能;“工作单”功能是从主页的“其他”子页的“工作单”菜单进入的,上周楼楼没有讲到“其他”子页菜单设计,现在来补上。“其他”子页的菜单项是一个IconMenuView控件,在选择IconMenuView的Groups菜单组集合属性的MenuViewGroups集合器编辑器”对话框来设置菜单组,通过MenuViewGroup中的Items菜单项集合的“MenuViewItemes集合器编辑器”对话框来添加一级菜单项
      点击“其他”子页的“工作单”菜单项进入到“工作单”主页。首先创建“工作单”主页界面,在这个界面中要做的是“我创建的”和“我审批的”的“工作单”显示列表,那么在这个界面需要“我创建的”和“我审批的”的两个button控件和一个列表展示的Gridview控件,因为需要做“工作单”状态的筛选功能,在设计的时候楼楼本来是将“筛选”按钮放到“标题”栏的服务器固定按钮“┇”下面的,发觉有点突兀,楼楼就将“筛选”按钮放到了左上角。界面基本布局已经好了,现在界面还不太美观,因coms管理系统主色调是蓝色,所以我们以蓝色为主,设置标题栏的背景颜色TitleBackColor属性设置为蓝色,因为进入工作单默认查看的功能是“我创建的”工作单,所以将“我创建的”按钮BackColor属性设置为蓝色
      工作单的基础界面布局好了,而对Gridview的Layout布局如下:

      那么工作单创建和编辑和详细界面也是通过lable,button,Textbox来实现布局,布局样式如下:
      













本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用道具 举报 回复
发表于 2016-3-25 14:45:29
      进入工作单默认加载的是“我创建的”数据,这里定义了一个变量btnMode,当btnMode为1时是“我创建的”的数据,btnMode为2时是“我审批的”数据;这里楼楼定义了一个Bind方法用来绑定数据,再在load事件中加载Bind方法。现在gridview便可展示“我创建的”数据,那么当数据较多的情况时,客户端加载速度就变慢了,在这种情况下数据需要进行分批加载,用到了UpSlippling(Gridview数据上拉事件)。

注:使用gridview的UpSlippling事件和DownSlippling事件时首先要将gridview的AllowSlip属性设置为True(允许上下拉事件滑动)。

  1. /// <summary>
  2. /// bind方法
  3. /// </summary>
  4. /// <remarks></remarks>
  5. private void Bind()
  6. {
  7.         try {
  8.                 switch (btnMode) {
  9.                         case 1:
  10.                                 //我创建的
  11.                                 this.btnWorkDCreate.ForeColor = Drawing.Color.DeepSkyBlue;

  12.                                 this.btnWorkDCheck.ForeColor = Drawing.Color.Gray;
  13.                                 break;

  14.                         case 2:
  15.                                 //我审批的
  16.                                 this.btnWorkDCreate.ForeColor = Drawing.Color.Gray;
  17.                                 this.btnWorkDCheck.ForeColor = Drawing.Color.DeepSkyBlue;
  18.                                 break;

  19.                 }

  20.                 pagesCount = GetNumber();
  21.                 //获取我创建或我审批工作单的总条数
  22.                 DataTable table = GetData(pageIndex);
  23.                 //我创建的或我审批的数据
  24.                 if (table.Rows.Count > 0) {
  25.                         this.GridView1.DataSource = table;
  26.                         this.GridView1.DataBind();
  27.                 } else {
  28.                         this.GridView1.Rows.Clear();
  29.                 }
  30.         } catch (Exception ex) {
  31.                 MessageBox.Show(ex.Message);
  32.         }
  33. }
复制代码
      Gridview数据上拉事件代码:

  1. /// <summary>
  2. /// GridView下拉事件
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. /// <remarks></remarks>
  7. private void GridView1_UpSlippling(object sender, EventArgs e)
  8. {
  9.         try {
  10.                 pageIndex += 1;
  11.                 if (pageIndex < pagesCount) {
  12.                         DataTable table = GetData(pageIndex);
  13.                         //分批工作单数据
  14.                         if (table.Rows.Count > 0) {
  15.                                 this.GridView1.AddData(table);
  16.                         }
  17.                 } else {
  18.                         MessageBox.Show("数据已加载完成!");
  19.                 }
  20.         } catch (Exception ex) {
  21.                 MessageBox.Show(ex.Message);
  22.         }
  23. }

复制代码
     当点击gridview的行项如果布局是可触发事件则用ItemClick事件(如Button,ImageButton等),若是不可触发事件则用CellClick事件(如lable,Image等),这里gridview布局用到的是不可触发事件CellClick。

  1. /// <summary>
  2. /// GridView点击事件
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. /// <remarks></remarks>
  7. private void GridView1_CellClick(object sender, GridViewCellEventArgs e)
  8. {
  9.         try {
  10.                 string WDOC_NO = e.Cell.Items["lblNOTE"].Value;
  11.                 //获取工作单编号

  12.                 switch (btnMode) {
  13.                         case 1:

  14.                                 frmWorkDocumentDetail frm = new frmWorkDocumentDetail();
  15.                                 frm.WDOC_NO = WDOC_NO;
  16.                                 this.Redirect(frm);

  17.                                 break;
  18.                         case 2:
  19.                                 frmWorkDocumentDetail1 frm = new frmWorkDocumentDetail1();
  20.                                 frm.WDOC_NO = WDOC_NO;
  21.                                 this.Redirect(frm, () =>
  22.                                 {
  23.                                         if (frm.ShowResult == Smobiler.Core.ShowResult.Yes) {
  24.                                                 Bind();
  25.                                         }
  26.                                 });
  27.                                 break;
  28.                 }
  29.         } catch (Exception ex) {
  30.                 MessageBox.Show(ex.Message);
  31.         }
  32. }

复制代码


     当点击“我创建的”按钮和“我审批的”按钮时,加载Bind方法。

  1. /// <summary>
  2. /// 工作单我创建的按钮事件
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. /// <remarks></remarks>
  7. private void btnWorkDCreate_Click(object sender, EventArgs e)
  8. {
  9.         btnMode = 1;
  10.         Bind();
  11. }

  12. /// <summary>
  13. /// 工作单我待审批的按钮事件
  14. /// </summary>
  15. /// <param name="sender"></param>
  16. /// <param name="e"></param>
  17. /// <remarks></remarks>
  18. private void btnWorkDCheck_Click(object sender, EventArgs e)
  19. {
  20.         btnMode = 2;
  21.         Bind();
  22. }
复制代码







使用道具 举报 回复 支持 反对
发表于 2016-3-25 16:09:10
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册