在WinForm DataGridView一列如何绑定多个字段?
如在Asp.net中绑定:
<asp:GridView ID="gvwPerDetail" runat="server" AutoGenerateColumns="False" DataKeyNames="ID">
<Columns>
                <asp:TemplateField HeaderText="姓名(身份证)">
                    <HeaderStyle Width="130px" />
                    <ItemTemplate>
                        <%# Eval("IDCard")+"("+Eval("IDCard")+")" %>
                    </ItemTemplate>
                </asp:TemplateField>
</Columns>
</asp:GridView>

解决方案 »

  1.   

    在WinForm DataGridView一列如何绑定多个字段?
    如在Asp.net中绑定:
    <asp:GridView ID="gvwPerDetail" runat="server" AutoGenerateColumns="False" DataKeyNames="ID">
    <Columns>
                    <asp:TemplateField HeaderText="姓名(身份证)">
                        <HeaderStyle Width="130px" />
                        <ItemTemplate>
                            <%# Eval("IDCard")+"("+Eval("IDCard")+")" %>
                        </ItemTemplate>
                    </asp:TemplateField>
    </Columns>
    </asp:GridView>
      

  2.   

    试试
    <asp:GridView ID="gvwPerDetail" runat="server" AutoGenerateColumns="False" DataKeyNames="ID">
    <Columns>
                    <asp:TemplateField HeaderText="姓名(身份证)">
                        <HeaderStyle Width="130px" />
                        <ItemTemplate>
                            <%# Eval("IDCard")%> (<%# Eval("IDCard")%>)
                        </ItemTemplate>
                    </asp:TemplateField>
    </Columns>
    </asp:GridView>
      

  3.   

    在CellEndEdit事件里修改cell值,使值为几个字段值或合并单元格
      

  4.   

    不是在Asp.net里,是问在WinForm如何实现啊?
      

  5.   


    这么没用啊?调试时事件也没执行到
    private void gvwList_CellEndEdit(object sender, DataGridViewCellEventArgs e)
            {
                DataGridViewRow row = this.gvwList.Rows[e.RowIndex];
                var info = this.gvwList.Rows[e.RowIndex].DataBoundItem as PlayerInfo;
                if (info != null)
                {
                    row.Cells["Sex"].Value = info.Sex == 1 ? "男" : "女";//仍为数字
                    row.Cells["CountryID"].Value = bllCountry.GetCountryName(info.CountryID);//仍为数字
                    row.Cells["BelongTo"].Value = bllPlayerSpecialty.GetSpecialtys(info.PlayerID);//仍为数字
                }
            }
      

  6.   

    download的时候把datagridview遍历一下,给datagridview的特定列重新赋值
      

  7.   


    如  row.Cells["Sex"].Value = "年龄:13" + "性别: 男";   //把取出来的值合并往单元格里填!
      

  8.   


    To hanhanmj
    如  row.Cells["Sex"].Value = "年龄:13" + "性别: 男";  //把取出来的值合并往单元格里填!这个要在那个事件里写?
    privatevoid gvwList_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
    这个事件没用
      

  9.   

    如果是一开始就绑数据..CellValueChanged
      

  10.   

    LZ你先说下你开始是怎么样将数据弄到datagridview
      

  11.   

    用SQL语句把2个字段select成一个字段就OK了
      

  12.   

    9楼的方法还是很可行的
    如果在页面里处理的话会很麻烦的,CellEndEdit事件必须是在cell值编辑后才触发的,根本达不到直接就进行显示的要求
      

  13.   


    如果直接绑定的从数据库里面查出来的dataset.Table,那么就可以在sql里面处理2个字段合成一个
      

  14.   

    <asp:Label ID="lab" runat ="server" Text='<%# String.Format("{0}{1}",Eval("IDCard"),Eval("IDCard"))%>'></asp:Label>
      

  15.   

    下sql的时候直接 select cell1 || cell2 from table 可以解决!
      

  16.   


    这些方法我是考虑到的,
    问的目的是对不懂的方面多学学,
    我用CellFormating事件来解决了
      

  17.   

    你若是简单的连接俩个字段的话,为什么不在sql里控制

    省得在前台写这么多代码/
      

  18.   


    谢谢关注,
    问的目的是对不懂的方面多学学, 
    以后若碰到在sql里不能控制的就有办法。