Hi,
I would like to drop items from a listbox into automatically generated textboxes.
when I use "tbxTester" it works very well but not with dynamic textboxes.
Thank you for your help
Droped ():
System.MissingMemberException: The public member 'text' of type 'Object' was not found. to Microsoft.VisualBasic.CompilerServices.Symbols.Container.GetMembers (String & MemberName, Boolean ReportErrors) to Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateSet (Object Instance, Type Type, String MemberName, Object [] Arguments, String [] ArgumentNames, Type [] TypeArguments, Boolean OptimisticSet, Boolean RValueBase, CallType CallType) to Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateSet (Object Instance, Type Type, String MemberName, Object [] Arguments, String [] ArgumentNames, Type [] TypeArguments) to Page_Telerik .lbxItems_Dropped (Object sender, RadListBoxDroppedEventArgs e) in \TelerikDemoStandAlone.aspx.vb: line 88
<%@ Page Language=
"VB"
AutoEventWireup=
"false"
CodeFile=
"TelerikDemoStandAlone.aspx.vb"
Inherits
=
"Page_TelerikDemoStandAlone"
%>
<!DOCTYPE html>
<html xmlns=
"http://www.w3.org/1999/xhtml"
lang=
"fr-fr"
>
<head runat=
"server"
lang=
"fr-fr"
>
<meta name=
"robots"
content=
"noindex,nofollow"
/>
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=utf-8"
lang=
"fr"
/>
<meta name=
"viewport"
content=
"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
/>
<link href=
"/css/coreCss.css"
rel=
"stylesheet"
type=
"text/css"
/>
</head>
<body>
<form id=
"FormMain"
runat=
"server"
lang=
"fr-fr"
>
<telerik:RadScriptManager ID=
"rsm"
runat=
"server"
/>
<main>
<section>
<article class=
"container full home"
>
<div class=
"row"
>
<asp:Panel ID=
"pnlMain"
CssClass=
"col-xs-12 col-h"
runat=
"server"
>
<telerik:RadAjaxPanel ID=
"ajaxPanel1"
runat=
"server"
>
<div class=
"col-xs-12 col-md-12 col-h"
>
<telerik:RadComboBox ID=
"cbxSizeBox"
AutoPostBack=
"true"
Width=
"100%"
Filter=
"Contains"
Skin=
"MetroTouch"
RenderMode=
"Lightweight"
runat=
"server"
/>
</div>
</telerik:RadAjaxPanel>
<telerik:RadAjaxPanel ID=
"ajaxPanel2"
runat=
"server"
>
<div class=
"col-xs-12 col-md-2 col-h"
>
<div class=
"col-lng"
>
<h2>Items</h2>
<asp:Panel ID=
"pnlItems"
CssClass=
"col-xs-12 col-h"
runat=
"server"
>
<telerik:RadListBox ID=
"lbxItems"
Width=
"100%"
Height=
"500px"
SelectionMode=
"Multiple"
AllowTransfer=
"true"
AutoPostBackOnTransfer=
"true"
AutoPostBack=
"true"
AllowReorder=
"true"
AutoPostBackOnReorder=
"true"
EnableDragAndDrop=
"true"
ButtonSettings-ShowDelete=
"false"
ButtonSettings-ShowReorder=
"false"
ButtonSettings-ShowTransfer=
"false"
ButtonSettings-ShowTransferAl=
"false"
ButtonSettings-ShowTransferAll=
"false"
OnDropped=
"lbxItems_Dropped"
Skin=
"MetroTouch"
RenderMode=
"Lightweight"
runat=
"server"
/>
</asp:Panel>
</div>
</div>
</telerik:RadAjaxPanel>
<telerik:RadAjaxPanel ID=
"ajaxPanel3"
runat=
"server"
>
<div class=
"col-xs-12 col-md-10 col-h"
>
<div class=
"col-lng"
>
<h2>Boxes</h2>
<telerik:RadTextBox ID=
"tbxTester"
Text=
"TextBox tester ..."
runat=
"server"
/>
<asp:Panel ID=
"pnlMaper"
CssClass=
"col-xs-12 col-h"
runat=
"server"
/>
</div>
</div>
</telerik:RadAjaxPanel>
<telerik:RadAjaxPanel ID=
"ajaxPanel0"
runat=
"server"
>
<div class=
"col-xs-12 col-h"
style=
"max-height: 400px; overflow-y: scroll;"
>
<asp:Label ID=
"litDebug"
ForeColor=
"red"
runat=
"server"
/>
</div>
</telerik:RadAjaxPanel>
<telerik:RadAjaxPanel ID=
"RadAjaxPanel1"
runat=
"server"
>
<div class=
"col-xs-12 col-h"
style=
"max-height: 400px; overflow-y: scroll;"
>
<asp:Literal ID=
"litRslt"
runat=
"server"
/>
</div>
</telerik:RadAjaxPanel>
<div class=
"col-xs-12 col-h text-center"
>
<telerik:RadButton ID=
"btnSubmit"
AutoPostBack=
"true"
Text=
"save"
Skin=
"BlackMetroTouch"
Icon-PrimaryIconCssClass=
"rbSave"
RenderMode=
"Lightweight"
runat=
"server"
/>
</div>
</asp:Panel>
</div>
</article>
</section>
</main>
<telerik:RadAjaxLoadingPanel ID=
"RadAjaxLoadingPanel1"
runat=
"server"
Width=
"256px"
Height=
"64px"
>
<asp:Label ID=
"AjaxLoadingPanelLabel"
runat=
"server"
ForeColor=
"Orange"
Text=
"Loading..."
/><br />
<asp:Image ID=
"AjaxLoadingPanelImage"
runat=
"server"
Width=
"224px"
Height=
"48px"
ImageUrl=
"~/img/Loading.gif"
/>
</telerik:RadAjaxLoadingPanel>
<telerik:RadAjaxManager ID=
"RadAjaxManager1"
runat=
"server"
>
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID=
"lbxItems"
>
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID=
"lbxItems"
LoadingPanelID=
"RadAjaxLoadingPanel1"
/>
<telerik:AjaxUpdatedControl ControlID=
"tbxTester"
LoadingPanelID=
"RadAjaxLoadingPanel1"
/>
<telerik:AjaxUpdatedControl ControlID=
"litDebug"
LoadingPanelID=
"RadAjaxLoadingPanel1"
/>
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID=
"cbxSizeBox"
>
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID=
"pnlMaper"
LoadingPanelID=
"RadAjaxLoadingPanel1"
/>
<telerik:AjaxUpdatedControl ControlID=
"litRslt"
LoadingPanelID=
"RadAjaxLoadingPanel1"
/>
<telerik:AjaxUpdatedControl ControlID=
"litDebug"
LoadingPanelID=
"RadAjaxLoadingPanel1"
/>
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID=
"btnSubmit"
>
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID=
"litRslt"
LoadingPanelID=
"RadAjaxLoadingPanel1"
/>
<telerik:AjaxUpdatedControl ControlID=
"litDebug"
LoadingPanelID=
"RadAjaxLoadingPanel1"
/>
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
</form>
</body>
</html>
Imports
Telerik.Web.UI
Imports
System.Web.UI.WebControls
Imports
System.Drawing
Imports
System.Linq
Imports
Newtonsoft.Json
Partial
Class
Page_TelerikDemoStandAlone
Inherits
System.Web.UI.Page
Protected
Sub
Page_PreInit(sender
As
Object
, e
As
EventArgs)
Handles
Me
.PreInit
End
Sub
Private
Sub
Page_Init(sender
As
Object
, e
As
EventArgs)
Handles
Me
.Init
If
Not
IsPostBack
Then
ViewState(
"datasBag"
) =
""
End
If
End
Sub
Protected
Sub
Page_Load(
ByVal
sender
As
Object
,
ByVal
e
As
EventArgs)
Handles
Me
.Load
If
Not
IsPostBack
Then
lbxItems_GatDatas()
cbxSizeBox_GatDatas()
End
If
End
Sub
' lbxItems ///////////////////////////////////////////////////////////
Private
Sub
lbxItems_GatDatas()
lbxItems.Items.Clear()
lbxItems.ClearSelection()
Dim
isa
As
New
itemStandAlone
Try
If
isa.getItems()
Then
Dim
itemValue
As
String
=
""
, itemText
As
String
=
""
, itemTooltip
As
String
=
""
, itemEnabled
As
Boolean
=
False
For
i
As
Integer
= 0
To
isa.DT.Rows.Count - 1
Dim
idI
As
Integer
=
CInt
(isa.DT.Rows(i)(
"id"
))
Dim
titleI
As
String
= Trim(isa.DT.Rows(i)(
"label"
).ToString() &
""
)
Dim
valueI
As
String
= Trim(isa.DT.Rows(i)(
"value"
).ToString() &
""
)
itemValue = valueI
itemText = titleI
itemEnabled =
True
itemTooltip = idI &
";"
& titleI &
";"
& valueI &
";"
Dim
rlbi
As
New
RadListBoxItem
rlbi.Value = itemValue
rlbi.Text = itemText
rlbi.ToolTip = itemTooltip
rlbi.Enabled = itemEnabled
lbxItems.Items.Add(rlbi)
rlbi =
Nothing
Next
lbxItems.Enabled =
True
Else
lbxItems.Enabled =
False
litDebug.Text &=
"itemStandAlone.getItems() : no items"
End
If
Catch
ex
As
Exception
lbxItems.Enabled =
False
litDebug.Text &= ex.ToString()
End
Try
'isa.Dispose()
isa =
Nothing
End
Sub
Protected
Sub
lbxItems_Dropped(
ByVal
sender
As
Object
,
ByVal
e
As
RadListBoxDroppedEventArgs)
Dim
debug
As
String
=
""
Dim
datasTxt
As
String
=
""
, emptyTxt
As
String
=
""
, errorTxt
As
String
=
"error"
Dim
selectedCtrl
As
New
Object
Try
For
Each
item
As
RadListBoxItem
In
e.SourceDragItems
If
item.Value.ToString <>
""
Then
datasTxt = item.Value.ToString
End
If
Next
If
(
TypeOf
pnlMaper.FindControl(e.HtmlElementID)
Is
Telerik.Web.UI.RadTextBox)
Then
selectedCtrl =
DirectCast
(pnlMaper.FindControl(e.HtmlElementID), Telerik.Web.UI.RadTextBox)
ElseIf
tbxTester.ClientID = e.HtmlElementID
Then
selectedCtrl =
DirectCast
(tbxTester, Telerik.Web.UI.RadTextBox)
End
If
If
(datasTxt <>
""
)
Then
If
selectedCtrl IsNot
Nothing
Then
selectedCtrl.Text = datasTxt
Else
debug &=
"selectedCtrl Is Nothing !!! <br/>"
debug &=
"pnlMaper.FindControl(e.HtmlElementID).ClientID : "
& pnlMaper.FindControl(e.HtmlElementID).ClientID.ToString &
"<br/>"
End
If
Else
debug &=
"datasTxt Is empty !!! <br/>"
End
If
Catch
ex
As
Exception
debug &=
"Droped() : <br/>"
& ex.ToString &
"<br/>"
End
Try
litDebug.Text &= debug
End
Sub
' cbxSizeBox ///////////////////////////////////////////////////////////
Private
Sub
cbxSizeBox_GatDatas()
cbxSizeBox.EmptyMessage =
"Select your size ..."
cbxSizeBox.Items.Insert(0,
New
RadComboBoxItem(
"4"
, 4))
cbxSizeBox.Items.Insert(1,
New
RadComboBoxItem(
"8"
, 8))
cbxSizeBox.Items.Insert(2,
New
RadComboBoxItem(
"12"
, 12))
End
Sub
' GenerateMaper ///////////////////////////////////////////////////////////
Private
Sub
GenerateMaper(x
As
Integer
, y
As
Integer
)
Dim
gTxt
As
Telerik.Web.UI.RadTextBox
Try
pnlMaper.Controls.Add(
New
LiteralControl(
"<table id='gridBoxes' cellspacing='0' cellpadding='0'>"
))
For
i = 1
To
x
pnlMaper.Controls.Add(
New
LiteralControl(
"<tr>"
))
For
j = 1
To
y
pnlMaper.Controls.Add(
New
LiteralControl(
"<td>"
))
gTxt =
New
Telerik.Web.UI.RadTextBox
gTxt.ID =
"boxCase_"
& i.ToString &
"x"
& j.ToString
gTxt.Attributes.Add(
"datas-positions-x"
, i)
gTxt.Attributes.Add(
"datas-positions-y"
, j)
gTxt.Attributes.Add(
"datas-value"
, 0)
pnlMaper.Controls.Add(gTxt)
controlBag.Add(gTxt.ID.ToString, gTxt)
pnlMaper.Controls.Add(
New
LiteralControl(
"</td>"
))
Next
pnlMaper.Controls.Add(
New
LiteralControl(
"</tr>"
))
Next
pnlMaper.Controls.Add(
New
LiteralControl(
"</table>"
))
SetDatasBag_ViewState()
Catch
ex
As
Exception
litDebug.Text = ex.ToString()
End
Try
End
Sub
' datasbag ///////////////////////////////////////////////////////////
Protected
controlBag
As
New
Dictionary(Of
String
, Control)
Private
Function
GetDatasBag()
As
String
Dim
output
As
String
=
""
Try
If
ViewState(
"datasBag"
) IsNot
Nothing
Then
output = ViewState(
"datasBag"
)
End
If
Catch
ex
As
Exception
output &= ex.ToString &
"<br/>"
End
Try
Return
output
End
Function
Private
Function
SetDatasBag_ViewState(
Optional
debug
As
Boolean
=
False
)
As
Boolean
Dim
output
As
Boolean
=
False
, outputDatas
As
String
=
""
, _dbg
As
String
=
""
Try
Dim
dt
As
New
DataTable
dt.Columns.Add(
"id"
,
GetType
(
Integer
))
dt.Columns.Add(
"x"
,
GetType
(
String
))
dt.Columns.Add(
"y"
,
GetType
(
String
))
dt.Columns.Add(
"val"
,
GetType
(
String
))
Dim
i
As
Integer
= 0
For
Each
ctrl
In
controlBag
i += 1
If
TypeOf
ctrl.Value
Is
Telerik.Web.UI.RadTextBox
Then
Dim
gTxt
As
Telerik.Web.UI.RadTextBox =
DirectCast
(ctrl.Value, Telerik.Web.UI.RadTextBox)
Dim
x
As
String
= gTxt.Attributes(
"datas-positions-x"
).ToString(), y
As
String
= gTxt.Attributes(
"datas-positions-y"
).ToString(), val
As
String
= gTxt.Attributes(
"datas-value"
).ToString()
dt.Rows.Add(i, x, y, val)
If
(debug)
Then
_dbg &=
"id:"
& i &
";"
_dbg &=
"x:"
& x &
";"
_dbg &=
"y:"
& y &
";"
_dbg &=
"val:"
& val &
";"
_dbg &=
"<br/>"
End
If
End
If
Next
outputDatas = JsonConvert.SerializeObject(dt)
output = (outputDatas <>
""
)
If
(output)
Then
ViewState(
"datasBag"
) = outputDatas
End
If
Catch
ex
As
Exception
_dbg &= ex.ToString &
"<br/>"
End
Try
If
(_dbg <>
""
)
Then
litDebug.Text =
"SetDatasBag_ViewState : "
& _dbg
End
If
Return
output
End
Function
' controllers ///////////////////////////////////////////////////////////
Protected
Sub
btnSubmit_Click(sender
As
Object
, e
As
EventArgs)
Handles
btnSubmit.Click
litRslt.Text = GetDatasBag()
End
Sub
Private
Sub
cbxSizeBox_SelectedIndexChanged(sender
As
Object
, e
As
RadComboBoxSelectedIndexChangedEventArgs)
Handles
cbxSizeBox.SelectedIndexChanged
If
(IsNumeric(e.Value))
Then
GenerateMaper(e.Value, e.Value)
End
If
End
Sub
End
Class
' itemStandAlone //////////////////////////////////////////////////////
Public
Class
itemStandAlone
Implements
IDisposable
Public
Sub
Dispose()
Implements
IDisposable.Dispose
DT.Clear()
DT =
Nothing
GC.SuppressFinalize(
Me
)
End
Sub
Public
DT
As
New
DataTable
Public
Function
getItems()
As
Boolean
Dim
output
As
Boolean
=
False
DT.Columns.Add(
"id"
,
GetType
(
Integer
))
DT.Columns.Add(
"label"
,
GetType
(
String
))
DT.Columns.Add(
"value"
,
GetType
(
String
))
For
i = 1
To
24
DT.Rows.Add(i,
"LABEL ("
& i.ToString &
")"
,
"V"
& i.ToString)
Next
If
DT.Rows.Count > 0
Then
output =
True
End
If
Return
output
End
Function
End
Class