1

まず最初に、各行を編集できるように、データベースからテーブルをバインドする必要があります。<EditItemTemplate>リピーターにはプロパティがないのにプロパティがあるので、DataListを選択することにしました。

Zebraテーブルを作成する必要があり、そのために次のCSSクラスを作成しました。

.row:nth-of-type(odd)
{
background-color:Green;
}

リピーターでこのクラスを使用すると、行と列をコーディングできるようにリピーターが構築されているため、正常に機能します。例えば:

<asp:Repeater>
<HeaderTemplate>
    <Table ...>
</HeaderTemplate>
<ItemTemplate>
  <tr Class="row">
    <td> ... </td>
    <td> ... </td>
  </tr>
</ItemTepmlate>
<FooterTemplate></Table></FooterTemplate>

これは、REPEATERテーブルがどのように見えるかです。

しかし、同じ方法でDataListを作成すると、奇妙で​​乱雑に見えます。これが私のデータリストの作成方法です。

<asp:DataList ID="dlStages" runat="server" DataKeyField="Priority" OnCancelCommand="dlStages_CancelCommand"
    OnEditCommand="dlStages_EditCommand" 
    OnUpdateCommand="dlStages_UpdateCommand" BorderWidth="2" 
     GridLines="Both" CellPadding="20" CellSpacing="20" Width="99%" 
    onitemdatabound="dlStages_ItemDataBound">

    <HeaderTemplate>

            <th>
                Priority
            </th>
            <th>
                Stage
            </th>
            <th>
                Description
            </th>
            <th>
                Command
            </th>
            <th>
                Expected End Date
            </th>
    </HeaderTemplate>
    <ItemTemplate>

            <td>
                <%# Eval("Priority") %>
            </td>
            <td>
                <%# Eval("StatusName") %>
            </td>
            <td>
                <%# Eval("Comments") %>
            </td>
            <td>
                <asp:LinkButton ID="lbtnEdit" runat="server" Text="Edit" CommandName="edit"></asp:LinkButton>
            </td>
            <td>
                <%# Eval("ExpectedEndDate", "{0:dd-MM-yyyy}")%>
            </td>

    </ItemTemplate>        
    <EditItemTemplate>

            <td>
                <%# Eval("Priority") %>
            </td>
            <td>
                <%# Eval("StatusName") %>
            </td>
            <td>
                <asp:TextBox ID="txtComments" runat="server" Text='<%# Eval("Comments") %>' Width="800px"
                    Height="48px" TextMode="MultiLine"></asp:TextBox>
            </td>
            <td>
                <asp:LinkButton ID="lbtnUpdate" runat="server" Text="Update" CommandName="update"></asp:LinkButton>
                /
                <asp:LinkButton ID="lbtnCancel" runat="server" Text="Cancel" CommandName="cancel"></asp:LinkButton>
            </td>
            <td>

                <asp:TextBox runat="server" ID="txtDate"></asp:TextBox>
                <asp:CalendarExtender ID="CalendarExtender1" runat="server" PopupButtonID="txtDate"
                    TargetControlID="txtDate" Format="dd-MM-yyyy">
                </asp:CalendarExtender>
            </td>
    </EditItemTemplate>
</asp:DataList>

DataListテーブル:

DataListの各行にcssクラスを設定するために、次のコードの背後にコードを記述しました。

protected void dlStages_ItemDataBound(object sender, DataListItemEventArgs e)
{
    e.Item.CssClass = "row";
}

問題は、それが私にゼブラテーブルを作成しないということです。代わりに、最初の列(どこから来たのかわかりません)をその灰色でペイントします。

誰かが私のコードの問題を教えてもらえますか?私の場合、DataListコントロール内にZEBRAテーブルを実装するにはどうすればよいですか?

前もって感謝します

PS私の質問は不明確かもしれないので、説明が必要な場合は、さらに詳しく説明します。

4

3 に答える 3

0

この関連する質問を参照してください:データリスト内にテーブルを作成する

  1. <tr>テンプレートでタグを指定していないため、DataList孤立した<td>タグを生成しているだけです

  2. の値を持つRepeatLayout属性を使用して、開始タグと終了タグを生成することができます。TableDataList<table>

于 2012-12-18T16:42:19.963 に答える
0

古い質問だと思いますが、このように必要なストライピングを取得するに は、のItemStyleAlternatingItemStyleプロパティを設定する必要がありますasp:DataListItemStyle="normalRow" AlternatingItemStyle="greenRow"

datalist タグの開始は次のようになります。

<style type="text/css">
.normalRow { background-color: white; }
.greenRow { background-color: green; }
</style>
<asp:DataList ID="dlStages" runat="server" DataKeyField="Priority" OnCancelCommand="dlStages_CancelCommand"
    OnEditCommand="dlStages_EditCommand" 
    OnUpdateCommand="dlStages_UpdateCommand" BorderWidth="2" 
     GridLines="Both" CellPadding="20" CellSpacing="20" Width="99%" 
    ItemStyle="normalRow" AlternatingItemStyle="greenRow"
    onitemdatabound="dlStages_ItemDataBound">
于 2013-06-20T16:45:44.270 に答える