【问题标题】:How do i put 2 DataSet Table Results in one GridView Column?如何将 2 个数据集表结果放在一个 GridView 列中?
【发布时间】:2023-04-07 19:21:01
【问题描述】:

我有两个来自数据集的结果。我想将两个结果都添加到一个 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”

【问题讨论】:

    标签: c# .net asp.net html


    【解决方案1】:

    你试过了吗:

    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 页面上组合它们会最慢。

    【讨论】:

      【解决方案2】:

      另一种选择是使用 DataColumn.Expression 属性在 DataTable 中创建一个计算列

      【讨论】:

        【解决方案3】:

        我的第一个问题是你为什么不想在后面的代码中合并?绑定到控件的内容越多,放入该控件视图状态的数据就越多。

        @Gary.Ray 有一个非常好的解决方案,但您可能会发现更好的方法是使用 linq 从现有数据集中构建单个数据对象,这样您只包含您需要的数据并且数据更容易隔离,在这里考虑单一责任模式,如果您可以将处理获取数据的代码移动到仅处理获取数据的地方,那么您的应用程序将来会很容易维护。

        【讨论】:

          猜你喜欢
          • 2012-03-04
          • 2018-08-09
          • 2013-02-16
          • 2012-09-22
          • 2013-04-08
          • 1970-01-01
          • 2023-03-21
          • 2014-06-10
          • 2011-09-19
          相关资源
          最近更新 更多