【发布时间】:2011-06-07 13:58:53
【问题描述】:
我的应用程序有一个<asp:ListView>。当一个项目被选中时,我只想改变背景颜色为所选项目提供焦点。
代码摘录:
<asp:ListView id="ordersList" runat="server"
InsertItemPosition="LastItem"
onpagepropertieschanged="ordersList_PagePropertiesChanged"
onitemdeleting="ordersList_ItemDeleting"
oniteminserting="ordersList_ItemInserting"
onitemupdating="ordersList_ItemUpdating"
onitemcanceling="ordersList_ItemCanceling"
onitemediting="ordersList_ItemEditing"
onitemdatabound="ordersList_ItemDataBound"
DataKeyNames="OrderID"
onselectedindexchanging="ordersList_SelectedIndexChanging">
<LayoutTemplate>
<asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
</LayoutTemplate>
<ItemTemplate>
<div>
<asp:ImageButton ID="imgSelect" ImageUrl="~/img/bullet_go.png" runat="server"
CommandName="Select" ToolTip="select item" meta:resourcekey="imgSelectResource1"/>
<asp:ImageButton ID="imgEdit" ImageUrl="~/img/pencil.png" runat="server"
CommandName="Edit" ToolTip="edit item" meta:resourcekey="imgEditResource1"/>
<asp:ImageButton ID="imgDelete" ImageUrl="~/img/delete.png" runat="server"
CommandName="Delete" ToolTip="delete item" meta:resourcekey="imgDeleteResource1"/>
<!-- Fields goes here -->
<asp:Label ID="lblOrderId" Text='<%# Eval("OrderID") %>' runat="server" />
<asp:Label ID="lblCustomer" Text='<%# Eval("Customer.CompanyName") %>' runat="server" />
<asp:Label ID="lblEmployee" Text='<%# Eval("Employee.FullName") %>' runat="server" />
<asp:Label ID="lblOrderDate" Text='<%# Eval("OrderDate", "{0:d}") %>' runat="server" />
<asp:Label ID="lblRequiredDate" Text='<%# Eval("RequiredDate", "{0:d}") %>' runat="server" />
<asp:Label ID="lblShippedDate" Text='<%# Eval("ShippedDate", "{0:d}") %>' runat="server" />
<asp:Label ID="lblTotal" Text='<%# Eval("Total", "{0:N2}") %>' runat="server" />
</div>
</ItemTemplate>
<SelectedItemTemplate>
<div style="background-color:Navy; color:White; padding:0px;>
<asp:ImageButton ID="imgSelect" ImageUrl="~/img/bullet_go.png" runat="server"
CommandName="Select" ToolTip="select item" meta:resourcekey="imgSelectResource1"/>
<asp:ImageButton ID="imgEdit" ImageUrl="~/img/pencil.png" runat="server"
CommandName="Edit" ToolTip="edit item" meta:resourcekey="imgEditResource1"/>
<asp:ImageButton ID="imgDelete" ImageUrl="~/img/delete.png" runat="server"
CommandName="Delete" ToolTip="delete item" meta:resourcekey="imgDeleteResource1"/>
<!-- Fields goes here -->
<asp:Label ID="lblOrderId" Text='<%# Eval("OrderID") %>' runat="server" />
<asp:Label ID="lblCustomer" Text='<%# Eval("Customer.CompanyName") %>' runat="server" />
<asp:Label ID="lblEmployee" Text='<%# Eval("Employee.FullName") %>' runat="server" />
<asp:Label ID="lblOrderDate" Text='<%# Eval("OrderDate", "{0:d}") %>' runat="server" />
<asp:Label ID="lblRequiredDate" Text='<%# Eval("RequiredDate", "{0:d}") %>' runat="server" />
<asp:Label ID="lblShippedDate" Text='<%# Eval("ShippedDate", "{0:d}") %>' runat="server" />
<asp:Label ID="lblTotal" Text='<%# Eval("Total", "{0:N2}") %>' runat="server" />
</div>
</SelectedItemTemplate>
</asp:ListView>
问题是:
我这样做是在 <SelectedItemTemplate> 中复制 <ItemTemplate> 的代码,只是更改 <div> 的样式。问题是这会产生很多冗余代码:虽然我只是想改变背景样式,但我重新复制了所有字段。
这是完成此任务的最佳方法,或者有人可以提出更好的方法吗?
谢谢!
【问题讨论】:
标签: c# asp.net listview webforms