FineUI 官方论坛

标题: Grid模板列BUG [打印本页]

作者: 杜志彬    时间: 2012-9-19 03:13
标题: Grid模板列BUG
本帖最后由 杜志彬 于 2012-9-19 03:21 编辑

重现代码:前台:<Columns>
<ext:TemplateField SortField="IsDisabled" HeaderText="作废" Width="50px">
<ItemTemplate>
<%# (bool)Eval("IsDisabled") ? "作废" : "正常" %>
</ItemTemplate>
</ext:TemplateField>

</Columns>

后台:
        protected void grid_RowDataBound(object sender, ExtAspNet.GridRowEventArgs e)
        {
            // DataItem是行的数据源,
            // 如果数据源是DataTable/DataView/DataSet,则e.DataItem是DataRow
            // 如果数据源是List<MyClass>,则e.DataItem是MyClass
            // e.Values 是实际赋予此行每列的值,可以修改
            Account entity = e.DataItem as Account;
            if (!entity.IsDisabled)
                return;

            for (int i = 0; i < e.Values.Length; i++)
            {
                // 整行显示为红色
                e.Values = String.Format("<span style=\"color:#FF0000;\">{0}</span>", e.Values);
            }
        }


问题:如果记录已作废,在列表中显示“#@TPL@#pnlMain_grid_c4r1”,其他行记录正常。在导出到EXCEL时,遍历row.Values,其他列正常,唯独模板列中的数据显示为:
#@TPL@#pnlMain_grid_c4r0
#@TPL@#pnlMain_grid_c4r1
#@TPL@#pnlMain_grid_c4r2
#@TPL@#pnlMain_grid_c4r3
页面截图:

[attach]1101[/attach]
导出截图:
[attach]1100[/attach]

分析:经查看生成的HTML代码,估计是模板列的e.Values值有问题。






欢迎光临 FineUI 官方论坛 (https://www.fineui.com/BBS/) Powered by Discuz! X3.4