Setting EnableEmbeddedSkins="false" in RadGrid when FilterType="HeaderContext" is not applied to the ListBox (filterCheckList) hence the following error is thrown:
In our application we use ListBox with property EnableMarkMatches set. When we enter a search criteria with the keyboard you see in the selected rows the search criteria Bold. (See attached screenshot)
When u click with the mouse on this bold search criteria you get an error message in the console of the browser:
RadListBoxScripts.js:1223 Uncaught TypeError: Cannot read properties of null (reading 'get_enabled')
at c.RadListBox._onClick (RadListBoxScripts.js:1223:6)
at HTMLLIElement.<anonymous> (RadListBoxScripts.js:476:4)
at HTMLDivElement.dispatch (jQuery.js:3:12445)
at r.handle (jQuery.js:3:9174)
This issue is reproducible at
https://demos.telerik.com/aspnet-ajax/listbox/examples/functionality/keyboardsupport/defaultcs.aspx?
<telerik:RadListBox
RenderMode="Lightweight"
runat="server"
ID="RadListBoxSource"
AllowTransfer="true"
TransferToID="RadListBoxDestination"
ButtonSettings-AreaWidth="35px">
<EmptyMessageTemplate>
empty message
</EmptyMessageTemplate>
</telerik:RadListBox>
<telerik:RadListBox
RenderMode="Lightweight"
runat="server"
ID="RadListBoxDestination"
ButtonSettings-AreaWidth="35px">
<EmptyMessageTemplate>
empty message2
</EmptyMessageTemplate>
</telerik:RadListBox>
Enabling/Disabling the ListBox on the client is not persisted across PostBacks.
ListBox markup
<telerik:RadListBox runat="server" ID="RadListBoxA" CheckBoxes="true" Enabled="false">
<Items>
<telerik:RadListBoxItem Text="Item 1" />
<telerik:RadListBoxItem Text="Item 2" />
<telerik:RadListBoxItem Text="Item 3" />
<telerik:RadListBoxItem Text="Item 4" />
</Items>
</telerik:RadListBox>
<telerik:RadButton runat="server" ID="RadButton1" Text="Toggle State" AutoPostBack="false" OnClientClicked="ToggleListBoxStates" />
<telerik:RadButton runat="server" ID="RadButton2" Text="Postback" AutoPostBack="true" />
OnClientClicked event handler
function ToggleListBoxStates(sender, args) {
var listBoxA = $find("<%= RadListBoxA.ClientID %>");
listBoxA.trackChanges();
listBoxA.set_enabled(!listBoxA.get_enabled());
listBoxA.commitChanges();
}
Run the example, change the ListBox state and do a PostBack.
Notice, the state changes back.
Replicate by dragging a RadListBox item vertically in the Drag-and-drop demo, on a mobile device.
A workaround is to disable the embedded jQuery and use an older version (for example, 1.11.1 which is the previous version the suite used): https://docs.telerik.com/devtools/aspnet-ajax/controls/scriptmanager/disabling-the-embedded-jquery Repro steps: 1. put a listbox on the page 2. configure it so it does postbacks (e.g., on selection changed, or any other feature) 3. ivnoke said postback (e.g., select an item) Expected: the action is carried off Actual: Firefox throws TypeError: access to strict mode caller function is censored Sample markup <telerik:RadListBox runat="server" ID="rlb1" OnSelectedIndexChanged="rlb1_SelectedIndexChanged" AutoPostBack="true"> <Items> <telerik:RadListBoxItem Text="first" Selected="true" /> <telerik:RadListBoxItem Text="second" /> </Items> </telerik:RadListBox>
When using: Value = "(null)" Text = "(no user)" as item in the ListBox, the filter must work correctly, and after opening the menu the item should be checked if previously filtered. Additionally if the item have NULL value instead of "(null)" The visible value must be localized.