.net 以编程方式着色的栅格视图单元格在回发时会失去颜色
我正在研究网格视图,它有基于内容的彩色单元格。我已经在RowDataBound事件上给它们上色了。但是,当他们的帖子返回到页面时,颜色就会丢失。正如@TimSchmelter和@julealgon在rowdatabound中正确指出的那样,在帖子返回时,颜色不会持续。所以我在RowCreated中进行了着色。但是,数据源在那里不可用,因此我将绑定网格时用作数据源的数据表存储在viewstate中,并使用rowcreated中的行索引e.row.rowIndex访问数据表行,并使用row created事件中的数据执行着色显示如何在.net 以编程方式着色的栅格视图单元格在回发时会失去颜色,.net,vb.net,gridview,webforms,postback,.net,Vb.net,Gridview,Webforms,Postback,我正在研究网格视图,它有基于内容的彩色单元格。我已经在RowDataBound事件上给它们上色了。但是,当他们的帖子返回到页面时,颜色就会丢失。正如@TimSchmelter和@julealgon在rowdatabound中正确指出的那样,在帖子返回时,颜色不会持续。所以我在RowCreated中进行了着色。但是,数据源在那里不可用,因此我将绑定网格时用作数据源的数据表存储在viewstate中,并使用rowcreated中的行索引e.row.rowIndex访问数据表行,并使用row crea
RowDataBound
中对其着色。该颜色不会在viewstate中持久化,因此您需要在每次回发时对其重新着色。单向:改用RowCreated
。问题是,您没有数据源。正如@TimSchmelter所说,您在代码隐藏中所做的事情不会自动为您保留。如果在RowDataBound
事件中进行了着色,则此事件不会再次触发,并且颜色将重置为默认值,这是webforms中的设计。您可以将网格包装在更新面板中,并确保它在不需要更新时不会更新,这将使颜色保持不变。当网格需要刷新时,它将重新绑定到数据,并再次应用您的颜色。您需要使用面板的UpdateMode
属性,默认情况下该属性为始终
。谢谢。。通过将我用作数据源的datatable存储在视图状态并在rowcreatedI期间使用它解决了这个问题。我知道这对您很有效,但我强烈建议不要将数据存储在viewstate中。您可以看到,存储在viewstate中的所有内容都会传递给客户端,并在每次往返时返回到服务器。这有时看起来似乎无关紧要,但如果您的数据实际上很大,您可能会遇到非常严重的问题。有一次,我们得到了一个11mb的html页面,不得不重新设计它。@julealgon是否有其他方法可以访问所创建行中的数据?也许您可以用更多信息更新OP,例如如何准确地更新颜色,rowdatabound
事件中的代码是什么,标记是如何设置的等。如果不将数据保存在某个位置(viewstate/session/etc),您确实无法访问rowcreated
事件中的数据,但我想确切了解您正在尝试做什么,以及如何建议一个不依赖于此的替代方案。