Hello,
I have a RadGrid in my User Control component. The display, paging etc everything works fine w/o AJAX. But the moment I introduce AJAX using RadAjaxManager (I haven't tried any other AJAX method!), the grid will still page/sort but I can't do a rowselect after the page/sort. The code is shown below.
Thanks.
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" DefaultLoadingPanelID="LoadingPanel2">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="radGridProviders">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="radGridProviders"
LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="LoadingPanel1" runat="server" Skin="Office2007">
</telerik:RadAjaxLoadingPanel>
<telerik:RadGrid ID="radGridProviders" runat="server" AllowMultiRowSelection="false" AutoGenerateColumns="False"
GridLines="Horizontal" EnableViewState="true"
AllowSorting="true" PageSize="10" AllowPaging="True"
Width="750"
OnNeedDataSource="radGridProviders_NeedDataSource" Skin="Vista">
<PagerStyle Mode="NextPrevNumericAndAdvanced"></PagerStyle>
<MasterTableView ClientDataKeyNames="ProvKey,FirstName,LastName" AllowNaturalSort="false">
<SortExpressions>
<telerik:GridSortExpression FieldName="FirstName" SortOrder="Ascending" />
</SortExpressions>
<RowIndicatorColumn Visible="False">
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
<Columns>
<telerik:GridBoundColumn HeaderText="Name" UniqueName="FullName" DataField="FullName"
SortExpression="FullName" HeaderButtonType="TextButton">
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
<ClientSettings EnableRowHoverStyle="true">
<Selecting AllowRowSelect="true" />
<ClientEvents OnRowSelected="radGrid_RowSelected"/>
</ClientSettings>
</telerik:RadGrid>
protected void Page_Load(object sender, EventArgs e)
{
#region InitScripts
string script = "function InitScripts() {" + Environment.NewLine
+ " if (!isInit) { " + Environment.NewLine
+ "modalFormUrl = \"" + SPContext.Current.Web.Url + "/Pages/modal_providerdetail.aspx?\";" + Environment.NewLine
+ string.Format("radGridProviders = $find('{0}');", radGridProviders.ClientID) + Environment.NewLine
+ "isInit = true;"
+ "}}";
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "InitScripts", script, true);
#endregion
}
protected void radGridProviders_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
if (Session[SESSION_ProvidersList] != null)
radGridProviders.DataSource = Session[SESSION_ProvidersList];
else
SetDataSource();
}
public void SetDataSource()
{
Logger.LogDebug("[ResultsUC::SetDataSource()] start", LogCategory.SHREDD);
List<Provider> providers = null;
ProviderClient webServiceClient = null;
try
{
webServiceClient = GatewayService.getInstance();
providers = webServiceClient.GetResultsWithLimit(MAX_PROVIDERS, SearchCriteriaConsumer);
}
finally
{
if (webServiceClient != null)GatewayService.closeInstance(webServiceClient);
}
if (providers != null)
{
radGridProviders.DataSource = providers;
Session[SESSION_ProvidersList] = providers;// Set to Session
}
}
I have a RadGrid in my User Control component. The display, paging etc everything works fine w/o AJAX. But the moment I introduce AJAX using RadAjaxManager (I haven't tried any other AJAX method!), the grid will still page/sort but I can't do a rowselect after the page/sort. The code is shown below.
Thanks.
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" DefaultLoadingPanelID="LoadingPanel2">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="radGridProviders">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="radGridProviders"
LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="LoadingPanel1" runat="server" Skin="Office2007">
</telerik:RadAjaxLoadingPanel>
<telerik:RadGrid ID="radGridProviders" runat="server" AllowMultiRowSelection="false" AutoGenerateColumns="False"
GridLines="Horizontal" EnableViewState="true"
AllowSorting="true" PageSize="10" AllowPaging="True"
Width="750"
OnNeedDataSource="radGridProviders_NeedDataSource" Skin="Vista">
<PagerStyle Mode="NextPrevNumericAndAdvanced"></PagerStyle>
<MasterTableView ClientDataKeyNames="ProvKey,FirstName,LastName" AllowNaturalSort="false">
<SortExpressions>
<telerik:GridSortExpression FieldName="FirstName" SortOrder="Ascending" />
</SortExpressions>
<RowIndicatorColumn Visible="False">
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
<Columns>
<telerik:GridBoundColumn HeaderText="Name" UniqueName="FullName" DataField="FullName"
SortExpression="FullName" HeaderButtonType="TextButton">
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
<ClientSettings EnableRowHoverStyle="true">
<Selecting AllowRowSelect="true" />
<ClientEvents OnRowSelected="radGrid_RowSelected"/>
</ClientSettings>
</telerik:RadGrid>
protected void Page_Load(object sender, EventArgs e)
{
#region InitScripts
string script = "function InitScripts() {" + Environment.NewLine
+ " if (!isInit) { " + Environment.NewLine
+ "modalFormUrl = \"" + SPContext.Current.Web.Url + "/Pages/modal_providerdetail.aspx?\";" + Environment.NewLine
+ string.Format("radGridProviders = $find('{0}');", radGridProviders.ClientID) + Environment.NewLine
+ "isInit = true;"
+ "}}";
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "InitScripts", script, true);
#endregion
}
protected void radGridProviders_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
if (Session[SESSION_ProvidersList] != null)
radGridProviders.DataSource = Session[SESSION_ProvidersList];
else
SetDataSource();
}
public void SetDataSource()
{
Logger.LogDebug("[ResultsUC::SetDataSource()] start", LogCategory.SHREDD);
List<Provider> providers = null;
ProviderClient webServiceClient = null;
try
{
webServiceClient = GatewayService.getInstance();
providers = webServiceClient.GetResultsWithLimit(MAX_PROVIDERS, SearchCriteriaConsumer);
}
finally
{
if (webServiceClient != null)GatewayService.closeInstance(webServiceClient);
}
if (providers != null)
{
radGridProviders.DataSource = providers;
Session[SESSION_ProvidersList] = providers;// Set to Session
}
}