GridView控件的绑定问题;

WD13110480 2009-03-20 12:51:13
我用GridView控件绑定了一个数据库表,但是其中的一个字段我想用另一个表的字段内容来替换显示,我用了DropDownList来进行绑定,可是不管用,有没有什么方法让这个绑定的字段显示在表中,或者有其它更好的办法?
...全文
124 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
TkingCN 2009-03-21
  • 打赏
  • 举报
回复
两表之间的那个数据如果没什么关联 又想一起显示到datagridview中 建议用视图 再显示倒控件中
我感觉这个方法比较快捷
huang_net 2009-03-21
  • 打赏
  • 举报
回复
selectedValue
messi_yang 2009-03-21
  • 打赏
  • 举报
回复
三樓詳解
love_cloud 2009-03-21
  • 打赏
  • 举报
回复
同意三楼
wangzhenyue 2009-03-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 teerhu 的回复:]
一、两表没关联
那你将两个表加到同一个DataSet里面,把GridView的DataSource设定为dataset
将你要的字段替换,再绑定。
GridView1.DataSource=dataset;
GridView1.DataBind();

二、两表关联
可用以下方法合并两DataTable,把GridView的DataSource设定为datatable,将你要的字段替换,再绑定。


public enum JoinType { LeftJoin,InnerJion };

/// <summary>
/// 聯接兩個DataTable
/…
[/Quote]

同意
WD13110480 2009-03-21
  • 打赏
  • 举报
回复
辛苦大家了,

想了很久,还是用了视图绑定,

谢谢各位的高见!
teerhu 2009-03-21
  • 打赏
  • 举报
回复
一、两表没关联
那你将两个表加到同一个DataSet里面,把GridView的DataSource设定为dataset
将你要的字段替换,再绑定。
GridView1.DataSource=dataset;
GridView1.DataBind();

二、两表关联
可用以下方法合并两DataTable,把GridView的DataSource设定为datatable,将你要的字段替换,再绑定。


public enum JoinType { LeftJoin,InnerJion };

/// <summary>
/// 聯接兩個DataTable
/// </summary>
/// <param name="dt1">FirstDataTable</param>
/// <param name="dt2">SecondDateTable</param>
/// <param name="ColuName1">the columnName in FirstDataTable that use in connection.Exp: comp,dept</param>
/// <param name="ColuName2">the columnName in SecondDateTable that use in connection.Exp: comp,dept</param>
/// <param name="Mark">true:SecondDT移除行(InnerJion);false:SecondDT不移除行(LeftJoin)</param>
/// <param name="type"></param>
/// <returns></returns>
public static DataTable ConnectTwoTable(DataTable FirstDT, DataTable SecondDT, string ColuName1, string ColuName2, bool Mark,JoinType JType )
{
try
{
DataTable dt1 = FirstDT.Copy();
DataTable dt2 = SecondDT.Copy();
string[] Names1 = ColuName1.Trim().Split(',');
string[] Names2 = ColuName2.Trim().Split(',');
//確保ColuName1與ColuName2是不同的
string dtmNow = DateTime.Now.ToString("yyyyMMddhhmmss");
for (int i = 0; i < Names2.Length; i++)
{
string Name1 = Names1[i].ToString().Trim();
Names1[i] = Name1;
string Name2 = Names2[i].ToString().Trim();
dt2.Columns[Name2].ColumnName = Name2 + dtmNow;
Names2[i] = Name2 + dtmNow;
}
int FirstColuNum = dt1.Columns.Count;
dt1.BeginLoadData();
foreach (DataColumn colu2 in dt2.Columns)
{
if (dt1.Columns.Contains(colu2.ColumnName))
colu2.ColumnName += "_Second";//同名列加後綴"_Second"標示,已示區別.
dt1.Columns.Add(colu2.ColumnName, colu2.DataType);//不同名的列添加到dt1中.
}
int LastColuNum = dt1.Columns.Count;
List <DataRow> list= new List<DataRow>();
foreach (DataRow dt1Row in dt1.Rows)
{
string strSelect = string.Empty;
for (int j = 0; j < Names2.Length; j++)
{
string conText = dt1Row[Names1[j].ToString()].ToString();
strSelect += Names2[j].ToString() + "='" + conText + "' and ";
}
strSelect = strSelect.Substring(0, strSelect.Length - 5);
DataRow[] dt2Rows = dt2.Select(strSelect);
if (dt2Rows.Length > 0)
{
foreach (DataRow dt2Row in dt2Rows)
{
for (int i = FirstColuNum; i < LastColuNum; i++)
{
dt1Row[i] = dt2Row[i - FirstColuNum];
}
if (Mark)
dt2.Rows.Remove(dt2Row);//移除已使用過的行
}
}
else
{
list.Add(dt1Row);
}
}
if (JType == JoinType.InnerJion)
{
foreach (DataRow row in list)
{
dt1.Rows.Remove(row);
}
}
for (int k = 0; k < Names2.Length; k++)
{
dt1.Columns.Remove(Names2[k].ToString());
}
dt1.EndLoadData();
return dt1;
}
catch (Exception ex)
{
throw new Exception("the columnName is not in table" + ex.Message);
}
}
}
WD13110480 2009-03-20
  • 打赏
  • 举报
回复
关联?好像没什么关联吧,我不知道该怎么做呢,
麻烦你告诉我行嘛?
teerhu 2009-03-20
  • 打赏
  • 举报
回复
两个表之间有什么关联没

111,126

社区成员

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

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

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