I am having trouble passing selected rows from one grid to another. My currently implementation seems to work in Chrome but not IE.
Currently I have 3 databound columns and 4 template columns that are static in my grid and I need to pass information that is entered into those fields to my second grid. I am currently doing this by using ajax.
I loop through the selected rows then get the values from each column and pass the values as a string using ajaxrequest(string). As I said before this seems to work in Chrome but not IE. In IE it only seems to pass in the last row selected to the code behind, So when it binds to the second grid it will only populate information from the last row selected. Javascript doesn't seem to tun the same in both browsers.
Also if there is a better way then using static columns and ajax I would love to hear it .
Here is some code.
Javascript:
function
InitiateAjaxRequest(arguments) {
var
ajaxManager = $find(
"<%= RadAjaxManager1.ClientID %>"
);
ajaxManager.ajaxRequest(arguments);
}
function
addSelectedRows() {
debugger;
//SysSet('Action', <%= Actions.LoadOrder%>);
var
grid = $find(
"<%= rgPOLines.ClientID %>"
);
if
(grid) {
var
MasterTable = grid.get_masterTableView();
var
Rows = MasterTable.get_dataItems();
var
selectedRows = MasterTable.get_selectedItems();
if
(selectedRows.length > 0) {
for
(
var
i = 0; i < selectedRows.length; i++) {
var
selectedrow = selectedRows[i];
var
getContainer_cnt = selectedrow.get_cell(
"Container_cnt"
),
getQty_toreceive = selectedrow.get_cell(
"Qty_toreceive"
),
getMfgLotNo = selectedrow.get_cell(
"MfgLotNo"
),
getBin_no = selectedrow.get_cell(
"Bin_no"
);
//var test = $telerik.$(getQty_toreceive).find('input')[0].value;
//var test2 = test.replace(/,/g, "");
// Row text data
var
Line_no = selectedrow.get_cell(
"Line_no"
).innerText,
Item_no = selectedrow.get_cell(
"Item_no"
).innerText,
Qty_remaining = selectedrow.get_cell(
"Qty_remaining"
).innerText,
Container_cnt = $telerik.$(getContainer_cnt).find(
'input'
)[0].value,
Qty_toreceive = convertToFloat($telerik.$(getQty_toreceive).find(
'input'
)[0].value) / Container_cnt,
Total_Qty_toreceive = $telerik.$(getQty_toreceive).find(
'input'
)[0].value,
MfgLotNo = $telerik.$(getMfgLotNo).find(
'input'
)[0].value,
Lot_no =
""
,
Bin_no = $telerik.$(getBin_no).find(
'span'
)[0].innerText;
if
(Container_cnt && Total_Qty_toreceive && MfgLotNo && (Bin_no !=
"Select Bin"
|| Bin_no)) {
var
rowData = Line_no +
","
+ Item_no +
","
+ Qty_remaining +
","
+ Container_cnt +
","
+ Qty_toreceive +
","
+ Total_Qty_toreceive +
","
+ MfgLotNo +
","
+ Lot_no +
","
+ Bin_no
InitiateAjaxRequest(rowData);
//SysSubmit(1);
}
else
{
alert(
"Data must be entered in NUMBER OF CONTAINERS, QTY TO RECEIVE, and MFG LOT #."
)
}
// Method1
//var getCellText_1 = row.get_element().cells[0].innerHTML;
// Method2
// Method3
//var getCellText_2 = row.get_cell("Name").getElementsByTagName("span")[0].innerHTML; //this code also work for Checkboxcolunm, hyperlinkcolumn...etc
}
}
else
{
alert(
"At least one row must be selected."
)
}
}
}
VB:
Protected
Sub
RadAjaxManager1_AjaxRequest(
ByVal
sender
As
Object
,
ByVal
e
As
AjaxRequestEventArgs)
' Remove all carriage returns from data
Dim
argument = e.Argument.Replace(vbCr,
""
).Replace(vbLf,
""
)
' Add data to array
Dim
orderNo = LTrim(RTrim(Ord_no.Value))
Dim
location = LTrim(RTrim(lblShip_to_cd.InnerText))
Dim
rowData() = argument.Split(
","
.ToCharArray())
rowData = (orderNo &
","
&
String
.Join(
","
, rowData) &
","
& location).Split(
","
.ToCharArray)
' Add data to DataTable
GetData(rowData)
' Add data to secondary grid
BindSecondaryGrid()
End
Sub
ASPX:
<
telerik:RadGrid
ID
=
"rgPOLines"
runat
=
"server"
AllowPaging
=
"false"
CellSpacing
=
"0"
ShowFooter
=
"false"
GridLines
=
"None"
AllowMultiRowSelection
=
"true"
OnPreRender
=
"rgPOLines_PreRender"
OnItemDataBound
=
"rgPOLines_ItemDataBound"
>
<
MasterTableView
CommandItemDisplay
=
"TopAndBottom"
EditMode
=
"Batch"
AutoGenerateColumns
=
"false"
RetrieveNullAsDBNull
=
"true"
DataKeyNames
=
"Line_no"
>
<
CommandItemSettings
ShowAddNewRecordButton
=
"false"
ShowRefreshButton
=
"false"
ShowSaveChangesButton
=
"false"
ShowExportToExcelButton
=
"false"
ShowExportToCsvButton
=
"false"
/>
<
Columns
>
<
telerik:GridClientSelectColumn
HeaderText
=
"Select For Receipt"
UniqueName
=
"Item_selected"
></
telerik:GridClientSelectColumn
>
<
telerik:GridBoundColumn
DataField
=
"Line_no"
HeaderText
=
"Line_no"
UniqueName
=
"Line_no"
ReadOnly
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Item_no"
HeaderText
=
"Item_no"
UniqueName
=
"Item_no"
ReadOnly
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridNumericColumn
DataField
=
"Qty_remaining"
HeaderText
=
"Qty Remaining"
DecimalDigits
=
"0"
UniqueName
=
"Qty_remaining"
ReadOnly
=
"true"
>
</
telerik:GridNumericColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Number of Containers"
UniqueName
=
"Container_cnt"
DataField
=
"Container_cnt"
>
<
ItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
"ContainerCnt"
runat
=
"server"
MinValue
=
"0"
MaxValue
=
"999999999"
><
NumberFormat
GroupSeparator
=
""
DecimalDigits
=
"0"
/></
telerik:RadNumericTextBox
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Qty to Receive"
UniqueName
=
"Qty_toreceive"
DataField
=
"Qty_toreceive"
>
<
ItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
"Qty_toreceive"
runat
=
"server"
Type
=
"Number"
></
telerik:RadNumericTextBox
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Mfg Lot #"
UniqueName
=
"MfgLotNo"
DataField
=
"MfgLotNo"
>
<
ItemTemplate
>
<
telerik:RadTextBox
ID
=
"MfgLotNo"
runat
=
"server"
MaxLength
=
"15"
></
telerik:RadTextBox
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Bin #"
UniqueName
=
"Bin_no"
>
<
ItemTemplate
>
<
telerik:RadDropDownList
runat
=
"server"
ID
=
"Bin_no"
AutoPostBack
=
"false"
DataTextField
=
"Bin"
DataValueField
=
"Bin"
>
</
telerik:RadDropDownList
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
AllowKeyboardNavigation
=
"false"
AllowColumnsReorder
=
"false"
Selecting-AllowRowSelect
=
"true"
>
</
ClientSettings
>
</
telerik:RadGrid
>
<
telerik:RadButton
ID
=
"btnAddSelectedRows"
runat
=
"server"
Text
=
"Add Selected Rows To Receipt"
OnClientClicked
=
"addSelectedRows"
ToolTip
=
"Add Selected Rows"
AutoPostBack
=
"false"
>
</
telerik:RadButton
>
<
telerik:RadAjaxLoadingPanel
runat
=
"server"
ID
=
"RadAjaxLoadingPanel1"
></
telerik:RadAjaxLoadingPanel
>
<
telerik:RadScriptManager
runat
=
"server"
ID
=
"RadScriptManager1"
/>
<
telerik:RadSkinManager
ID
=
"RadSkinManager1"
runat
=
"server"
ShowChooser
=
"true"
Skin
=
"Silk"
/>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
EnableAJAX
=
"true"
runat
=
"server"
OnAjaxRequest
=
"RadAjaxManager1_AjaxRequest"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadAjaxManager1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"rgPOLines"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"rgMfgLot"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"rgMfgLot"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"rgMfgLot"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadFormDecorator
ID
=
"RadFormDecorator1"
runat
=
"server"
DecorationZoneID
=
"demo"
DecoratedControls
=
"All"
EnableRoundedCorners
=
"false"
/>