当前位置:编程学习 > C#/ASP.NET >>

DataGrid产生的表格中如果让其中一列采用表达式的值呢?

DataGrid产生的表格中如果让其中一列采用表达式的值呢?
比如:
            <asp:BoundColumn DataField="user_card" HeaderText="身份证"></asp:BoundColumn>
            <asp:BoundColumn DataField="user_work" HeaderText="单位" ></asp:BoundColumn>
            <asp:BoundColumn DataField="user_depart" HeaderText="部门"></asp:BoundColumn>
            <asp:BoundColumn DataField="user_time" HeaderText="工作时间"></asp:BoundColumn>

其中,最后一行的工作时间需要是计算当前时间减去入职时间得到,但绑定后得到的数据列是入职时间“user_starttime”,请问这个问题怎么解决?谢谢。 --------------------编程问答-------------------- 使用模板列 --------------------编程问答-------------------- 能具体说下怎么用么,我刚开始学习。 --------------------编程问答-------------------- 你可以动态构建一个数据源
或者在你查询出的数据源添加一列

然后绑定计算后的列

类似
 DataTable dt1 = new DataTable();
        dt1.Columns.Add("Name");
        DataRow dr = dt1.NewRow();
        dr[列索引] = //计算值
        dt1.Rows.Add(dr); --------------------编程问答-------------------- 这种方法我也考虑过,但会有很多记录,每条记录都这么去加很麻烦啊,还有没有什么别的好办法呢? --------------------编程问答-------------------- 用模板列估计有戏,但怎么想BoundColumn一样自动给它添加一个属性名称(HeaderText)呢? --------------------编程问答-------------------- <asp:TemplateField HeaderText="工作时间">
                <ItemTemplate>
                    <asp:Label runat="server" Text='<%#(DateTime.Now-((DateTime)Eval("user_time"))) %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
以上方法得到的是TimeSpan类型的数据,形如365.23:59:28.9790795

也可转换成DateTime类型的数据,方法如下
<asp:TemplateField HeaderText="工作时间">
                <ItemTemplate>
                    <asp:Label runat="server" Text='<%#new DateTime((DateTime.Now-((DateTime)Eval("UserDateTime"))).Ticks) %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>


补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,