Как поместить 2 результата таблицы DataSet в один столбец GridView? - PullRequest
0 голосов
/ 11 мая 2009

У меня есть два результата из набора данных. Я хочу добавить оба результата в один столбец сетки. Я не хочу сливаться в коде позади. Есть ли другой способ сделать это?

<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"

Ответы [ 3 ]

4 голосов
/ 11 мая 2009

Вы пробовали:

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 будет медленным.

0 голосов
/ 12 мая 2009

Мой первый вопрос: почему вы не хотите объединить код позади? Чем больше контента вы привязываете к элементу управления, тем больше данных попадает в состояние просмотра элементов управления.

@Gary.Ray предлагает действительно хорошее решение, но вы можете найти что-то лучшее, если использовать linq для создания единого объекта данных из существующих наборов данных таким образом, чтобы вы включали только то, что вам нужно, а данные намного проще Выделите, подумайте об одном шаблоне ответственности, если вы можете переместить код, связанный с получением ваших данных, куда-то, что касается только получения данных, ваше приложение будет НАМНОГО легко поддерживать в будущем.

0 голосов
/ 12 мая 2009

Другой вариант - создать вычисляемый столбец в DataTable, используя свойство DataColumn.Expression

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...