3

リピーターを SqlDataReader にバインドしますが、リピーターに行がない場合は ItedDataBound イベントに空白行が追加されます

4

3 に答える 3

5

1-最初にデータを保持するDataTableオブジェクトを作成します

2- ゼロの場合は DataTable の行数を確認し、空の DataRow オブジェクトを DataTable に追加します

3- Datareader オブジェクトの代わりに DataTable にリピーターをバインドする

if(dt.Rows.Count==0)
{
DataRow dr=dt.NewRow();
dt.Rows.Add(dr);
}

rptDemo.DataSource=dt;
rptDemo.DataBind();
于 2013-10-09T12:28:20.033 に答える
0

私の要件は、リピーター内に追加行を表示することでした。小さなチェックを行って空白行を最後の項目として含め、他のすべての行では空白行を非表示にしました。

使用済み

<%# (((IList)((Repeater)Container.Parent).DataSource).Count).ToString() == (Container.ItemIndex + 1).ToString() %> 

空白行を表示するか非表示にするかを決定するためのチェック。

ビューの完全なコード:

<table>
    <asp:Repeater ID="repeater1" OnItemCommand="repeater_user_Itemcommand" runat="server">
        <HeaderTemplate>
            <tr>
                <td>
                    Name
                </td>
                <td>
                    Email
                </td>
                <td>
                    Delete
                </td>
            </tr>
        </HeaderTemplate>
        <ItemTemplate>
            <tr>
                <td>
                    <asp:Label ID="lblName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Name") %>'></asp:Label>
                </td>
                <td>
                    <asp:Label ID="lblEmail" runat="server" Text='<%# Eval("Email") %>'></asp:Label>
                </td>
                <td>
                    <asp:LinkButton ID="btnDelete" runat="server" CommandArgument='<%# Eval("ID") %>'
                        CommandName="delete">Delete</asp:LinkButton>
                </td>
            </tr>
            <tr id="Tr1" runat="server" visible='<%# (((IList)((Repeater)Container.Parent).DataSource).Count).ToString() == (Container.ItemIndex + 1).ToString() %>'>
                <td>
                    <asp:TextBox ID="txtName_add" runat="server" Enabled="True" Text='' Visible="false"></asp:TextBox>
                </td>
                <td>
                    <asp:TextBox ID="txtEmail_add" runat="server" Text='' Visible="false"></asp:TextBox>
                </td>
                <td>
                    <asp:LinkButton ID="btnShowAdd" runat="server" CommandName="add">Add</asp:LinkButton>
                </td>
            </tr>
        </ItemTemplate>
    </asp:Repeater>
</table>
于 2013-11-13T13:16:54.153 に答える