我正在VB ASP.NET中创建一个CompositeControl。
我的控件有一个带有几个TabPanel的Ajax TabContainer。我需要对其进行编码,以便查询字符串上的值可以设置容器的ActiveTab。
无论此问题的查询字符串如何,在我的CreateChildControl代码中,我将ActiveTabIndex设置为有效的索引位置,但UI仍然将索引0设置为活动状态。
任何提示?有帮助吗?
答案 0 :(得分:0)
对于我们来说,具体来说,我们编写了使我们完成此操作所需的Javascript。显示的页面有一个TabContainer。在第一个选项卡(主动显示的选项卡)上,我们有每个选项卡的描述,然后是指向它们的链接。单击该链接可使选项卡处于活动状态。这是团队成员的所作所为。
在超链接上,将“OnClick”的属性添加到我们称为“ChangeTab”的新JavaScript方法中。将任意索引号传递给方法,以赋予不同选项卡和选项卡控件的客户端ID
唯一性在ASP.NET的预渲染期间,我们有一些代码
Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
MyBase.OnPreRender(e)
Dim script As New System.Text.StringBuilder()
script.AppendLine("<script type=""text/javascript"">")
script.AppendLine("//<![CDATA[ ")
script.AppendLine("function ChangeTab(num,tabContainer) {")
script.AppendLine(" var container = $find(tabContainer);")
script.AppendLine(" container.set_activeTabIndex(num);")
script.AppendLine("}")
script.AppendLine("//]]>")
script.AppendLine("</script>")
Page.ClientScript.RegisterClientScriptBlock(GetType(myPageOrControl), " ChangeTab", script.ToString)
End Sub
最终结果是客户端脚本,它会在单击链接时将标签设置为活动状态。