显示与单列不同的列值
本文关键字:单列不 显示 | 更新日期: 2023-09-27 18:25:35
我想向gridview不同的列显示单列值。。
例如:我的栏值是"事假:12病假:13年假:03"。。我想拆分上面的字符串值,并在网格中显示上面的值,如下所示。。。
Employee Id Employee Name Casual Leave Medical Leave Annual Leave
00624323 James 12 13 03
00624324 Fernando 12 14 05
注意:员工Id和员工姓名是不同的列
我的部分代码在这里:
DataSet5TableAdapters.sp_getallempleaveTableAdapter TA = new DataSet5TableAdapters.sp_getallempleaveTableAdapter();
DataSet5.sp_getallempleaveDataTable DS = TA.GetData();
if (DS.Rows.Count > 0)
{
DataView datavw = new DataView();
datavw = DS.DefaultView;
datavw.RowFilter = "fldempid='" + txtempid.Text + "' and fldempname='" + txtempname.Text + "'";
if (datavw.Count > 0)
{
string leavehistory = Convert.ToString(datavw[0]["fldleavehistory"]);
string[] textarray = leavehistory.Split('-');
foreach (string samtext in textarray)
{
if (samtext.StartsWith(leavehistory))// I want to check the string with array value
{
string newtext = samtext.Split(':')[1];
}
}
}
}
我做什么?请帮我解决这个
在数据库中使用这样的复合列从来都不是一个好主意。为什么不将该列拆分为3列(临时休假、医疗休假和年假),每列都包含一个数字?
使用leavehistory和newtext,您可以制作一个数据表并将其绑定到gridview,或者您可以更改sp以直接返回拆分的结果。
由于你在客户端已经编码了这么多,现在最好制作一个新的数据表,并向其中输入行,然后将该数据表添加到网格源
编辑:-
示例:-
DataTable newdatatable = new DataTable("New");
newdatatable.Columns.Add("Employee Id");
newdatatable.Columns.Add("Employee Name");
newdatatable.Columns.Add("Casual Leave");
newdatatable.Columns.Add("Medical Leave");
newdatatable.Columns.Add("Annual Leave");
newdatatable.AcceptChanges();
DataSet5TableAdapters.sp_getallempleaveTableAdapter TA = new DataSet5TableAdapters.sp_getallempleaveTableAdapter();
DataSet5.sp_getallempleaveDataTable DS = TA.GetData();
if (DS.Rows.Count > 0)
{
DataView datavw = new DataView();
datavw = DS.DefaultView;
datavw.RowFilter = "fldempid='" + txtempid.Text + "' and fldempname='" + txtempname.Text + "'";
if (datavw.Count > 0)
{
string leavehistory = Convert.ToString(datavw[0]["fldleavehistory"]);
string[] textarray = leavehistory.Split('-');DataRow drow = newdatatable.NewRow();
drow[0]=txtempid.Text;
drow[1]=txtempname.Text;
foreach (string samtext in textarray)
{
if (samtext.StartsWith(leavehistory))// I want to check the string with array value
{
drow[samtext.Split(':')[0]]=samtext.Split(':')[1];
}
}
newdatatable.Rows.Add(drow);
newdatatable.AcceptChanges();
}
}
gridview1.DataSource=newdatatable;