Hello,
I use RadGrid and have javascript function that calls fireCommand for adding new rows. It works only when I the grid is not empty. When the gird havs 0 rows, it still fires Page_Load, but not the event handler for ItemCommand event. It used to work before the last 2 updates.
See the example below:
Main.aspx:
Main.aspx.cs:
I use RadGrid and have javascript function that calls fireCommand for adding new rows. It works only when I the grid is not empty. When the gird havs 0 rows, it still fires Page_Load, but not the event handler for ItemCommand event. It used to work before the last 2 updates.
See the example below:
Main.aspx:
<%@ Page EnableViewState="true" Language="C#" AutoEventWireup="true" CodeBehind="Main.aspx.cs"
Inherits="Pages.MainPage" MasterPageFile="~/Main.master" %>
<
asp:Content
ContentPlaceHolderID
=
"Head"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function AddNewRow(idGrid) {
var masterTable = $find(idGrid).get_masterTableView();
masterTable.fireCommand("NewRow");
}
</
script
>
</
asp:Content
>
<
asp:Content
ContentPlaceHolderID
=
"Content"
runat
=
"server"
>
<
telerik:RadGrid
runat
=
"server"
ID
=
"grid"
OnNeedDataSource
=
"grid_NeedDatasource"
OnItemCommand
=
"grid_ItemCommand"
AutoGenerateColumns
=
"false"
Width
=
"300"
>
<
MasterTableView
ShowFooter
=
"true"
EnableViewState
=
"true"
DataKeyNames
=
"Value"
>
<
Columns
>
<
telerik:GridTemplateColumn
>
<
ItemTemplate
>
<%# Eval( "Value" ) %>
</
ItemTemplate
>
<
FooterTemplate
>
<
telerik:RadNumericTextBox
runat
=
"server"
ID
=
"tbValue"
Value
=
"0"
/>
</
FooterTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"ColumnOperation"
>
<
FooterTemplate
>
<
a
href
=
"javascript:void(0)"
>
<
img
src='<%# Telerik.Web.SkinRegistrar.GetWebResourceUrl(Page,typeof(RadGrid), "Telerik.Web.UI.Skins.WebBlue.Grid.AddRecord.gif") %>'
onclick="AddNewRow('<%# Container.OwnerTableView.Parent.ClientID %>');"
alt="Add" /></
a
>
</
FooterTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridButtonColumn
UniqueName
=
"ColumnDelete"
CommandName
=
"Delete"
ButtonType
=
"ImageButton"
/>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
asp:Content
>
Main.aspx.cs:
using
System;
using
System.Web.UI;
using
System.Collections.Generic;
using
System.Linq;
using
Telerik.Web.UI;
namespace
Pages
{
public
partial
class
MainPage : Page
{
public
void
Page_Load(
object
sender, EventArgs e )
{
if
( !IsPostBack )
{
m_values =
new
List<Double>() { 1, 2, 3 };
}
}
protected
void
grid_NeedDatasource( Object sender, GridNeedDataSourceEventArgs e )
{
grid.DataSource = m_values.Select( x =>
new
{ Value = x } );
}
protected
void
grid_ItemCommand(
object
sender, GridCommandEventArgs e )
{
switch
( e.CommandName )
{
case
"NewRow"
:
var item = grid.MasterTableView.GetItems( GridItemType.Footer )[ 0 ];
var tbValue = item.FindControl(
"tbValue"
)
as
RadNumericTextBox;
m_values.Add( tbValue.Value.Value );
grid.Rebind();
break
;
case
"Delete"
:
var value = (Double)( e.Item
as
GridDataItem ).GetDataKeyValue(
"Value"
);
m_values.Remove( value );
grid.Rebind();
break
;
}
}
private
List<Double> m_values
{
get
{
return
ViewState[
"values"
]
as
List<Double>;
}
set
{
ViewState[
"values"
] = value;
}
}
}
}