Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 在母版页正文标记中添加“代码隐藏”中单击的类属性-vb.net_Html_Asp.net_Vb.net_Master Pages - Fatal编程技术网

Html 在母版页正文标记中添加“代码隐藏”中单击的类属性-vb.net

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 HTML标记中添加一个类,以防止背景滚动。弹出窗口位于内容页中。我已将runat server添加到主页面上的正文标记中:

<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)