【发布时间】:2015-03-11 15:39:09
【问题描述】:
我正在尝试在我的 Web 应用程序中更改 panel 的(背面)颜色以表示模式更改。我正在使用带有 VS Express 2013 for Web 的 asp.net WebForm 项目。我有一个包含多个页面的 Web 应用程序,其中一个页面包含一组三个嵌套面板:
<asp:Panel ID="ManageTemplatesPanel" runat="server" style="border-radius:3px" BorderStyle="Solid" BackColor="White" Height="1415px" Width="930px" ScrollBars="None" BorderWidth="1px">
<asp:Panel ID="BigInsetGrayPanel" runat="server" style="border-radius:3px" BackColor="Silver" BorderStyle="Solid" BorderWidth="1px" Height="1275px" Width="910px" >
<asp:Panel ID="SelectClientsWhiteInsetPanel" runat="server" style="margin-left:20px;margin-right:20px;border-radius:3px" BackColor="White" Height="465px" BorderStyle="None">
每个面板内部都有许多控件 - 文本框、网格视图、按钮等。 然后有一组面板的结束标签。
我有一个CheckBoxList 控件,里面有三个复选框:
<asp:CheckBoxList ID="IncludeCheckBoxList" runat="server" BackColor="White" BorderStyle="None" CssClass="cssIncludeCheckBoxList" Font-Names="Arial" Font-Size="Small" ForeColor="Black" RepeatDirection="Horizontal" RepeatLayout="Flow" Height="28px" AutoPostBack="True" OnSelectedIndexChanged="IncludeCheckBoxList_SelectedIndexChanged">
<asp:ListItem Selected="True">Sent Client List</asp:ListItem>
<asp:ListItem Selected="True">Notification Time</asp:ListItem>
<asp:ListItem Selected="True">Message</asp:ListItem>
</asp:CheckBoxList>
这嵌套在“ManageTemplatesPanel”中。我创建了一个名为IncludeCheckBoxList_SelectedIndexChanged 的SelectedIndexChanged 事件处理程序。代码如下:
protected void IncludeCheckBoxList_SelectedIndexChanged(object sender, EventArgs e)
{
ListItemCollection items = IncludeCheckBoxList.Items;
foreach (ListItem item in items)
{
string section = item.Value;
bool itemChecked = item.Selected;
if (0 == String.Compare(section, "Sent Client List", true))
UpdateSentClientSection(itemChecked);
else if (0 == String.Compare(section, "Notification Time", true))
UpdateNotificationTimeSection(itemChecked);
else if (0 == String.Compare(section, "Message", true))
UpdateMessageSection(itemChecked);
}
}
这是UpdateSentClientSection的代码:
private void UpdateSentClientSection(bool itemChecked)
{
if (itemChecked)
MessageWhiteInsetPanel.BackColor = System.Drawing.Color.White;
else
MessageWhiteInsetPanel.BackColor = System.Drawing.Color.Blue;
}
我已经搜索过,一些博客建议以这种方式更改面板的背景颜色 - 但我无法让它工作。任何想法为什么?
提前谢谢...
【问题讨论】:
-
更新 - 出于某种原因,原始帖子不包含我的面板和 CheckBoxList 定义:
-
已经完成了;)