我正在动态创建一个表格控件,其中包含表格每一行的一系列标签和下拉列表,其中还包括标签和下拉列表中的一些 javascript。
Dim dd As New DropDownList
Dim ds As System.Data.DataTable = GetTable("EmployeePosition")
Dim prefix As String = "Position"
dd.ID = prefix & i
dd.DataSource = ds
dd.DataValueField = "PositionID"
dd.DataTextField = "PositionName"
dd.Attributes.Add("onchange", "checkDuplication(this,'" & prefix & "');")
dd.DataBind()
javascript 函数“onchange”循环遍历所有以前缀开头的下拉控件,并检查任何下拉列表的值是否相同。
然后将该表添加到 PlaceHolder 控件中,该控件又包含在我的母版页上的 ContentPlaceHolder 控件中。
Master_Content1_Position1
我再次出现的问题是当放置在母版页和 ContentPlaceHolders 上时控件的自动命名,特别是当它涉及 javascript 时。
到目前为止,我想出的最佳解决方案是找到包含 PlaceHolder 的 ContentPlaceHolder,检索 ClientID 并将该值传递给表创建者。
Dim cph As ContentPlaceHolder = Me.Master.FindControl("Content1")
Dim tbl As Table = New PositionTable(cph.ClientID).ToTable
PlaceHolder1.Controls.Add(tbl)
有没有办法确定控件或 PlaceHolder 的当前 ContentPlaceHolder 所在的位置,并返回 ClientID 或 UniqueID,以便我可以将此值传递给我的表创建者,以便为 javascript 函数添加前缀,以使用元素 ID 指向正确的控件?最好使用将作为基值填充的 PlaceHolder 或 Control?
谢谢。