none
功能设计不知道是我设计方向错误,还是其他,诚恳请您帮忙 RRS feed

  • 问题

  • 功能页面:单位录入一个合同信息,就需要下面的代理点协助办理的这么一个功能。代理点不固定,6个,可能会增加。添加信息后,只要其中的某些单位需要协助,我准备设计一个页面让操作员完成增删改查。

    我设计了2张表,一张主信息表tb_main,另张合同对应代理点的表tb_list。比如,我录入了一条合同信息,编号是1,那么触发器同步到tb_list,就有6条对应记录,把其中需要协办的单位的字段标示一下。

    现在主要问题在于前台界面,有些难度,

    由于代理点不固定,所以我只能用datagrid自动生成列,后台sql把代理实现行转列,输出到前台。

    以下代码是截取的片断,只是说明,这个复选框是怎么到前台的:

     

    数据中的复选框是这样输出的,我在后台赋值了,带上了代理点的编号,就是不知道,前台如果从datagrid中找到他:

    数据形式如下:

    编号, 合同名称,时间,代理点1,代理点2,代理点3

    1 ,国家重点工程,‘2010-03-12’,复选框,复选框,复选框

    用户如果需要代理点1协助,就点击对应的复选框,然后提交就可以。

    现在呢问题有很多,这个复选框是从数据库查询出来的,那么到时侯,我怎么提取?

    这是行转列的代码,但是我只截取部分,主要是说明如何生产这个复选框的。

    select item_name,the_date,'<input type="CheckBox" id="chk_data" name="chk_data" runat="server" checked value=''+Convert(varchar(1000),sum(case when dld_id='''+Convert(varchar(100),dld_id)+ ''' then  '+Convert(varchar(100),dld_id)+'  else 0 end))+''/> '' As '''+dld_name+''
    from tb_list

    请高手指点一下,我这样可以行,还是另有高招。

    2010年4月1日 8:09

答案

  • 你好,

    如果你用datagrid,在保存的时候可以采用下面的方式来获得checkbox的值:

    (this.dataGridView1.Rows[0].Cells[0] as DataGridViewCheckBoxCell).Value

    采用上面这种方式必须值添加的DataGridViewCheckBoxCell列才行。


    Microsoft Online Community Support
    2010年4月5日 1:53

全部回复

  • 我觉得你横着显示不太好吧。如果代理点很多,那不是你的页面会变的很难看?

    你可以再每个合同的后面加个下拉列表,里面绑定这个合同对应的代理点。

     

    1. 国家重点工程,‘2010-03-12’,下拉列表(里面是动态赋值的,根据你的合同编号)

     

    这样,页面布局就固定了。只是下拉菜单中的项不同而已。

     

    不知道,我理解到你的意思了没

    2010年4月1日 8:29
  • 代理点在可控的范围内,不会增长很多,用复选框的,主要是考虑用户的操作简洁性和方便性,直观性。
    2010年4月1日 8:45
  • 你好,

    如果你用datagrid,在保存的时候可以采用下面的方式来获得checkbox的值:

    (this.dataGridView1.Rows[0].Cells[0] as DataGridViewCheckBoxCell).Value

    采用上面这种方式必须值添加的DataGridViewCheckBoxCell列才行。


    Microsoft Online Community Support
    2010年4月5日 1:53