Компонент TAB Ajax Control Toolkit - Javascript ломает его? - PullRequest
0 голосов
/ 18 июля 2009

Я наконец-то понял, как сделать так, чтобы все мои миллионы вкладок (не так уж и много) были правильно обернуты. Теперь я хочу запускать событие на стороне сервера всякий раз, когда кто-то нажимает на вкладку. После тщательного поиска в Google я подумал, что поразил чистым золотом это:

Этот материал находится в шапке моей страницы 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» просто отображается: нет;

UPDATE! Я исправил свою проблему, когда вкладки исчезают на мне. Первая попытка ответить на мой вопрос была очень близка, я добавил (); к функции OnClientClick, чтобы она работала. Я обновил приведенный выше код. Новая проблема, тем не менее, она не будет запускать событие на стороне сервера. Предупреждение javascript сработает, но подпрограмма в моем коде, которая должна отображать msgbox, никогда не происходит ...?

Edit: Если это поможет, вот ссылка, по которой мне пришла идея попробовать все вышеперечисленное: http://forums.asp.net/t/1195064.aspx

1 Ответ

0 голосов
/ 18 июля 2009

Я бы попробовал изменить

TabChassisFunction

до:

TabChassisFunction();

Я думаю, что здесь нужен сценарий, а не просто имя функции. Может ли быть так, что только имя функции выплевывается в выходной html, а не допустимый скрипт? Если это, в свою очередь, повредит некоторые другие javascript страницы, это может вызвать симптомы, которые вы видите. Хорошо, я просто догадываюсь ...:)

...