Asp.net 如何在代码隐藏中设置母版页对象id(例如div id)?
问题Asp.net 如何在代码隐藏中设置母版页对象id(例如div id)?,asp.net,vb.net,variables,master-pages,Asp.net,Vb.net,Variables,Master Pages,问题 如何在代码隐藏(VB)中设置母版页对象id(例如div id) 如何更改子页面中的id Root.Master <%@ Master Language="VB" CodeFile="~/Root.master.vb" Inherits="Root"%> <div id="<%=MyPage%>"> <asp:ContentPlaceHolder ID="Content" RunAt="Server"/> </div> Pa
<%@ Master Language="VB" CodeFile="~/Root.master.vb" Inherits="Root"%>
<div id="<%=MyPage%>">
<asp:ContentPlaceHolder ID="Content" RunAt="Server"/>
</div>
Page.vb(应用程序代码文件夹中)
Index.aspx.vb
Partial Class Root
Inherits BaseMaster
End Class
Partial Class Index
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
CType(Me.Master, BaseMaster).MyPage = "Page"
End Sub
End Class
我认为当元素设置为runat=“server”时,您无法更改其ID 为了使body标签有多个ID,您必须为所需的每个不同ID有一个母版页,并通过代码选择母版页
如果要更改CSS用途的ID,请考虑使用类。 编辑:如果您不需要body标记中的runat=“server”属性,您可以这样做:
基本思想是在母版页中为动态id设置一个变量,并能够从.aspx页面和.ascx控件中设置其值 变量BodyID在继承母版页类的类中声明,而母版页继承该类 母版页标记<body id="<%=BodyID%>">
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
垒长级
Public Class BaseMaster
Inherits System.Web.UI.MasterPage
Public BodyID As String
End Class
如何在Web表单中使用它
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
CType(Me.Master, BaseMaster).BodyID = "body_dynamic_id"
End Sub
对象id
的含义是什么?比如?特别是身份证。你为什么需要这个?您想应用一些css还是使用Java脚本?有什么具体原因吗?我正在使用jquery mobile,需要每个页面的主体id都不同,以充分利用其功能。使用母版页可以节省大量重复的代码。如果它只是一个div呢?请参阅上面的编辑。这对我来说仍然有效。您好,我刚刚编辑了我的答案,如果您不需要runat=“server”标记,我给出了一个关于如何动态设置id的示例。我希望它能帮助您在项目中设置一次。在你的项目中添加一个空的.vb文件,然后将代码粘贴到那里。非常感谢你在@codingstill上的帮助,但是我无法让它工作。请看我上面的编辑。我错过了什么?错误是:确保此代码文件中定义的类与“inherits”属性匹配,并且它扩展了正确的基类(例如Page或UserControl)。似乎存在命名空间问题。您是否在母版页的代码隐藏中看到此错误?如果是,请尝试此“Inherits RootNamespace.BaseMaster”,其中RootNamespace放置应用程序的根命名空间。我制作了一个演示网站,它工作正常,没有错误。您是否将Page.vb文件放入App_Code文件夹中?
Public Class BaseMaster
Inherits System.Web.UI.MasterPage
Public BodyID As String
End Class
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
CType(Me.Master, BaseMaster).BodyID = "body_dynamic_id"
End Sub