如何从内容页面的更新面板更改主页中的 css class of div

how to change a css class of div in master page from update panel in content page

我想从我的子页面更改母版页中的 div 样式(显示), 我用过:

 protected void ShowMsgText(int MsgID)
{
    HtmlGenericControl MsgInner;
    MsgInner =((HtmlGenericControl)Master.FindControl("MsgInner"));
    MsgInner.Attributes["class"] = "MsgInnerShow";
}

问题: 我想更改更新面板中的 class,母版页中的 div 不在更新面板中, 无需将更新面板移至母版页即可实现此目的的任何方法。

如果没有 UpdatePanel,您将使用 FindControl 来更改 class。

Panel panel = Master.FindControl("Panel1") as Panel;
panel.CssClass = "myClass";

但是由于您使用了 UpdatePanel,所以最简单的方法是使用 jQuery。

在母版页上面板和脚本

<asp:Panel ID="Panel1" runat="server">Welcome to Whosebug</asp:Panel>

<script type="text/javascript">
    function changeClass(className) {
        $("#<%= Panel1.ClientID %>").attr("class", className);
    }
</script>

然后在aspx页面的代码后面,你可以在PostBack上调用那个javascript函数。

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "changeClassName", "changeClass('myClass');", true);