winform下的datagridview里面,有没有类似rowdatabound的方法可使用?
每次直接在datatable或者ds里面操作格式化数据发现还是不如webform下的这个方法方便。

解决方案 »

  1.   

    winform下的datagridview有单元格事件,你可以根据单元格来获得行数,再操作
      

  2.   

    有相应方法,代码如下:
            private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                DataGridView dgv = (DataGridView)sender;            if (e.Value.GetType() == typeof(decimal))
                {
                    e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;                decimal tempValue = (decimal)e.Value;
                    if (tempValue < 0)
                    {
                        e.CellStyle.ForeColor = Color.Red;
                    }
                }
                //税务机构
                if (dgv.Columns[e.ColumnIndex].Name == "NSR_SWJG_DM")
                {                e.Value = "(" + e.Value.ToString() + ")" + dm.nsr_swjg_dm.GetNsr_Swjg_Mc(e.Value.ToString());
                    e.FormattingApplied = true;
                }
                //街道性质
                if (dgv.Columns[e.ColumnIndex].Name == "JDXZ_DM")
                {
                    e.Value = "(" + e.Value.ToString() + ")" + dm.jdxz_dm.GetName(e.Value.ToString());
                    e.FormattingApplied = true;
                }
                //征收细目
                if (dgv.Columns[e.ColumnIndex].Name == "ZSXM_DM")
                {
                    e.Value = "(" + e.Value.ToString() + ")" + dm.zsxm_dm.GetZsxm_Mc(e.Value.ToString());
                    e.FormattingApplied = true;
                }
                ////征收细目
                //if (dgv.Columns[e.ColumnIndex].Name == "ZSPM_DM")
                //{
                //    //e.Value = "(" + e.Value.ToString() + ")" + dm.zspm_dm.GetZspmMc(e.Value.ToString());
                //    //e.FormattingApplied = true;            //    MessageBox.Show(dm.zspm_dm.Count.ToString());
                //}
                //应征凭证录入人
                if (dgv.Columns[e.ColumnIndex].Name == "YZPZLRR_DM")
                {
                    e.Value = "(" + e.Value.ToString() + ")" + dm.czry_dm.GetName(e.Value.ToString());
                    e.FormattingApplied = true;
                }
                //登记注册类型
                if (dgv.Columns[e.ColumnIndex].Name == "DJZCLX_DM")
                {
                    e.Value = "(" + e.Value.ToString() + ")" + dm.djzclx_dm.GetDjzclx_Mc(e.Value.ToString());
                    e.FormattingApplied = true;
                }
                //行业
                if (dgv.Columns[e.ColumnIndex].Name == "HY_DM")
                {
                    e.Value = "(" + e.Value.ToString() + ")" + dm.hy_dm.GetHy_Mc(e.Value.ToString());
                    e.FormattingApplied = true;
                }
                //征管税务人员
                if (dgv.Columns[e.ColumnIndex].Name == "ZGSWRY_DM")
                {
                    e.Value = "(" + e.Value.ToString() + ")" + dm.czry_dm.GetName(e.Value.ToString());
                    e.FormattingApplied = true;
                }
            }
      

  3.   

    CellFormatting事件,可以進行格式化設置.如下:        private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                if (e.ColumnIndex ==0 )
                {
                    e.CellStyle.Format = "f2";
                }
            }
      

  4.   

    如果我要在一个cell内修改绑定的值如何做呢?
    比如
    Image img = (Image) e.Row.Cells[3].FindControl("imgAttach");
                    if (Convert.ToBoolean(gv.DataKeys[e.Row.RowIndex].Values["IsAttach"]))
                    {
                        img.ImageUrl = AppPath + "/Skin/Blue/BaseInfo/bodyAttachment.gif";
                    }
                    else
                    {
                        img.Visible = false;
                    }HyperLink link = (HyperLink) e.Row.Cells[6].FindControl("hplTitle");
    link.NavigateUrl = "bbs/aaa.aspx"
    在winform下如何做?
    好像没有模版列这个属性啊
      

  5.   

    没有模板列,那就直接读取修改datagridview.rows[rowindex].cells[columnindex].value
      

  6.   

    我是直接操作的datagridview.rows[rowindex].cells[columnindex].value
    但却告诉我无限循环了