luc bonenfant
Top achievements
Rank 1
luc bonenfant
asked on 10 Sep 2015, 09:33 PM
Hello,
I i have a RadListBox with checkboxes named "myCkList".
Im my case, i check some boxes and i observe CheckedItems in server side after clicking button. I'm suprised because myCkList.CheckedItems.Count = 0 ...
In fact, it's because i added property Enabled=false to myCkList in aspx page (of course i enable it client side before clicking checkboxes) !
Is it a normal behavior in asp.net ?
I can work with Enabled=true and set_enabled(false) from pageLoad..., no problem.
3 Answers, 1 is accepted
0
Hello,
We tested your scenario and we can confirm that the observed behavior is a bug. It is now logged and we will fix it in one of our future releases. Please accept our apologies for any inconvenience it might have caused you.
You can track the bug's progress on our feedback portal and vote/rate it if you like.
Until the bug is fixed we recommend disabling/enabling the RadListBox on the client and not in the markup or code behind.
As a token of gratitude for reporting this issue I updated your Telerik Points.
Regards,
Ivan Danchev
Telerik
We tested your scenario and we can confirm that the observed behavior is a bug. It is now logged and we will fix it in one of our future releases. Please accept our apologies for any inconvenience it might have caused you.
You can track the bug's progress on our feedback portal and vote/rate it if you like.
Until the bug is fixed we recommend disabling/enabling the RadListBox on the client and not in the markup or code behind.
As a token of gratitude for reporting this issue I updated your Telerik Points.
Regards,
Ivan Danchev
Telerik
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Feedback Portal
and vote to affect the priority of the items
0
Lucus
Top achievements
Rank 1
answered on 16 Oct 2015, 06:08 PM
I am having this same issue but I can't seem to get the checked items even if I set the listbox disabled in the pageload client side
function
pageLoad() {
$find(
'<%= rlbMyList.ClientID %>'
).set_enabled(
false
);
}
function
ToggleListBox(button, args) {
var
listBox = $find(
'<%= rlbMyList.ClientID %>'
);
var
state = args.get_currentToggleState().get_value();
listBox.set_enabled(state);
var
items = listBox.get_items();
listBox.trackChanges();
items.forEach(
function
(item) {
if
(state ===
"True"
) {
item.enable();
}
else
{
item.disable();
item.uncheck();
}
});
listBox.commitChanges();
}
the control
<
telerik:RadButton
runat
=
"server"
ID
=
"rbEditMylist"
ToggleType
=
"CustomToggle"
AutoPostBack
=
"False"
OnClientToggleStateChanged
=
"ToggleListBox"
>
<
ToggleStates
>
<
telerik:RadButtonToggleState
Text
=
"Formats Unchanged"
Value
=
"False"
PrimaryIconCssClass
=
"rbToggleCheckbox"
Selected
=
"True"
>
</
telerik:RadButtonToggleState
>
<
telerik:RadButtonToggleState
Text
=
"Formats Edited"
Value
=
"True"
PrimaryIconCssClass
=
"rbToggleCheckboxChecked"
CssClass
=
"rbSkinnedButtonChecked"
>
</
telerik:RadButtonToggleState
>
</
ToggleStates
>
</
telerik:RadButton
>
<
telerik:RadListBox
ID
=
"rlbMyList"
runat
=
"server"
CheckBoxes
=
"True"
Width
=
"100%"
></
telerik:RadListBox
>
and in the code behind
protected
void
OnUpdateClicked(
object
sender, EventArgs e)
{
if
(Convert.ToBoolean(rbEditAcceptableFormat.SelectedToggleState.Value))
{
var item = rlbMyList.CheckedItems;
// this is always 0 items
}
}
0
Hello,
Your case is different. The CheckedItems property returns 0 on the server because you are passing a string to the set_enabled() method in the ToggleListBox handler, but it expects a Boolean type. The get_value() method returns a string so the "state" variable holds the string "True" as its value instead of the Boolean true. With the modification posted below I was able to get the count of the checked items on the server:
Regards,
Ivan Danchev
Telerik
Your case is different. The CheckedItems property returns 0 on the server because you are passing a string to the set_enabled() method in the ToggleListBox handler, but it expects a Boolean type. The get_value() method returns a string so the "state" variable holds the string "True" as its value instead of the Boolean true. With the modification posted below I was able to get the count of the checked items on the server:
function
ToggleListBox(button, args) {
var
listBox = $find(
'<%= rlbMyList.ClientID %>'
);
var
state = args.get_currentToggleState().get_value();
//listBox.set_enabled(state);
if
(state ==
"True"
) {
listBox.set_enabled(
true
);
}
else
{
listBox.set_enabled(
false
);
}
var
items = listBox.get_items();
listBox.trackChanges();
items.forEach(
function
(item) {
if
(state ===
"True"
) {
item.enable();
}
else
{
item.disable();
item.uncheck();
}
});
listBox.commitChanges();
}
Regards,
Ivan Danchev
Telerik
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Feedback Portal
and vote to affect the priority of the items