Hi,
With the new version Q2 I found a problem. I had code with Q1 that "creates items" in the entries collection and aftre the user clicks save the collection is read again and differences are saved to the db (via oa).
Now, with Q2 however, the collection is not changed after deleting an entry.
Example:
ASPX:
VB test code:
In the example 2 items are added on loading-first-time. When you delete an entry in the box and click the first button (left side) you can see that the count is still 2 and not 1. When you go back to Q1, you will find that the count = 1.
Is this a bug or a feature? ;-)
Erik
With the new version Q2 I found a problem. I had code with Q1 that "creates items" in the entries collection and aftre the user clicks save the collection is read again and differences are saved to the db (via oa).
Now, with Q2 however, the collection is not changed after deleting an entry.
Example:
ASPX:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default3.aspx.vb" Inherits="WebApplication14.Default3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
link
href
=
"style/css/site.css"
rel
=
"stylesheet"
type
=
"text/css"
/>
<
telerik:RadStyleSheetManager
ID
=
"RadStyleSheetManager_App"
runat
=
"server"
>
</
telerik:RadStyleSheetManager
>
<
title
></
title
>
<
style
type
=
"text/css"
>
</
style
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
div
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
<
Scripts
>
<%--Needed for JavaScript IntelliSense in VS2010--%>
<%--For VS2008 replace RadScriptManager with ScriptManager--%>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.Core.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQuery.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQueryInclude.js"
/>
</
Scripts
>
</
telerik:RadScriptManager
>
<
telerik:RadWindowManager
ID
=
"RadWindowManager_App"
EnableShadow
=
"true"
runat
=
"server"
/>
<
telerik:RadFormDecorator
ID
=
"RadFormDecorator_App"
runat
=
"server"
/>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel_App"
runat
=
"server"
/>
<
asp:Panel
ID
=
"pnl_RadAjaxPanel_App_Holder"
Style
=
"width: 100%; height: 100%;"
runat
=
"server"
>
<
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel_App"
runat
=
"server"
LoadingPanelID
=
"RadAjaxLoadingPanel_App"
Style
=
"width: 100%; height: 100%;"
class
=
"FullScreen"
>
<
telerik:RadAutoCompleteBox
ID
=
"RadAutoCompleteBox1"
DataTextField
=
"Name"
DataValueField
=
"ContactId"
TokensSettings-AllowTokenEditing
=
"False"
AllowCustomEntry
=
"False"
InputType
=
"Token"
Filter
=
"Contains"
runat
=
"server"
>
</
telerik:RadAutoCompleteBox
>
<
asp:Button
ID
=
"Button1"
runat
=
"server"
/>
<
asp:Button
ID
=
"Button2"
runat
=
"server"
/>
</
telerik:RadAjaxPanel
>
</
asp:Panel
>
</
div
>
</
form
>
</
body
>
</
html
>
VB test code:
Imports
Telerik.Web.UI
Public
Class
Default3
Inherits
System.Web.UI.Page
Private
Sub
Page_Init(sender
As
Object
, e
As
EventArgs)
Handles
Me
.Init
Dim
lst_DataSource = TestItem.GetTestData
RadAutoCompleteBox1.DataSource = lst_DataSource
End
Sub
Private
Sub
Page_Load(sender
As
Object
, e
As
System.EventArgs)
Handles
Me
.Load
If
Not
HadInit
Then
RadAutoCompleteBox1.Entries.Add(
New
AutoCompleteBoxEntry(
"Kees #02.1"
,
"3"
))
RadAutoCompleteBox1.Entries.Add(
New
AutoCompleteBoxEntry(
"Miquel #02"
,
"8"
))
HadInit =
True
End
If
End
Sub
Private
Sub
Button1_Click(sender
As
Object
, e
As
EventArgs)
Handles
Button1.Click
Dim
i
As
Long
= RadAutoCompleteBox1.Entries.Count
End
Sub
Private
Sub
RadAutoCompleteBox1_EntryAdded(sender
As
Object
, e
As
AutoCompleteEntryEventArgs)
Handles
RadAutoCompleteBox1.EntryAdded
End
Sub
Private
Sub
RadAutoCompleteBox1_EntryRemoved(sender
As
Object
, e
As
AutoCompleteEntryEventArgs)
Handles
RadAutoCompleteBox1.EntryRemoved
End
Sub
Public
Property
HadInit
As
Boolean
Get
Return
If
((ViewState(
"HadInit"
) &
""
).ToString.Trim.Length = 0,
False
,
CBool
(ViewState(
"HadInit"
)))
End
Get
Set
(value
As
Boolean
)
ViewState(
"HadInit"
) = value
End
Set
End
Property
Private
Class
TestItem
Private
mlng_ContactId
As
Long
Private
mstr_Name
As
String
Private
mstr_FirstName
As
String
Private
mstr_City
As
String
Private
mstr_Country
As
String
Private
mobj_ParentContactId
As
Long
? =
Nothing
Public
Sub
New
()
End
Sub
Public
Sub
New
(
ByVal
alng_ContactId
As
Long
,
ByVal
astr_Name
As
String
,
ByVal
astr_FirstName
As
String
,
ByVal
astr_City
As
String
,
ByVal
astr_Country
As
String
,
Optional
ByVal
alng_ParentContactId
As
Long
? =
Nothing
)
ContactId = alng_ContactId
Name = astr_Name
FirstName = astr_FirstName
City = astr_City
Country = astr_Country
ParentContactId = alng_ParentContactId
End
Sub
Public
Shared
Function
GetTestData()
As
List(Of TestItem)
Dim
lst
As
New
List(Of TestItem)
lst.Add(
New
TestItem(1,
"Piet #01"
,
"Firstname #01"
,
"City #01"
,
"Country #01"
))
lst.Add(
New
TestItem(2,
"Jan #02"
,
"Firstname #02"
,
"City #02"
,
"Country #02"
))
lst.Add(
New
TestItem(3,
"Kees #02.1"
,
"Firstname #02.1"
,
"City #02.1"
,
"Country #02.1"
, 2))
lst.Add(
New
TestItem(4,
"Karel #02.2"
,
"Firstname #02.2"
,
"City #02.2"
,
"Country #02.2"
, 2))
lst.Add(
New
TestItem(5,
"Hans #02.2.1"
,
"Firstname #02.2.1"
,
"City #02.2.1"
,
"Country #02.2.1"
, 4))
lst.Add(
New
TestItem(6,
"Rene #02.2.2"
,
"Firstname #02.2.2"
,
"City #02.2.2"
,
"Country #02.2.2"
, 4))
lst.Add(
New
TestItem(7,
"Erik #02.3"
,
"Firstname #02.3"
,
"City #02.3"
,
"Country #02.3"
, 2))
lst.Add(
New
TestItem(8,
"Miquel #02"
,
"Firstname #02"
,
"City #02"
,
"Country #02"
))
lst.Add(
New
TestItem(9,
"Eric #02"
,
"Firstname #02"
,
"City #02"
,
"Country #02"
))
lst.Add(
New
TestItem(10,
"Peter #02"
,
"Firstname #02"
,
"City #02"
,
"Country #02"
))
lst.Add(
New
TestItem(11,
"Zorov #02"
,
"Firstname #02"
,
"City #02"
,
"Country #02"
))
lst.Add(
New
TestItem(12,
"Name #02"
,
"Firstname #02"
,
"City #02"
,
"Country #02"
))
lst.Add(
New
TestItem(13,
"Name #02"
,
"Firstname #02"
,
"City #02"
,
"Country #02"
))
lst.Add(
New
TestItem(14,
"Name #02"
,
"Firstname #02"
,
"City #02"
,
"Country #02"
))
lst.Add(
New
TestItem(15,
"Name #01"
,
"Firstname #01"
,
"City #01"
,
"Country #01"
))
lst.Add(
New
TestItem(16,
"Name #16"
,
"Firstname #02"
,
"City #02"
,
"Country #02"
))
lst.Add(
New
TestItem(17,
"Name #16.1"
,
"Firstname #16.1"
,
"City #02.1"
,
"Country #02.1"
, 16))
lst.Add(
New
TestItem(18,
"Name #16.2"
,
"Firstname #16.2"
,
"City #02.2"
,
"Country #02.2"
, 16))
lst.Add(
New
TestItem(19,
"Name #16.2.1"
,
"Firstname #16.2.1"
,
"City #02.2.1"
,
"Country #02.2.1"
, 18))
lst.Add(
New
TestItem(20,
"Name #16.2.2"
,
"Firstname #16.2.2"
,
"City #02.2.2"
,
"Country #02.2.2"
, 18))
lst.Add(
New
TestItem(21,
"Name #16.3"
,
"Firstname #16.3"
,
"City #02.3"
,
"Country #02.3"
, 16))
lst.Add(
New
TestItem(22,
"Name #22"
,
"Firstname #22"
,
"City #22"
,
"Country #22"
))
lst.Add(
New
TestItem(23,
"Name #22"
,
"Firstname #22"
,
"City #22"
,
"Country #22"
))
lst.Add(
New
TestItem(24,
"Name #22"
,
"Firstname #22"
,
"City #22"
,
"Country #22"
))
lst.Add(
New
TestItem(25,
"Name #22"
,
"Firstname #22"
,
"City #22"
,
"Country #22"
))
lst.Add(
New
TestItem(26,
"Name #22"
,
"Firstname #22"
,
"City #22"
,
"Country #22"
))
lst.Add(
New
TestItem(27,
"Name #22"
,
"Firstname #22"
,
"City #22"
,
"Country #22"
))
lst.Add(
New
TestItem(28,
"Name #22"
,
"Firstname #22"
,
"City #22"
,
"Country #22"
))
lst.Add(
New
TestItem(29,
"Name #22"
,
"Firstname #22"
,
"City #22"
,
"Country #22"
))
lst.Add(
New
TestItem(30,
"Name #22"
,
"Firstname #22"
,
"City #22"
,
"Country #22"
))
lst.Add(
New
TestItem(31,
"Name #22"
,
"Firstname #22"
,
"City #22"
,
"Country #22"
))
lst.Add(
New
TestItem(32,
"Name #22"
,
"Firstname #22"
,
"City #22"
,
"Country #22"
))
lst.Add(
New
TestItem(33,
"Name #22"
,
"Firstname #22"
,
"City #22"
,
"Country #22"
))
Return
lst
End
Function
Public
Property
ContactId
As
Long
Get
Return
mlng_ContactId
End
Get
Set
(
ByVal
value
As
Long
)
mlng_ContactId = value
End
Set
End
Property
Public
Property
Name
As
String
Get
Return
mstr_Name
End
Get
Set
(
ByVal
value
As
String
)
mstr_Name = value
End
Set
End
Property
Public
Property
FirstName
As
String
Get
Return
mstr_FirstName
End
Get
Set
(
ByVal
value
As
String
)
mstr_FirstName = value
End
Set
End
Property
Public
Property
City
As
String
Get
Return
mstr_City
End
Get
Set
(
ByVal
value
As
String
)
mstr_City = value
End
Set
End
Property
Public
Property
Country
As
String
Get
Return
mstr_Country
End
Get
Set
(
ByVal
value
As
String
)
mstr_Country = value
End
Set
End
Property
Public
Property
ParentContactId
As
Long
?
Get
Return
mobj_ParentContactId
End
Get
Set
(
ByVal
value
As
Long
?)
mobj_ParentContactId = value
End
Set
End
Property
End
Class
End
Class
In the example 2 items are added on loading-first-time. When you delete an entry in the box and click the first button (left side) you can see that the count is still 2 and not 1. When you go back to Q1, you will find that the count = 1.
Is this a bug or a feature? ;-)
Erik