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