I am trying to bind the radgrid on button click but it doesnt work neither I get any error. The same code works perfectly fine when I move the binding on Page load.
Why is it so??
protected
void Button1_Click(object sender, EventArgs e)
{
RAASBLL Refresh = new RAASBLL();
//Calls the method which has the query in it
DataTable dtPlazas = Refresh.AllPlazas();
RadGrid2.MasterTableView.DataSource = dtPlazas.DefaultView;
RadGrid2.DataSource = dtPlazas.DefaultView;
RadGrid2.Databind ();
}
<
telerik:RadGrid ID="RadGrid2" runat="server" AllowFilteringByColumn="True"
autogeneratecolumns="False" datakeynames="PLAZA" AllowPaging="true" >
<MasterTableView IsFilterItemExpanded="false" CommandItemDisplay="Top">
<CommandItemSettings ExportToPdfText="Export to Pdf">
</CommandItemSettings>
<RowIndicatorColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>
<Columns>
<telerik:GridBoundColumn DataField="PLAZA" HeaderText="Plaza" DataType="System.Decimal" SortExpression="PLAZA" UniqueName="PLAZA" />
<telerik:GridBoundColumn DataField="PLAZA_NAme" HeaderText="Plaza Name" DataType="System.String" SortExpression="PLAZA_NAME" UniqueName="PLAZA_NAME" />
</Columns>
</MasterTableView>
</telerik:RadGrid>
<
asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Refresh" />
Please help.
Thanks,
Reena
5 Answers, 1 is accepted
Could you please specify what happens after you click the button? No data is displayed in the grid or the grid disappear after particular actions?
Additionally, you can refer to this article for more information on RadGrid data-binding.
Regards,
Iana
the Telerik team
Eveything works fine if I set
RadGrid1.DataSource=dtPlazas;
RadGrid1.DataBind();
on PageLoad but same doesn't work on Button Click
Thanks,
Reena
I followed your scenario and prepared a sample project however I was not able to replicate the issue in question. Could you please check it out and let me know what differs in your case?
Regards,
Iana
the Telerik team
Your example worked fine for me. I am attaching a sample of my Page, you will have to modify the database query.
If you see this code doesnt work for me, dont know where the problem is?
But if I move the code under Button1_click on Page_Load (have commented that code on Page_Load) everything works fine. Can you check and tell me where is the problem.
I could not attach the sampel project zip file so am pasting the code below:
CS File:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Telerik.Web.UI; using System.Data; using System.Data.OracleClient; using System.Configuration; public partial class Members_ETC_Test : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //if (!IsPostBack) // RadGrid1.DataSource = GetData(); } protected void HeaderContextMenu_PreRender(object sender, EventArgs e) { RadMenuItem item = new RadMenuItem("Show filter"); item.Value = "FilterBuilder"; item.Attributes["ColumnName"] = string.Empty; item.Attributes["TableID"] = string.Empty; item.PostBack = false; item.Font.Bold = true; RadGrid1.HeaderContextMenu.Items.Add(item); } protected void ApplyButton_Click(object sender, EventArgs e) { RadFilter1.FireApplyCommand(); RadGrid1.DataSource = GetData() ; RadGrid1.Rebind(); } protected string GetFilterIcon() { //RadGrid1.Skin = RadSkinManager1.Skin ; //RadGrid1.Rebind(); return RadAjaxLoadingPanel.GetWebResourceUrl(Page, string.Format("Telerik.Web.UI.Skins.{0}.Grid.Filter.gif", "Vista")); } protected void Button1_Click(object sender, EventArgs e) { RadGrid1.DataSource = GetData(); } private DataTable GetData() { using (OracleConnection oraconn = new OracleConnection(ConfigurationManager.ConnectionStrings["RaasConnString"].ToString())) { oraconn.Open(); using (OracleCommand oracommand = oraconn.CreateCommand()) { oracommand.CommandText = "Select Plaza, Plaza_Name from t_ref_plaza"; DataSet ds = new DataSet(); OracleDataAdapter da = new OracleDataAdapter(oracommand); da.Fill(ds); return ds.Tables[0]; } } } } aspx :
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Members_ETC_Test" %> <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <telerik:RadScriptBlock runat="server" ID="RadScriptBlock1"> <script type="text/javascript"> function openFilterBuilderDialog() { $find('<%=RadWindow1.ClientID %>').show(); } function hideFilterBuilderDialog() { $find('<%=RadWindow1.ClientID %>').close(); } function OnHeaderMenuItemClicked(sender, args) { if (args.get_item().get_value() == "FilterBuilder") { openFilterBuilderDialog(); } } function onPanelBarItemClicked(sender, args) { if (args.get_item().get_commandName() == "OpenRadFilter") { openFilterBuilderDialog(); } } </script> </telerik:RadScriptBlock> </head> <body> <form id="form1" runat="server"> <div> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <telerik:RadAjaxManager runat="server" ID="RadAjaxManager1" DefaultLoadingPanelID="RadAjaxLoadingPanel1"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadFilter1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadFilter1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="ApplyButton"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" /> <telerik:RadWindow ID="RadWindow1" runat="server" Behaviors="Move,Close,Resize" Title="Filter Builder" Modal="true" Width="500" Height="350"> <ContentTemplate> <telerik:RadFilter runat="server" ID="RadFilter1" FilterContainerID="RadGrid1" ShowApplyButton="false" style="margin:10px 0 0 10px"/> <asp:Panel ID="FilterButtonPanel" runat="server" style="margin:10px 0 0 10px;font-size:medium"> <asp:LinkButton runat="server" ID="ApplyButton" OnClick="ApplyButton_Click" Font-Names="Verdana" Font-Size="Small" Text="Apply Expressions" OnClientClick="hideFilterBuilderDialog()"/> </asp:Panel> </ContentTemplate> </telerik:RadWindow> <telerik:RadGrid runat="server" ID="RadGrid1" AutoGenerateColumns="false" AllowPaging="True" AllowSorting="True" AllowFilteringByColumn="True" EnableHeaderContextMenu="True"> <MasterTableView IsFilterItemExpanded="false" CommandItemDisplay="Top" DataKeyNames="PLAZA"> <CommandItemTemplate> <telerik:RadToolBar runat="server" ID="RadToolBar1" OnClientButtonClicked="onPanelBarItemClicked"> <Items> <telerik:RadToolBarButton Text="Show filter" CommandName="OpenRadFilter" ImageUrl="<%#GetFilterIcon() %>" ImagePosition="Right"/> </Items> </telerik:RadToolBar> </CommandItemTemplate> <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings> <Columns> <telerik:GridBoundColumn DataField="PLAZA" HeaderText="PLAZA" DataType="System.Decimal" ReadOnly="True" SortExpression="PLAZA" UniqueName="PLAZA" /> <telerik:GridBoundColumn DataField="PLAZA_NAME" HeaderText="PLAZA_NAME" SortExpression="PLAZA_NAME" UniqueName="PLAZA_NAME" /> </Columns> </MasterTableView> <HeaderContextMenu OnPreRender="HeaderContextMenu_PreRender" OnClientItemClicked="OnHeaderMenuItemClicked"> </HeaderContextMenu> </telerik:RadGrid> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> </div> </form> </body> </html> Thanks,
Reena
When the RadGrid data source is assigned later than Page_Load, you need to explicitly call the DataBind() method. Therefore can you try modifying the Button1_Click handler as below as see if it makes any difference?
protected void Button1_Click(object sender, EventArgs e) { RadGrid1.DataSource = GetData(); RadGrid1.DataBind(); }Kind regards,
Iana
the Telerik team