前两天在开发过程当中用到了一个第三方控件UltraWebGrid控件。在网上找了该控件的一些使用例子.自己写了一段动态增加数据行的函数(如下),并且在Page_Load里面进行了调用.
protected void FillWebGrid(UltraWebGrid webGrid)
{
UltraGridRow row;
for (int j = 0; j < 5; j++)
{
row = new UltraGridRow();
row.Cells.Add();
for (int i = 1; i < webGrid.Clolumns.Count; i++)
{
row.Cells.Add();
row.Cells[i].Text = "Love";
}
}
webGrid.Rows.Add(row);
}
该控件的行列值成功的变为了"Love",可是在点击触发一个Button按钮进行回传之后,奇怪的事情出现了,UltraWebGrid控件当中的行列值全都没有保存下来。在Page_Load里面设置了断点,发现刚进该Page_Load里面列就没有值了.仔细查了下,觉得这段代码很简短,思路也很清晰,应该不会出现问题的.于是,我的第一反应就是UltraWebGrid控件里面会有某个属性,根据这个属性的值可以选择Cell是否保存当前状态值。可是上网找了很久,也没有找到类似的问题.
到了最后,还是同事发现了问题,将添加行的动作放在初始化行之后的第一直.修改后点的代码如下:
protected void FillWebGrid(UltraWebGrid webGrid)
{
UltraGridRow row;
webGrid.Rows.Add(row);
for (int j = 0; j < 5; j++)
{
row = new UltraGridRow();
row.Cells.Add();
for (int i = 1; i < webGrid.Clolumns.Count; i++)
{
row.Cells.Add();
row.Cells[i].Text = "Love";
}
}
}
这个样子Cell的状态在刷新以后仍就是保存的.不明白为是么会出现这样的问题.
转载于:https://www.cnblogs.com/layen/archive/2009/07/22/ultrawebgrid.html