使用DevExpress ASPXTabControl,我如何确定在客户端使用 Javascript 单击了哪个选项卡。
我有多个选项卡,每个选项卡都包含一个加载数据的回调面板。这一切正常,但是当单击任何选项卡时,所有数据都会被加载。
我想确定单击了哪个选项卡,并且仅在相关回调面板上执行了 PerformCallback。
使用DevExpress ASPXTabControl,我如何确定在客户端使用 Javascript 单击了哪个选项卡。
我有多个选项卡,每个选项卡都包含一个加载数据的回调面板。这一切正常,但是当单击任何选项卡时,所有数据都会被加载。
我想确定单击了哪个选项卡,并且仅在相关回调面板上执行了 PerformCallback。
据我了解,当 CallbackPanel 位于 TabPage 内时,您有一个布局。如果是这样,您的任务可以使用以下方法实现:
1) 如下设置每个 ASPxCallbackPanel 的 ClientInstanceName 属性:
"callBackPanel_" + Tab.Index.ToString();
即每个 CallbackPanel 的 ClientInstanceName 取决于它所在的选项卡。
2) 处理 ASPxPageControl 的 ActiveTabChanged 客户端事件,如下所示:
var panel = eval("callBackPanel_" + e.tab.index.toString());
panel.PerformCallback("parameter");
另外,我建议您查看如何在回调中创建和加载活动选项卡的内容
为 AspxpageControl 编写 ClientSideEvent
<ClientSideEvents EndCallback="
function (s, e) {
var tab = s.GetActiveTabIndex();
switch (tab) {
case 0:
Page1Callback.PerformCallback();
break;
case 1:
Page2Callback.PerformCallback();
break;
case 2:
Page3Callback.PerformCallback();
break;...
}
}" />
</dx:ASPxPageControl>
这将在第一次单击时在每个选项卡上加载数据,之后选项卡模式将进入客户端模式