目前使用c#编写asp.net程序
其中客户端一些表格是通过 runat server的  htmltable生成的但是,生成数据的时候,
发现了一些很奇怪的问题,参看下面代码:请留意代码里面for debug部分
为了测试,我把单元格里面的innerhtml写在一个临时的stmp字符串里面,
当执行完htmltable 添加 htmltable row的方法之后,
重新把这些 innerhtml 组成的stmp字符串打印出来以后,
字符串的内容居然变了。(但是去掉“tblRegionalConsumptionHistoryInfo.Rows.Add(row);”这一句,一切正常。一下子说不清楚,看代码就知道了。//------------变量定义-------
            HtmlTableRow row;
            HtmlTableCell cell_RegionName;
            HtmlTableCell cell_Year;
            HtmlTableCell cell_ConsumedQuantity_YearFrom;
            HtmlTableCell cell_ConsumedQuantity_YearTo;
            HtmlTableCell cell_ConsumedQuantityShare_YearFrom;
            HtmlTableCell cell_ConsumedQuantityShare_YearTo;            
            HtmlTableCell cell_ConsumedValue_YearFrom;
            HtmlTableCell cell_ConsumedValue_YearTo;
            HtmlTableCell cell_ConsumedValueShare_YearFrom;
            HtmlTableCell cell_ConsumedValueShare_YearTo;
            string sTmp;//--------------各单元格赋值------
for (i=0;i<query_result.count;i++)   //在记录集里面循环
{               cell_RegionName=new HtmlTableCell();
               cell_RegionName.InnerHtml=.....
.....以下略......                    ///添加行
                    row = new HtmlTableRow();
                    row.Cells.Add(cell_RegionName);
                    row.Cells.Add(cell_ConsumedQuantity_YearFrom);
                    row.Cells.Add(cell_ConsumedQuantity_YearTo);
                    row.Cells.Add(cell_ConsumedQuantityShare_YearFrom);
                    row.Cells.Add(cell_ConsumedQuantityShare_YearTo);
                    row.Cells.Add(cell_ConsumedValue_YearFrom);
                    row.Cells.Add(cell_ConsumedValue_YearTo);
                    row.Cells.Add(cell_ConsumedValueShare_YearFrom);
                    row.Cells.Add(cell_ConsumedValueShare_YearTo);//-------for debug-----
                    
                    sTmp = string.Format("FillConsumptionTransferHistory:before AddRow,{0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}"
                    , cell_RegionName.InnerHtml
                    , cell_ConsumedQuantity_YearFrom.InnerHtml
                    , cell_ConsumedQuantity_YearTo.InnerHtml
                    , cell_ConsumedQuantity_YearFrom.InnerHtml
                    , cell_ConsumedQuantity_YearTo.InnerHtml
                    , cell_ConsumedValue_YearFrom.InnerHtml
                    , cell_ConsumedValue_YearTo.InnerHtml
                    , cell_ConsumedValueShare_YearFrom.InnerHtml
                    , cell_ConsumedValueShare_YearTo.InnerHtml);
                    MyEventLog.Log.Debug(sTmp);
//-------------------
                    tblRegionalConsumptionHistoryInfo.Rows.Add(row);  ///该htmltable 添加该行。执行完这句以后,变量row里面的相关信息居然改变了,结果相关cell的信息也出错了,如果把这句话去掉,一切正常。
//-------------debug---\/
                    sTmp = string.Format("FillConsumptionTransferHistory:after AddRow,{0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}"
                    , cell_RegionName.InnerHtml
                    , cell_ConsumedQuantity_YearFrom.InnerHtml
                    , cell_ConsumedQuantity_YearTo.InnerHtml
                    , cell_ConsumedQuantity_YearFrom.InnerHtml
                    , cell_ConsumedQuantity_YearTo.InnerHtml
                    , cell_ConsumedValue_YearFrom.InnerHtml
                    , cell_ConsumedValue_YearTo.InnerHtml
                    , cell_ConsumedValueShare_YearFrom.InnerHtml
                    , cell_ConsumedValueShare_YearTo.InnerHtml);
                    MyEventLog.Log.Debug(sTmp);
//---------------------/\-----
}