如何在回发期间在客户端保留Label样式集

时间:2014-12-04 00:52:20

标签: javascript asp.net client-side

Asp.net 4.0 webform web应用程序... 我试图绕过这个场景并想把它扔到那里以获得解释。

在我的页面上,我有一个HTML表格。在其中一个单元格中,我有一个复选框,在单击时在服务器端执行某些功能。这已经到位。我想要做的是在单击此复选框时执行控件操作(样式,禁用等),然后继续服务器端调用。

这是一个狙击手:

<table>
        <tr>
            <td style="width:10%; color: #FFFFFF;">                    
            </td>
            <td style="width:15%; color: #FFFFFF;">         
            </td>
            <td class="TdAvailable" id="TdTeam" style="width:15%; color: #FFFFFF;" align="left">
                Team
            </td>
            <td class="TdAvailable" id="TdPrimaryContact"  style="width:15%; color: #FFFFFF;" align="left">
                Primary Contact
            </td>
            <td style="width:15%; color: #FFFFFF;" align="left">
                Status
            </td>
            <td style="width:15%; color: #FFFFFF;" align="left">
                Type
            </td>
        </tr>
    <tr>
        <td>
            <asp:CheckBox ID="chkShowFavorites" runat="server" Text="Show Favorites" 
                ForeColor="White" OnCheckedChanged="FavCheckChange" onclick="HighlightControls()"
                AutoPostBack="True" />                 
        </td>
     </tr>

...
...
...
</table>

javascript

 <script type = "text/javascript">
     function HighlightControls() {
         document.getElementById("MainContent_TdTeam").style.color = "red";
     }
 </script>

这将扩展到包含比这个更多的控件,但我只是想在开发太多之前看看我的选项是什么。

在调试过程中,我看到标签变为红色,但在回发后返回白色。

如何在客户端执行样式并在回发后保留设置?

2 个答案:

答案 0 :(得分:0)

在回发之间,对DOM元素(css类,样式)的任何更改都将丢失,除非您找到一种方法来保留它。您可以使用隐藏字段来存储elementID +新的类名称或样式,因此当您回发时,您的代码可以查询隐藏字段并执行必要的更改。

答案 1 :(得分:0)

我能想到的唯一一件事就是在页面回发时询问服务器端的控制状态,并应用与应用客户端相同的逻辑。 因此,如果您有一个复选框,当选中时将单元格更改为红色,则需要编写一些服务器端代码以检查该复选框的值,然后更改单元格的颜色。

它是或者你可以用ajax调用替换你的回发并只更新需要更改的表单部分吗?