我有两个数据集的结果。我想在一个gridview列中添加两个结果。我不想在后面的代码中合并。还有另一种方法吗?
<asp:TemplateField HeaderText="Entered Date" SortExpression="Date">
<ItemTemplate>
<div style="text-align: center;">
<asp:Label ID="Label3" runat="server" Text='<%# formatDisplayDate(Eval("Date").ToString()) %>'></asp:Label>
</div>
</ItemTemplate>
</asp:TemplateField>
现在我将返回“04/04/2009”。我想回复“04/04 / 2009-PASSED”
答案 0 :(得分:4)
你试过了吗?
formatDisplayDate(Eval("Date").ToString()) & "-" & Eval("OtherField").ToString()
如果这不起作用,您应该可以为这些组合行设置TemplateField:
<asp:TemplateField HeaderText="CombinedFieldName" SortExpression="CombinedFieldName">
<ItemTemplate>
<asp:Label ID="Label1" runat="server"
Text='<%# DataBinder.Eval(Container,"DataItem.FirstField") %>' >
</asp:Label>
-
<asp:Label ID="Label2" runat="server"
Text='<%# DataBinder.Eval(Container,"DataItem.SecondField") %>' >
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
这就是说 - 如果可能的话,在数据库操作中进行字段连接通常会更有效。我没有测试过,但我认为SELECT中的连接速度最快,然后在代码隐藏中的数据集中连接,在ASP.Net页面上组合它们将是最慢的。
答案 1 :(得分:0)
另一种选择是使用DataColumn.Expression属性在DataTable中创建计算列
答案 2 :(得分:0)
我的第一个问题是为什么你不想合并后面的代码?绑定到控件的内容越多,放入控件视图状态的数据就越多。
@ Gary.Ray有一个非常好的解决方案,但您可能会发现更好的方法是使用linq从现有数据集构建单个数据对象,这样您只需要包含所需内容并且数据更容易隔离,在这里考虑单一责任模式,如果您可以将处理将数据处理的代码移动到仅处理获取数据的地方,您的应用程序将来很容易维护。