添加 class 母版页正文标记后面代码中点击的属性 - vb.net
Add class attribute on click in code behind to Master Page body tag - vb.net
当用户单击打开弹出窗口时,我想向正文 HTML 标记添加一个 class 以防止背景滚动。弹出窗口驻留在内容页面中。我在我的 main.Master 页面上将 runat 服务器添加到我的正文标签中:
<body runat="server" id="MasterPageBodyTag">
在我的内容页面后面的代码中,我有以下内容:
Protected Sub lnkShowNotes_Click(sender As Object, e As EventArgs) Handles lnkShowNotes.Click
mvwNotes.SetActiveView(vwNoteList)
mdlNotesPopup.Show()
Dim body As HtmlControl = Master.FindControl("MasterPageBodyTag")
body.Attributes.Add("class", "cssBodyClass")
End Sub
当我调试时,我可以在结果视图中看到 class 存在于属性中,但是在页面上 class 没有被添加到正文元素中。
问题是弹出窗口加载了 Ajax。因此不会有完整的 PostBack,因此 body class 不会改变。您需要在前端或后端将正文class设置为JavaScript或jQuery。
在后端你可以这样做
ScriptManager.RegisterStartupScript(Page, Page.GetType, "setBodyClass", "$('#MasterPageBodyTag').attr('class', 'cssBodyClass');", true)
当用户单击打开弹出窗口时,我想向正文 HTML 标记添加一个 class 以防止背景滚动。弹出窗口驻留在内容页面中。我在我的 main.Master 页面上将 runat 服务器添加到我的正文标签中:
<body runat="server" id="MasterPageBodyTag">
在我的内容页面后面的代码中,我有以下内容:
Protected Sub lnkShowNotes_Click(sender As Object, e As EventArgs) Handles lnkShowNotes.Click
mvwNotes.SetActiveView(vwNoteList)
mdlNotesPopup.Show()
Dim body As HtmlControl = Master.FindControl("MasterPageBodyTag")
body.Attributes.Add("class", "cssBodyClass")
End Sub
当我调试时,我可以在结果视图中看到 class 存在于属性中,但是在页面上 class 没有被添加到正文元素中。
问题是弹出窗口加载了 Ajax。因此不会有完整的 PostBack,因此 body class 不会改变。您需要在前端或后端将正文class设置为JavaScript或jQuery。
在后端你可以这样做
ScriptManager.RegisterStartupScript(Page, Page.GetType, "setBodyClass", "$('#MasterPageBodyTag').attr('class', 'cssBodyClass');", true)