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>
这将扩展到包含比这个更多的控件,但我只是想在开发太多之前看看我的选项是什么。
在调试过程中,我看到标签变为红色,但在回发后返回白色。
如何在客户端执行样式并在回发后保留设置?
答案 0 :(得分:0)
在回发之间,对DOM元素(css类,样式)的任何更改都将丢失,除非您找到一种方法来保留它。您可以使用隐藏字段来存储elementID +新的类名称或样式,因此当您回发时,您的代码可以查询隐藏字段并执行必要的更改。
答案 1 :(得分:0)
我能想到的唯一一件事就是在页面回发时询问服务器端的控制状态,并应用与应用客户端相同的逻辑。 因此,如果您有一个复选框,当选中时将单元格更改为红色,则需要编写一些服务器端代码以检查该复选框的值,然后更改单元格的颜色。
它是或者你可以用ajax调用替换你的回发并只更新需要更改的表单部分吗?