Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我能';当ASPXCOMBOX组件位于两个ASPxPageControl选项卡页面中时,无法访问该组件_Javascript_Asp.net_Devexpress_Aspxcombobox - Fatal编程技术网

Javascript 我能';当ASPXCOMBOX组件位于两个ASPxPageControl选项卡页面中时,无法访问该组件

Javascript 我能';当ASPXCOMBOX组件位于两个ASPxPageControl选项卡页面中时,无法访问该组件,javascript,asp.net,devexpress,aspxcombobox,Javascript,Asp.net,Devexpress,Aspxcombobox,当ASPXCOMBOX组件位于两个选项卡页的ASPxPageControl中时,我无法访问该组件。 因此,我使用string.Format将此函数添加到ClientSideEvents: function(s, e) {{ if (window['{1}']) {{ {0}.SetSelectedItem( {0}.FindItemByText( {2}.GetText() )

当ASPXCOMBOX组件位于两个选项卡页的ASPxPageControl中时,我无法访问该组件。 因此,我使用string.Format将此函数添加到ClientSideEvents:

function(s, e) {{ 
    if (window['{1}']) {{ 
        {0}.SetSelectedItem(
            {0}.FindItemByText(
                {2}.GetText()
            )
        ); 
        {0}.Focus(); 
        {3}.PerformCallback(
            {0}.GetSelectedItem().value
        ); 
    }} 
}} 
首先在一个选项卡页面启动此函数,然后在另一个页面启动此函数,我得到错误:

Microsoft JScript runtime error: Unable to get value of the property 'SetSelectedItem': object is null or undefined
为什么是这样?切换选项卡后,我是否可以访问该组合框?
顺便说一句,两个选项卡上的ASPxPopupControl apears都打开了

更多背景:

0 is ASPxClientControl.GetControlCollection().Get('<%=ASPxComboBox_Views.ClientID%>'), (compiles to ctl00_ctl00_ASPxSplitter_Main_ContentPlaceHolderMain_ContentProgramMain_ASPxRoundPanelMain_ASPxPageControl_Main_ASPxCallbackPanel_Redagavimas_ASPxCallbackPanel_RedagavimasGrid_GridLayout_Redagavimas_ASPxPopupControl_Layout_ASPxCallbackPanel_Views_ASPxComboBox_Views )
1 is ASPxClientControl.GetControlCollection().Get('<%=ASPxComboBox_Views.ClientInstanceName%>'), (compiles to cbViews )
2 is ASPxClientControl.GetControlCollection().Get('<%=GetClientStr(ASPxHyperLink_Desc.ClientID%>'), (compiles to ctl00_ctl00_ASPxSplitter_Main_ContentPlaceHolderMain_ContentProgramMain_ASPxRoundPanelMain_ASPxPageControl_Main_ASPxCallbackPanel_Redagavimas_ASPxCallbackPanel_RedagavimasGrid_GridLayout_Redagavimas_ASPxHyperLink_Desc )
3 is ASPxClientControl.GetControlCollection().Get('<%=ASPxCallbackPanel_Menu.ClientID%>'), (compiles to ctl00_ctl00_ASPxSplitter_Main_ContentPlaceHolderMain_ContentProgramMain_ASPxRoundPanelMain_ASPxPageControl_Main_ASPxCallbackPanel_Redagavimas_ASPxCallbackPanel_RedagavimasGrid_GridLayout_Redagavimas_ASPxPopupControl_Layout_ASPxCallbackPanel_Menu )
0是ASPxClientControl.GetControlCollection().Get(“”),(编译为ctl00\u ctl00\u ASPxSplitter\u Main\u ContentPlaceHolderMain\u ASPxRoundPanelMain\u ASPxPageControl\u Main\u ASPxCallbackPanel\u Redagavimas\u ASPxCallbackPanel\u Redagavimas\u GridLayout\u Redagavimas\u aspopupcontrol\u Layout\u ASPxCallbackPanel\u视图)
1是ASPxClientControl.GetControlCollection().Get(“”)(编译为CBView)
2是ASPxClientControl.GetControlCollection().Get(“”),(编译为ctl00\u ctl00\u ASPxSplitter\u Main\u ContentPlaceHolderMain\u contentprogramman\u ASPxRoundPanelMain\u aspexpagecontrol\u Main\u ASPxCallbackPanel\u Redagavimas\u ASPxCallbackPanel\u redagavimasgride\u GridLayout\u Redagavimas\u ASPxHyperLink\u Desc)
3是ASPxClientControl.GetControlCollection().Get(“”),(编译为ctl00\u ctl00\u ASPxSplitter\u Main\u ContentPlaceHolderMain\u contentprogramman\u ASPxRoundPanelMain\u aspexpagecontrol\u Main\u ASPxCallbackPanel\u Redagavimas\u ASPxCallbackPanel\u Redagavimas\u GridLayout\u Redagavimas\u aspopopcontrol\u Layout\u ASPxCallbackPanel\u菜单)
如果ASPxComboBox_视图位于ASPxPageControl选项卡中,则它不起作用。 准确地说,我的页面如下所示:

<..>
<dx:ASPxPageControl ID="ASPxPageControl_Main">
    <TabPages>
        <dx:TabPage><..>
            <dx:ASPxGridView ID="ASPxGridView_Naudojimas">
            //From here starts partial page which is one for both tabpages
            <dx:ASPxPopupControl ID="ASPxPopupControl_Layout">
                <ContentCollection>
                    <dx:PopupControlContentControl ID="PopupControlContentControl_Layout">
                        <div><table><tr><td align="left" width="100%">
                            <dx:ASPxCallbackPanel ID="ASPxCallbackPanel_Views">
                                <PanelCollection>
                                    <dx:PanelContent ID="PanelContent1">
                                            <dx:ASPxComboBox ID="ASPxComboBox_Views" runat="server" ...>
        </dx:TabPage>
        <dx:TabPage><..>
            <dx:ASPxGridView ID="ASPxGridView_Redagavimas">
            //From here starts partial page which is one for both tabpages
            <dx:ASPxPopupControl ID="ASPxPopupControl_Layout">
                <ContentCollection>
                    <dx:PopupControlContentControl ID="PopupControlContentControl_Layout">
                        <div><table><tr><td align="left" width="100%">
                            <dx:ASPxCallbackPanel ID="ASPxCallbackPanel_Views">
                                <PanelCollection>
                                    <dx:PanelContent ID="PanelContent1">
                                            <dx:ASPxComboBox ID="ASPxComboBox_Views" runat="server" TextField="Description" ValueField="FullName" ClientInstanceName="cbViews" TextFormatString="{0}">
(deleted some properties just to be easier to read here)

//从这里开始部分页面,这是两个选项卡页面的一个
//从这里开始部分页面,这是两个选项卡页面的一个
(为了便于阅读,删除了一些属性)

您应该设置客户端上使用的所有控件的ClientInstanceName


然后:

函数(s,e){
如果(窗口{0}){
{0}.SetSelectedItem(
{0}.FindItemByText(
{1} .GetText()
)
); 
{0}.Focus();
{2} .PerformCallback(
{0}.GetSelectedItem().value
); 
}} 
}} 
其中:
0-组合框ClientInstanceName
1-超级链接客户端安装名称
2-callbackpanel客户端安装名称


而且你真的应该访问Niranjan发布的链接

你们设置组合框了吗?非常感谢!问题是因为ASPxClientControl.GetControlCollection().Get(..)的使用,而不仅仅是.ClientInstanceName。@Bomberlt真正的问题是DX控件的工作方式“太棒了”。火车失事了。