0

我终于想出了如何让我所有的数以百万计的标签(不是那么多)正确包装。现在,每当有人单击选项卡时,我想触发服务器端事件。经过一番彻底的谷歌搜索,我以为我已经用这个找到了纯金:

这些东西在我的 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

4

1 回答 1

0

我会尝试改变

TabChassisFunction

到:

TabChassisFunction();

我认为这里需要一个脚本,而不仅仅是一个函数名。会不会只是函数名被吐出到输出 html 而不是有效的脚本?如果这反过来又破坏了页面的其他一些 javascript,则可能会导致您看到的症状。好的,所以我只是猜测... :)

于 2009-07-17T23:02:55.083 回答