首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于DataGridView格式化逻辑值 [已结贴,结贴人:zixr365]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zixr365
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-08-20 09:33:10 楼主
    数据库里面有一张表,性别字段char(1)型的,是用1表示男,0表示女。在绑定到DataGridView后,显示的仍然是0和1,请问如何能让程序判断数据为0的时候显示“女”,数据为1的时候显示为“男”呢?最好是可以直接在DataGridView的属性里设置。winform程序
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • peterb
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 09:40:431楼 得分:0
    DataGridViewComboColumn列或者cellformat事件里面写代码
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • LockMyeye
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 09:44:342楼 得分:5
    DataGridView使用虚拟模式。
    如果是自动生成绑定列的,要先屏蔽原来的“性别”列。
    创建新列,映射到“性别”


                DataTable dtGender = new DataTable();
                dtGender.Columns.Add("Value", typeof(string));
                dtGender.Columns.Add("Display", typeof(string));
                dtGender.Rows.Add(new object[] { "0", "男" });
                dtGender.Rows.Add(new object[] { "1", "女" });

                DataGridViewComboBoxColumn colGender = new DataGridViewComboBoxColumn();
                colGender.DataSource = dtGender;
                colGender.ValueMember = "Value";
                colGender.DisplayMember = "Display";
                colGender.DataPropertyName = "Gender";
                colGender.Name = "GenderName";
                colGender.HeaderText = "性别";
                colGender.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                colGender.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                colGender.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                colGender.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
                colGender.SortMode = DataGridViewColumnSortMode.Automatic;
                dgvJsydpb.Columns.Insert(5, colGender);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • accomp
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 09:45:073楼 得分:0
    <asp:Label ID="lblSex" runat="server" Text=' <%# int.Equals(Convert.ToInt32(DataBinder.Eval(Container, "DataItem.sex")),0)?"女":"男" %>'> </asp:Label>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cftea
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 09:46:164楼 得分:15
    在 sql 语句中处理
    sql = @"select 姓名, case 性别
                when '0' then '女'
              when '1' then '男'
              else ''
            end as 性别
              from……
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mobin4211
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 09:54:565楼 得分:0
    参考一下 
      protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
                if (e.Row.RowType == DataControlRowType.DataRow)
            {
                Label lb = (Label)e.Row.FindControl("Label1");
                int aa = Convert.ToInt32(lb.Text);
                if (aa == 0)
                {
                    lb.Text = " <img src='images/s_blue_1.gif' />";
                }
                else if (aa == 1)
                {
                    lb.Text = " <img src='images/s_blue_2.gif' />";
                }
                else if (aa == 2)
                {
                    lb.Text = " <img src='images/s_blue_3.gif'  />";
                }
                else
                {
                    lb.Text="";
                }

            }
        }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zixr365
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 12:25:226楼 得分:0
    好多人都没有看清问题啊,我说了是WinForm啊,怎么还这么多给WebForm的啊,而且还用ComboBox列。我自己解决了,其实挺简单的,直接改变单元格里面的值就行了。代码我也贴出来。

            private void FormatSex()
            {
                for (int i = 0; i < dataGridView1.RowCount; i++)
                {
                    if (dataGridView1["Sex", i].Value.ToString() == "0")
                    {
                        dataGridView1["Sex", i].Value = "女";
                    }
                    else
                    {
                        dataGridView1["Sex", i].Value = "男";
                    }
                }
            }
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved