关于“Silverlight”下“DataGrid控件”的疑问。 问题一: “Silverlight”下“DataGrid控件”不可以后台添加行吗??? 可以后台添加列:dg_Report.Columns.Add()
没有后台添加行的“Rows”集合的操作,也没有“Items”,怎么后台添加???
问题二:就像“Asp.net”中的“GridView”一样合并“列和行”,可以吗??? 有实例可以参考吗??? 问题三:“Silverlight Toolkit”下有没有类似“Asp.net”下“Table”的控件???
没有后台添加行的“Rows”集合的操作,也没有“Items”,怎么后台添加???
问题二:就像“Asp.net”中的“GridView”一样合并“列和行”,可以吗??? 有实例可以参考吗??? 问题三:“Silverlight Toolkit”下有没有类似“Asp.net”下“Table”的控件???
解决方案 »
- C#能开发淘宝的TOP吗?
- 如何把Access数据库软件做成共享的
- ORA-01465: 无效的十六进制数字
- vs.net编译器有快捷键可以定位修改后的黄绿条吗
- Visual Studio 2005(winform) DataGidView排序问题
- 我动态生成了一个radiobuttonlist,为什么进不了SelectedIndexChanged事件啊
- ? "" 表示什么?请解释一下最后一句和前五句分别是什么意思。
- 谁有沙漏,时钟等表示时间流逝的GIF动画,请MAIL给我,酬谢!
- Clone报错内存不足【winform】
- 帮帮小妹!这是什么问题呢?
- 64位机c#调用matlab怎么设置
- 有没有能实现这种的: 1 2 3 4 8 7 6 5 9 10 11 12 .....
DataGrid确实不能手动添加行,在DataGrid中一行是一个DataGridRow对象,DataGridRow会根据显示的行数来生成和复用,换句话说就是页面上显示几行就有几个DataGridRow,而不是由DataGrid数据的条数决定的
问题二:
ASP.Net中GridView本质上是html的table,table可以合并单元格;DataGrid是由DataGridRow和DataGridCell组成,目前还没有发现如何实现单元格合并
问题三:
ASP.Net本质上是些html,Silverlight与其去区别很大,本质上更像winform
对吭,Grid就像“asp.net”中的Table...
{
//取得缓存数据
var datas = GetData();
var XValue = (from KeyValuePair<KeyValuePair<string, string>, double[]> item in datas select item.Key.Value).ToArray(); //初始化表格
tblResult.Rows.Clear(); //标题
var tr = new TableRow { HorizontalAlign = HorizontalAlign.Center };
var td = new TableCell
{
Text = string.Format("{0}<br/>(单位:{1})", ChartTitle, EnergyUnit),
BackColor = Color.FromName(export ? "#CCFFFF" : "#E7EFF7"),
Height = Unit.Pixel(30),
ColumnSpan = (XValue.Length + 2)
};
tr.Cells.Add(td);
tblResult.Rows.Add(tr); //标头
tr = new TableRow { HorizontalAlign = HorizontalAlign.Center };
td = new TableCell { Text = "年份", Width = Unit.Pixel(80) };
tr.Cells.Add(td);
td = new TableCell { Text = "项目", Width = Unit.Pixel(100) };
tr.Cells.Add(td);
foreach (var data in datas)
{
td = new TableCell { Text = data.Key.Value, Wrap = false };
tr.Cells.Add(td);
}
tblResult.Rows.Add(tr); //内容
var years = GetSelectedYears();
for (var X = 0; X < years.Count; X++)
{
//年耗量合计
tr = new TableRow { HorizontalAlign = HorizontalAlign.Center };
td = new TableCell
{
RowSpan = rdoStatisticsType.SelectedIndex != 2 ? 3 : 2,
Text = string.Format("{0}年", years[X]),
};
tr.Cells.Add(td);
td = new TableCell { Text = "年耗量合计" };
tr.Cells.Add(td);
for (var I = 0; I < XValue.Length; I++)
{
td = new TableCell { Text = datas[I].Value[X].ToString() };
tr.Cells.Add(td);
}
tblResult.Rows.Add(tr); //单位面积能耗
tr = new TableRow { HorizontalAlign = HorizontalAlign.Center };
td = new TableCell { Text = "单位面积能耗" };
tr.Cells.Add(td);
for (var I = 0; I < XValue.Length; I++)
{
//面积
double area;
if(rdoStatisticsType.SelectedIndex == 0)
{
area = AreaHeadCount.Where(item => item.Key.StartsWith("R#")).Select(item => item.Value[0]).Sum();
}
else
{
var index = I;
var info = AreaHeadCount.Where(item => item.Key == (rdoStatisticsType.SelectedIndex != 2 ? "R#" : "F#") + datas[index].Key.Key).FirstOrDefault();
area = (info.Value == null || info.Value[0] == 0) ? 0 : info.Value[0];
} td = new TableCell { Text = (area == 0 ? 0 : datas[I].Value[X] / area).ToString("#0.00") };
tr.Cells.Add(td);
}
tblResult.Rows.Add(tr); //
if (rdoStatisticsType.SelectedIndex == 2) continue; //
tr = new TableRow {HorizontalAlign = HorizontalAlign.Center};
td = new TableCell {Text = "平均消耗"};
tr.Cells.Add(td);
for (var I = 0; I < XValue.Length; I++)
{
//人数
double count;
if (rdoStatisticsType.SelectedIndex == 0)
{
count = AreaHeadCount.Where(item => item.Key.StartsWith("R#")).Select(item => item.Value[1]).Sum();
}
else
{
var index = I;
var info = AreaHeadCount.Where(item => item.Key == (rdoStatisticsType.SelectedIndex != 2 ? "R#" : "F#") + datas[index].Key.Key).FirstOrDefault();
count = (info.Value == null || info.Value[1] == 0) ? 0 : info.Value[1];
} td = new TableCell { Text = (count == 0 ? 0 : datas[I].Value[X] / count).ToString("#0.00") };
tr.Cells.Add(td);
}
tblResult.Rows.Add(tr);
} //边框
foreach (TableRow row in tblResult.Rows)
{
foreach (TableCell cell in row.Cells)
{
cell.Style.Add("border", string.Format("1px {0} #000000", export ? "thin" : "solid"));
}
}
}Silverlight的“Grid”控件,可以做吗??? 它有没有“Row”、“Cell”这些属性,来设置行,单元格等???
var tr = new RowDefinition();
//var tr = new TableRow { HorizontalAlign = HorizontalAlign.Center };
var col = new ColumnDefinition(); var td = new TextBlock
{
Text = string.Format("{0}<br/>(单位:{1})", ChartTitle, EnergyUnit),
BackColor = Color.FromName(export ? "#CCFFFF" : "#E7EFF7"),
Height = Unit.Pixel(30),
ColumnSpan = XValue.Length + 1
};
问题一:Silverlight下的“Grid”的“RowDefinition()”相当于“asp.net”下“Table”控件的“TableRow”,对吧???Silverlight下的“Grid”控件有“ColumnDefinition”属性,但是没有“Cell”属性。“ColumnDefinition”它相当于“TableCell”吗???问题二:如果在Grid下增加一行,然后在该行上增加一个单元格,单元格“跨五列”应该怎么实现??? tr.Cells.Add(td);
tblResult.Rows.Add(tr);