我终于想出了如何让我所有的数百万个标签(真的不是那么多)正确包装。现在,只要有人点击选项卡,我就想发起服务器端事件。经过一番彻底的谷歌搜索后,我以为我用这个来打击纯金:
这个东西在我的aspx页面的标题中:
<script type="text/javascript">
function TABChassisFunction() {
alert('moooo!');
document.getElementById('BUTChassis').click();
}
</script>
这些东西在我的aspx页面中:
<cc1:TabContainer ID="TabContainer1" Height="90" runat="server" AutoPostBack="false" >
<cc1:TabPanel ID="TABchassis" runat="server" HeaderText="Chassis" OnClientClick="TabChassisFunction();" >
<ContentTemplate>
</ContentTemplate>
</cc1:TabPanel>
<cc1:TabPanel ID="TABpowersupply" runat="server" HeaderText="Power Supply" >
<ContentTemplate>
</ContentTemplate>
</cc1:TabPanel>
<cc1:TabPanel ID="TABmotherboard" runat="server" HeaderText="Motherboard">
<ContentTemplate>
</ContentTemplate>
</cc1:TabPanel>
</cc1:TabContainer>
我只将javascript函数放在第一个标签中以进行测试,因为它看起来应该触发我有一个隐藏按钮:
Protected Sub BUTchassis_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BUTchassis.Click
MsgBox("The server side event fired!!")
End Sub
<asp:Button ID="BUTchassis" runat="server" Text="Chassis" CssClass="cantseeme" />
“cantseeme”的cssclass只是显示:none;
UPDATE! 我修正了我的问题,标签在我身上消失了。第一次尝试回答我的问题非常接近,我添加了一个();到OnClientClick函数使其工作。我已经更新了上面的代码。但是新问题,它仍然不会触发服务器端事件。 javascript警报会触发,但我后面的代码中的sub应该显示msgbox永远不会发生...?
编辑: 如果它有帮助,这里是我有想法尝试以上所有优点的链接: http://forums.asp.net/t/1195064.aspx
答案 0 :(得分:0)
我会尝试更改
TabChassisFunction
为:
TabChassisFunction();
我认为这里需要一个脚本,而不仅仅是一个函数名称。难道只是函数名称被吐出到输出html而不是有效的脚本?如果这反过来又会破坏页面的某些其他javascript,那么可能会导致您看到的症状。好的,所以我只是猜测...... :)