asp:DataList 渲染出多個 LinkButton,需求:點擊某個按鈕背景變紅,其他按鈕不變。無需 PostBack,純前端一行屬性即可實現。
<asp:LinkButton ID="lbtTypeName" runat="server"
Text='<%#Eval("typename") %>'
CommandName="brandName"
CommandArgument='<%#Eval("id") %>'
OnClientClick="this.style.background='#f00';return false">
</asp:LinkButton>
this 指向當前被點擊的 LinkButton DOM 元素。this.style.background='#f00':直接修改行內樣式,優先級最高,即時生效。return false:取消預設的 PostBack 行為,避免頁面重新整理導致樣式丟失。OnClientClick="document.querySelectorAll('.filter_list a').forEach(b=>b.style.background='');this.style.background='#f00';return false"
加上統一 class 名稱(如 CssClass="filter-btn"),即可用 querySelectorAll 批量重置,實現單選高亮。