I had this Error
Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
when i tried to add new record.
Update work fine with RadInputManager to validate the textbox/NumuricTextbox.
I think it might be my js conditionalPostback and validateRadUpload for disable ajax to update Image from RadUpload
Here my aspx file
<%@ Page Title="" Language="C#" MasterPageFile="~/Admin.Master" AutoEventWireup="true" CodeBehind="ManageRecipes.aspx.cs" Inherits="GroceryStore.AdminPanel.ManageRecipes" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"head"
runat
=
"server"
>
</
asp:Content
>
<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"body"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
telerik:RadCodeBlock
ID
=
"RadCodeBlock1"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function rowDblClick(sender, eventArgs) {
sender.get_masterTableView().editItem(eventArgs.get_itemIndexHierarchical());
}
function conditionalPostback(sender, eventArgs) {
var theRegexp = new RegExp("\.UpdateButton$|\.PerformInsertButton$", "ig");
if (eventArgs.get_eventTarget().match(theRegexp)) {
var upload = $find(window['UploadId']);
//AJAX is disabled only if file is selected for upload
try{
if (upload.getFileInputs()[0].value != "") {
eventArgs.set_enableAjax(false);
}
}catch(Error){
}
}
}
function validateRadUpload(source, e) {
e.IsValid = false;
var upload = $find(source.parentNode.getElementsByTagName('div')[0].id);
var inputs = upload.getFileInputs();
for (var i = 0; i <
inputs.length
; i++) {
//check for empty string or invalid extension
if (inputs[i].value != "" && upload.isExtensionValid(inputs[i].value)) {
e.IsValid
=
true
;
break;
}
}
}
</script>
</
telerik:RadCodeBlock
>
<
telerik:RadAjaxManager
runat
=
"server"
ID
=
"RadAjaxManager1"
DefaultLoadingPanelID
=
"RadAjaxLoadingPanel1"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadWindowManager1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadInputManager1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadInputManager2"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
Skin
=
"Default"
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel1"
runat
=
"server"
ClientEvents-OnRequestStart
=
"conditionalPostback"
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
CellSpacing
=
"0"
GridLines
=
"None"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
OnItemDataBound
=
"RadGrid1_ItemDataBound"
OnItemCreated
=
"RadGrid1_ItemCreated"
OnDeleteCommand
=
"RadGrid1_DeleteCommand"
OnUpdateCommand
=
"RadGrid1_UpdateCommand"
OnDetailTableDataBind
=
"RadGrid1_DetailTableDataBind"
OnInsertCommand
=
"RadGrid1_InsertCommand"
AllowSorting
=
"True"
>
<
MasterTableView
AutoGenerateColumns
=
"False"
DataKeyNames
=
"RecipeId"
CommandItemDisplay
=
"Top"
InsertItemPageIndexAction
=
"ShowItemOnCurrentPage"
AllowPaging
=
"True"
>
<
DetailTables
>
<
telerik:GridTableView
runat
=
"server"
AutoGenerateColumns
=
"False"
DataKeyNames
=
"RecipeIngredientId"
CommandItemDisplay
=
"Top"
Name
=
"Ingredient"
>
<
CommandItemSettings
ExportToPdfText
=
"Export to PDF"
/>
<
RowIndicatorColumn
FilterControlAltText
=
"Filter RowIndicator column"
>
<
HeaderStyle
Width
=
"20px"
/>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
FilterControlAltText
=
"Filter ExpandColumn column"
>
<
HeaderStyle
Width
=
"20px"
/>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
/>
<
telerik:GridBoundColumn
DataField
=
"RecipeIngredientId"
FilterControlAltText
=
"Filter RecipeIngredientId column"
HeaderText
=
"RecipeIngredientId"
UniqueName
=
"RecipeIngredientId"
ReadOnly
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridDropDownColumn
DataField
=
"Name"
FilterControlAltText
=
"Filter IngredientName column"
HeaderText
=
"Ingredient"
UniqueName
=
"IngredientName"
DataSourceID
=
"LinqDataSource1"
ListTextField
=
"Name"
ListValueField
=
"Name"
>
</
telerik:GridDropDownColumn
>
<
telerik:GridBoundColumn
DataField
=
"Amount"
FilterControlAltText
=
"Filter column1 column"
HeaderText
=
"Amount"
UniqueName
=
"Amount"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Unit"
FilterControlAltText
=
"Filter column2 column"
HeaderText
=
"Unit"
UniqueName
=
"Unit"
>
</
telerik:GridBoundColumn
>
<
telerik:GridButtonColumn
ConfirmText
=
"Delete this Ingredient?"
ConfirmDialogType
=
"RadWindow"
ConfirmTitle
=
"Delete"
ButtonType
=
"ImageButton"
CommandName
=
"Delete"
/>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
ButtonType
=
"ImageButton"
>
</
EditColumn
>
</
EditFormSettings
>
</
telerik:GridTableView
>
</
DetailTables
>
<
CommandItemSettings
ExportToPdfText
=
"Export to PDF"
></
CommandItemSettings
>
<
RowIndicatorColumn
FilterControlAltText
=
"Filter RowIndicator column"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
FilterControlAltText
=
"Filter ExpandColumn column"
Visible
=
"True"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
/>
<
telerik:GridBinaryImageColumn
DataField
=
"MainImage"
FilterControlAltText
=
"Filter Image column"
HeaderText
=
"Image"
ImageHeight
=
"50px"
ImageWidth
=
"50px"
ResizeMode
=
"Crop"
UniqueName
=
"Image"
DefaultImageUrl
=
"~\resources\images\noImageAvailable.jpg"
>
</
telerik:GridBinaryImageColumn
>
<
telerik:GridBoundColumn
DataField
=
"RecipeId"
DataType
=
"System.Int32"
FilterControlAltText
=
"Filter RecipeId column"
HeaderText
=
"RecipeId"
ReadOnly
=
"True"
SortExpression
=
"RecipeId"
UniqueName
=
"RecipeId"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Name"
FilterControlAltText
=
"Filter Name column"
HeaderText
=
"Name"
SortExpression
=
"Name"
UniqueName
=
"Name"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Description"
FilterControlAltText
=
"Filter Description column"
HeaderText
=
"Description"
SortExpression
=
"Description"
UniqueName
=
"Description"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Serving"
DataType
=
"System.Int32"
FilterControlAltText
=
"Filter Serving column"
HeaderText
=
"Serving"
SortExpression
=
"Serving"
UniqueName
=
"Serving"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Instruction"
FilterControlAltText
=
"Filter Instruction column"
HeaderText
=
"Instruction"
SortExpression
=
"Instruction"
UniqueName
=
"Instruction"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Cuisine"
FilterControlAltText
=
"Filter Cuisine column"
HeaderText
=
"Cuisine"
SortExpression
=
"Cuisine"
UniqueName
=
"Cuisine"
>
</
telerik:GridBoundColumn
>
<
telerik:GridButtonColumn
ConfirmText
=
"Delete this recipes?"
ConfirmDialogType
=
"RadWindow"
ConfirmTitle
=
"Delete"
ButtonType
=
"ImageButton"
CommandName
=
"Delete"
/>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
ButtonType
=
"ImageButton"
/>
</
EditFormSettings
>
</
MasterTableView
>
<
FilterMenu
EnableImageSprites
=
"False"
></
FilterMenu
>
<
HeaderContextMenu
CssClass
=
"GridContextMenu GridContextMenu_Default"
></
HeaderContextMenu
>
</
telerik:RadGrid
>
</
telerik:RadAjaxPanel
>
<
telerik:RadInputManager
runat
=
"server"
ID
=
"RadInputManager1"
Enabled
=
"true"
>
<
telerik:TextBoxSetting
BehaviorID
=
"TextBoxSetting1"
>
</
telerik:TextBoxSetting
>
<
telerik:TextBoxSetting
BehaviorID
=
"TextBoxSetting2"
>
</
telerik:TextBoxSetting
>
<
telerik:NumericTextBoxSetting
BehaviorID
=
"NumericTextBoxSetting1"
Type
=
"Number"
AllowRounding
=
"true"
DecimalDigits
=
"0"
>
</
telerik:NumericTextBoxSetting
>
<
telerik:TextBoxSetting
BehaviorID
=
"TextBoxSetting3"
>
</
telerik:TextBoxSetting
>
<
telerik:TextBoxSetting
BehaviorID
=
"TextBoxSetting4"
>
</
telerik:TextBoxSetting
>
</
telerik:RadInputManager
>
<
telerik:RadWindowManager
ID
=
"RadWindowManager1"
runat
=
"server"
/>
<
telerik:RadInputManager
runat
=
"server"
ID
=
"RadInputManager2"
Enabled
=
"true"
>
<
telerik:NumericTextBoxSetting
BehaviorID
=
"NumericTextBoxSetting11"
Type
=
"Number"
AllowRounding
=
"true"
DecimalDigits
=
"0"
>
</
telerik:NumericTextBoxSetting
>
<
telerik:TextBoxSetting
BehaviorID
=
"TextBoxSetting11"
>
</
telerik:TextBoxSetting
>
</
telerik:RadInputManager
>
<
telerik:RadWindowManager
ID
=
"RadWindowManager2"
runat
=
"server"
/>
<
asp:LinqDataSource
ID
=
"LinqDataSource1"
runat
=
"server"
ContextTypeName
=
"GroceryStore.GroceryStoreDataContext"
EntityTypeName
=
""
TableName
=
"Ingredientdatas"
Select
=
"new (Name)"
>
</
asp:LinqDataSource
>
</
asp:Content
>