高手们快来,一起瞧瞧自定义DataGrid的问题。超难!!
baron 2005-05-26 04:41:39 前阵子扩展了一个DataGrid控件,控件中有一个功能是当Grid具有固定高时,内容部分(Item部分)在记录多的时候出现一个滚动条。因为div是可以具有滚动条的,所以我采用了在第一个Item的第一个单元格的Text后面追加一些Html,以使原来Grid中的所有Item内置在我插入的<Div><table>中。同样的方式应用于最后一个Item的最后一个单元格,用来加上一些结束符。但这样带来了一些问题:1、第一个Item的第一个单元格的Text和最后一个Item的最后一个单元格的Text中含有很多HTML,在使用的时候不应该直接获得这Text,因为是错误的数据。2、当第一列或最后一列在先绑定后隐藏的情况下会问题。但对如先设置隐藏列然后绑定数据的这种情况是已经解决了的。我现在就碰到了单击某个按钮要隐藏最后两列,由于是PostBack后系统会自动先创建DataGrid并加载数据,然后才执行按钮事件隐藏最后两列。这时就会出现Grid的Html错乱的现象。
我想了想,也许我一开始的想法不有问题,因为这种情况似乎想不到解决方法。
我想将以前插入到第一个单元格中Text部分的内容改成插入到第一个Item中去。也就是第一个<Tr>中去,因为<tr>是不会被隐藏的,而且这样两个问题应该都可以解决。但如何在<tr ...中添加我自已怕Html呢?我试了下用e.Item.Attributes.add,但发现他的添加的属性是无序的,不会给我添到<tr中属性的最后面。而且可能会产生一些垃圾数据。因为e.Item.Attributes.add是用来添加属性的。
如果有谁想到问题的解决方法,实在是太感谢了。