Html 在母版页正文标记中添加“代码隐藏”中单击的类属性-vb.net
当用户点击打开一个弹出窗口时,我想在body HTML标记中添加一个类,以防止背景滚动。弹出窗口位于内容页中。我已将runat server添加到主页面上的正文标记中:Html 在母版页正文标记中添加“代码隐藏”中单击的类属性-vb.net,html,asp.net,vb.net,master-pages,Html,Asp.net,Vb.net,Master Pages,当用户点击打开一个弹出窗口时,我想在body HTML标记中添加一个类,以防止背景滚动。弹出窗口位于内容页中。我已将runat server添加到主页面上的正文标记中: <body runat="server" id="MasterPageBodyTag"> 当我调试时,我可以在结果视图中看到该类在属性中,但是在页面上该类没有添加到body元素。问题是弹出窗口中加载了Ajax。因此不会有完整的回发,因此body类不会改变。您需要在前端或后端使用JavaScript或jQuery设置
<body runat="server" id="MasterPageBodyTag">
当我调试时,我可以在结果视图中看到该类在属性中,但是在页面上该类没有添加到body元素。问题是弹出窗口中加载了Ajax。因此不会有完整的回发,因此body类不会改变。您需要在前端或后端使用JavaScript或jQuery设置bodyclass 在后端,您可以这样做
ScriptManager.RegisterStartupScript(Page, Page.GetType, "setBodyClass", "$('#MasterPageBodyTag').attr('class', 'cssBodyClass');", true)
弹出窗口中有什么?它是如何打开的?你上面的代码可以工作,并且会在正文中添加一个类(回发后),但这并不意味着它会出现在弹出窗口中。点击弹出窗口就会打开,这个函数来自代码隐藏(更新的问题包括这个)。这是一个很好的开始,但是你的代码行实际上有几个方面可以改进:1。Page.GetType是一个函数,不是属性2。调用jQuery的AddClass比覆盖class属性要好得多。以下是更新后的代码:
ScriptManager.RegisterStartupScript(Page,Page.GetType(),“setBodyClass”,“$('body').addClass('cssBodyClass');”,true)代码>
ScriptManager.RegisterStartupScript(Page, Page.GetType, "setBodyClass", "$('#MasterPageBodyTag').attr('class', 'cssBodyClass');", true)