c# 关于DataGridView数据显示的问题

zaib2007 2009-03-02 05:00:18
我有一个表的数据如下:
t1 t2
01 aa
02 bb
01 cc
03 dd
在数据显示的时候,当t1=01时,显示 课程1,t2=02的时候显示 课程2,应该怎么样显示?
...全文
605 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyunfengleo 2009-03-11
  • 打赏
  • 举报
回复
不用改变顺序的
zaib2007 2009-03-05
  • 打赏
  • 举报
回复
liyunfengleo
楼上说的是覆盖grid的单元格吗?如果改变了grid的colunms的显示的顺序,那不是数值显示混乱了。
liyunfengleo 2009-03-03
  • 打赏
  • 举报
回复
在grid 中加label显示数据,然后在RowDataBound时写改变事件
zaib2007 2009-03-03
  • 打赏
  • 举报
回复
可以使用DataGridView的DataGridViewRow。value的值填充
使用CellFormatting事件,通过判断cells.value的值来填充数据。
但是在提交的时候,也需要同时对数据的值进行重新赋值。
limpid_123 2009-03-03
  • 打赏
  • 举报
回复
<asp:TemplateField HeaderText="userpwd">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("userpwd") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("userpwd") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
limpid_123 2009-03-03
  • 打赏
  • 举报
回复
string userpwd = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[1]).Text.ToString();
数据改变之后在进行一次BindGridView();
zaib2007 2009-03-03
  • 打赏
  • 举报
回复
通过对dataGridView的行的字段的控制,可以显示用户希望的数据,并且在提交数据的时候又不会影响数据的准确 性。
zaib2007 2009-03-03
  • 打赏
  • 举报
回复
小弟初学c#,不知到dataGridView的Cells的值中有没有 Value 和displayValue这样的实现的方式(就是绑定的值和显示的值)。
或者dataGridView没有这样的东西,需要重新改写dataGridView呢?
zaib2007 2009-03-03
  • 打赏
  • 举报
回复
回复:fy_study
楼上的回复也不是正确的答案。
应该是 dataGridView 在数据绑定的时候判断数据,然后重新写入dataGridView中cell中的值。
YYBYYB1984 2009-03-03
  • 打赏
  • 举报
回复
楼上正解!
fy_study 2009-03-03
  • 打赏
  • 举报
回复
你可以改改

string cmdstr = "select id,Uname,Upwd,CreatTime from Users";
string connstr = @" server =**;database = ** ; uid = sa; pwd = sa";
try
{
SqlDataAdapter oda = new SqlDataAdapter(cmdstr, connstr);
DataSet ds = new DataSet();
oda.Fill(ds, "test");
dataGridView1.DataSource = ds.Tables[0].DefaultView;
dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置标题文本位置
dataGridView1.DefaultCellStyle.ForeColor = Color.Blue;//设置前景色
dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; //设置列标头高度
dataGridView1.ColumnHeadersHeight = 35;//设置列标头高度
dataGridView1.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True;//设置列文本自动换行
dataGridView1.Columns[0].ToolTipText = "ID";
dataGridView1.Columns[1].ToolTipText = "用户帐号";
dataGridView1.Columns[2].ToolTipText = "用户密码";
dataGridView1.Columns[3].ToolTipText = "创建日期";
dataGridView1.Columns[0].HeaderCell.Value = "ID";
dataGridView1.Columns[0].Width = Convert.ToInt16(0);
dataGridView1.Columns[0].ReadOnly = true;
dataGridView1.Columns[1].HeaderCell.Value = "帐 号";
dataGridView1.Columns[1].Width = Convert.ToInt16(70);
dataGridView1.Columns[2].HeaderCell.Value = "密 码";
dataGridView1.Columns[2].Width = Convert.ToInt16(70);
dataGridView1.Columns[3].HeaderCell.Value = "创建日期";
dataGridView1.Columns[3].Width = Convert.ToInt16(100);
dataGridView1.Columns[3].ReadOnly = true;

}
catch
{
MessageBox.Show("读取失败.....", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
zaib2007 2009-03-03
  • 打赏
  • 举报
回复
如果可以的话直接在sql里面用 case when 来判断好了
那样,在数据提交的时候怎么办呢?
surlew 2009-03-03
  • 打赏
  • 举报
回复
如果可以的话直接在sql里面用 case when 来判断好了
zaib2007 2009-03-03
  • 打赏
  • 举报
回复
顶一下
zaib2007 2009-03-03
  • 打赏
  • 举报
回复
DataGridView数据显示的问题 ,
我开始的时候是在 DataGridView控件的RowPrePaint事件中,当DataGridView重画的时候,判断赋值,但是这样的效率不好,
DataGridView在不停的闪烁,不知道应该在那个方法事件中判断赋值??????????
根据楼上的回答,我觉得确实应该是在数据绑定的时候添加方法,
但是不知到使用的是DataGridView的控件的事件呢,还是使用的是bindingsource控件的事件???
  • 打赏
  • 举报
回复
在后台绑定时候控制,
先申明个全局变量id,绑定一次后让id++;
再找到gridview上的控件赋值给它就可以了。
如:

int id=1;
protected void grid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
Label lbl=(Label)e.Items.FondContros["Label1"];
lbl.Text="课程:"+id;
id++;
}
linhl 2009-03-02
  • 打赏
  • 举报
回复
<%="课程"+int.parse(Eval("t1").ToString()).ToString()%>
j45kp 2009-03-02
  • 打赏
  • 举报
回复
BoundField bf1 = new BoundField();
bf1.DataField = "";
bf1.HeaderText = "";
OracleGV.Columns.Add(bf1);
BoundField bf2 = new BoundField();
bf2.DataField = "";
bf2.HeaderText = "";
OracleGV.Columns.Add(bf2);
if (e.Row.RowIndex != -1)
{
int id = e.Row.RowIndex + 1;
e.Row.Cells[0].Text = id.ToString();
if (T1 == "01")
{
int i = RawDataScheduleGV.Columns.Count;
e.Row.Cells[1].Text = "";
e.Row.Cells[1].Enabled = false;
}
else if (T1 == "02")
{
int i = RawDataScheduleGV.Columns.Count;
e.Row.Cells[1].Text = "";
e.Row.Cells[1].Enabled = false;
}

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧