1

オブジェクト クラスによって取り込まれたメッセージのグリッドビューがあります。オブジェクトにはリストがあり、メッセージごとに受信者のリストがあります。問題は、現在、グリッドビューに各メッセージの「Person[]」のみが表示されていることです。リスト内の受信者の数として表示したい。

どんな助けでも大歓迎です。

HTML

    <asp:GridView
        ID="grdMsgSent"
        runat="server"
        CssClass="cellSpacing"
        OnRowDataBound="grdMsgSent_RowDataBound"
        AllowSorting="True"
        EmptyDataText="You have not sent any messages."
        AllowPaging="True"
        PageSize="6"
        OnPageIndexChanging="grdMsgSent_PageIndexChanging"
        OnSorting="grdMsgSent_Sorting"
        AutoGenerateColumns="False">
<Columns>

<asp:BoundField DataField="Recipients" HeaderText="Recipients" />
</Columns>
</asp:GridView>

C#

grdMsgSent.DataSource = listSentMsg.List;
            grdMsgSent.DataBind();
4

2 に答える 2

1

たとえば、 という名前のデータ列がある場合、UserIDEval (DataBinding Expression) を使用してグリッド ビューに入力できます。したがって、コードはaspxページで次のようになります。

<asp:TemplateField HeaderText="UserID" Visible="false">
                                    <ItemTemplate>
                                        <asp:Label ID="lblUserID" runat="server" Text='<%# Eval("UserID") %>' />
                                    </ItemTemplate>
                                </asp:TemplateField>

C# コード ビハインドでは、

DataTable dataTable = new DataTable();
        DataColumn dataColumn;
        dataColumn = new DataColumn("UserID");
于 2013-09-26T01:34:56.990 に答える
0

テンプレートフィールドを使用できます:

array[] の場合、次のようにします。

<Columns>

    <asp:TemplateField>
        <ItemTemplate>                        
            <asp:Label ID="Label1"  runat="server" Text='<%#Eval("Recipients.Length") %>' />
        </ItemTemplate>
    </asp:TemplateField>

リストの場合、次のようにします。

<Columns>

    <asp:TemplateField>
        <ItemTemplate>                        
            <asp:Label ID="Label1"  runat="server" Text='<%#Eval("Recipients.Count") %>' />
        </ItemTemplate>
    </asp:TemplateField>
于 2013-09-26T01:22:31.170 に答える