0
    ChecklistRecordEntry =
            (from CRE in db.Checklist_Record_Entries
             where CRE.Check_List_Records_Id == checklistRecordId
             select CRE).ToList();

        foreach (Checklist_Record_Entry CRE in ChecklistRecordEntry)
        {
            comment.Text = CRE.Comment;
        }

2つのレコードが「ChecklistRecordEntry」に保存されているので、それらをループしてラベル「comment」にバインドしたいのですが、ループが回るたびに前のレコードを書き換えます

<asp:Label ID="comment" runat="server" />

ループを一周するたびに、同じラベルを使用する代わりに、前のラベル(画面に表示されます)の下に新しいラベルを追加します...ありがとうございます


返信ありがとうございます。すべての良い助け...テーブルの別々の行内に各レコードを表示しようとすると少し問題が発生しますが

<table class="detailstable FadeOutOnEdit">
                <tr>
                    <th style="width:200px;"></th>    
                    <th style="width:200px;">Item</th>    
                    <th style="width:200px;"></th>    
                    <th style="width:200px;"></th>    
                    <th style="width:200px;"><asp:Label ID="CommentHeader" Text="Comment" /></th>    
                </tr>
                <tr>
                    <th></th>
                    <th></th>
                    <th></th>
                    <th></th>
                    <th style="width:200px;"><asp:Label ID="Comment" runat="server"/></th>  
                </tr>
</table>

結果をすべて1つのセル内に表示します...何かアイデアはありますか?

4

4 に答える 4

2

リピーターをお勧めします。それはかなり簡単です。

<asp:Repeater id="rptComments" runat="server">
    <HeaderTemplate>
        <table class="detailstable FadeOutOnEdit">
            <tr>
                <th style="width:200px;"></th>    
                <th style="width:200px;">Item</th>    
                <th style="width:200px;"></th>    
                <th style="width:200px;"></th>    
                <th style="width:200px;"><asp:Label ID="CommentHeader" Text="Comment" /></th>    
            </tr>
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <th></th>
            <th></th>
            <th></th>
            <th></th>
            <th style="width:200px;"><%# Eval("Comment") %></th>  
        </tr>
    </ItemTemplate>
    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:Repeater>

次に、データをリピーターにバインドします。

ChecklistRecordEntry =
        (from CRE in db.Checklist_Record_Entries
         where CRE.Check_List_Records_Id == checklistRecordId
         select CRE).ToList();

rptComments.DataSource = ChecklistRecordEntry;
rptComments.DataBind();
于 2013-03-03T19:51:28.713 に答える
1

むしろ、コードビハインドで一時文字列変数を使用します。これは、foreachで+ =によって更新され、foreachが完了した後、コメントに割り当てられます。この一時変数にテキストを送信します。

于 2013-03-03T19:39:14.233 に答える
1

なぜこれをしないのですか:

foreach (Checklist_Record_Entry CRE in ChecklistRecordEntry)
{
    comment.Text += CRE.Comment + "<br/>";
}
于 2013-03-03T19:40:37.647 に答える
1

他の答えは問題ありませんが、使用することをお勧めしString.Joinます。

comment.Text = string.Join("<br />", 
    ChecklistRecordEntry.Select(a => a.Comment));

これToList()IEnumerable.

于 2013-03-03T19:43:07.557 に答える