まず最初に、各行を編集できるように、データベースからテーブルをバインドする必要があります。<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>
しかし、同じ方法で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の各行にcssクラスを設定するために、次のコードの背後にコードを記述しました。
protected void dlStages_ItemDataBound(object sender, DataListItemEventArgs e)
{
e.Item.CssClass = "row";
}
問題は、それが私にゼブラテーブルを作成しないということです。代わりに、最初の列(どこから来たのかわかりません)をその灰色でペイントします。
誰かが私のコードの問題を教えてもらえますか?私の場合、DataListコントロール内にZEBRAテーブルを実装するにはどうすればよいですか?
前もって感謝します
PS私の質問は不明確かもしれないので、説明が必要な場合は、さらに詳しく説明します。