原起:
我想做个动态加载Table的小例子,可弄了一天,发现了些让我很不解的问题
主题:
在主页中加载Table
protected System.Web.UI.WebControls.Table Table1;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
InitTable();
}
}
private void InitTable()
{
ProCard proCard=new ProCard();
Table1.Rows.Add(proCard.addFirstNode());
//根据上一行生成新的行
Table1.Rows.Add(proCard.add(Table1.Rows[0]));
}public class ProCard
{
public TableRow addFirstNode()
{
TableRow firstRow=new TableRow(); TableCell firstCell=new TableCell();
firstCell.Text ="first";
TableCell secondCell=new TableCell();
secondCell.Text="second"; firstRow.Cells.Add(firstCell);
firstRow.Cells.Add(secondCell); return firstRow;
}
public TableRow add(TableRow ParentRow)
{
TableRow reRow=new TableRow();
reRow=ParentRow;
//ParentRow.Cells.Clear();
TableCell newCell=new TableCell();
newCell.Text="newCell"; reRow.Cells.Add(newCell);
return reRow;
}
}问题一:在ProCard类add函数中把ParentRow.Cells.Clear();去掉注释,则reRow的所有Cells也会被清空,这种现象好像以前遇到过,但这是为什么?
问题二:结果只显示“first second newCell”,感觉好像是proCard.add函数改变了Table1.Rows[0],而且,设断点发现改变proCard.add(TableRow ParentRow)函数中的ParentRow,Table1.Rows[0]也确实会出现相应变化,这是为什么?
我想做个动态加载Table的小例子,可弄了一天,发现了些让我很不解的问题
主题:
在主页中加载Table
protected System.Web.UI.WebControls.Table Table1;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
InitTable();
}
}
private void InitTable()
{
ProCard proCard=new ProCard();
Table1.Rows.Add(proCard.addFirstNode());
//根据上一行生成新的行
Table1.Rows.Add(proCard.add(Table1.Rows[0]));
}public class ProCard
{
public TableRow addFirstNode()
{
TableRow firstRow=new TableRow(); TableCell firstCell=new TableCell();
firstCell.Text ="first";
TableCell secondCell=new TableCell();
secondCell.Text="second"; firstRow.Cells.Add(firstCell);
firstRow.Cells.Add(secondCell); return firstRow;
}
public TableRow add(TableRow ParentRow)
{
TableRow reRow=new TableRow();
reRow=ParentRow;
//ParentRow.Cells.Clear();
TableCell newCell=new TableCell();
newCell.Text="newCell"; reRow.Cells.Add(newCell);
return reRow;
}
}问题一:在ProCard类add函数中把ParentRow.Cells.Clear();去掉注释,则reRow的所有Cells也会被清空,这种现象好像以前遇到过,但这是为什么?
问题二:结果只显示“first second newCell”,感觉好像是proCard.add函数改变了Table1.Rows[0],而且,设断点发现改变proCard.add(TableRow ParentRow)函数中的ParentRow,Table1.Rows[0]也确实会出现相应变化,这是为什么?
解决方案 »
- asp.net 关于自定义控件!是牛人就进来看看
- 我想用自己的机器搭建一个TFS源码的服务器,求大神帮忙
- 编程方式方面的一个问题
- 当鼠标划过gridview的行时,该行的字体变色,请帮忙!
- 能在.htm网页中实现这两个效果吗?急!!!
- listbox问题:当 SelectionMode 为 Single 时,不能选择多项。
- 求助,关于DropDownList控件的问题
- 帮帮我!!日期查询问题
- 好何控制datareader的指針.
- 版主看过来
- AspGrid。。。。aspgrid控件有多条记录,但鼠标点击某条记录不起作用,有谁知道原因。急
- 可以将 F:\DIR 目录映射成 D:\dir1\dir 目录吗???
第二个问题:同第一个问题
二:我调用时没用ref啊,传的是地址吗?
对象 包括 数组 传递都是以引用方式传递
问题二还是有点想不明白,如果它也是传地址,那微软干吗还弄个ref出来啊?