我终于想出了如何让我所有的数以百万计的标签(不是那么多)正确包装。现在,每当有人单击选项卡时,我想触发服务器端事件。经过一番彻底的谷歌搜索,我以为我已经用这个找到了纯金:
这些东西在我的 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 就是 display:none;
更新!我解决了标签在我身上消失的问题。我的问题的第一次尝试答案非常接近,我添加了一个 (); 到 OnClientClick 函数以使其工作。我已经更新了上面的代码。但是新问题,它仍然不会触发服务器端事件。javascript警报将触发,但我代码中的子代码应该显示一个msgbox永远不会发生......?
编辑:如果它有帮助,这里是我想到尝试上述所有优点的链接: http ://forums.asp.net/t/1195064.aspx