Я наконец-то понял, как сделать так, чтобы все мои миллионы вкладок (не так уж и много) были правильно обернуты. Теперь я хочу запускать событие на стороне сервера всякий раз, когда кто-то нажимает на вкладку. После тщательного поиска в 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