Hi there,
I use a textbox filter template in my RadGrid column, but the textbox value disappear after the postback, as far as I know the value should be kept there by default, can anyone please let me know why is this happening? Thanks in advance!
Following is my code (database is northwind):
cs file
I use a textbox filter template in my RadGrid column, but the textbox value disappear after the postback, as far as I know the value should be kept there by default, can anyone please let me know why is this happening? Thanks in advance!
Following is my code (database is northwind):
<body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <Scripts> <%--Needed for JavaScript IntelliSense in VS2010--%> <%--For VS2008 replace RadScriptManager with ScriptManager--%> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> </Scripts> </telerik:RadScriptManager> <script type="text/javascript"> //Put your JavaScript code here. </script> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default"></telerik:RadAjaxLoadingPanel> <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" CellSpacing="0" GridLines="None" Width="800px" AllowFilteringByColumn="true" EnableLinqExpressions="false" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource" ShowFooter="True"> <MasterTableView AutoGenerateColumns="false" EditMode="InPlace" AllowFilteringByColumn="True" ShowFooter="True" TableLayout="Auto"> <Columns> <telerik:GridTemplateColumn DataField="Freight" HeaderText="Freight" SortExpression="Freight" AutoPostBackOnFilter="true" CurrentFilterFunction="GreaterThanOrEqualTo" ShowFilterIcon="false"> <ItemTemplate> <asp:LinkButton ID="lbl_freight" runat="server" Text='<%#Eval("Freight")%>' Visible="true"/> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="ShipName" HeaderText="Ship Name" SortExpression="ShipName" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" ShowFilterIcon="false"> <ItemTemplate> <asp:LinkButton ID="lbl_name" runat="server" Text='<%#Eval("ShipName")%>' Visible="true"/> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="ShipCountry" UniqueName="ShipCountry" HeaderText="Ship Country" SortExpression="ShipCountry"> <FilterTemplate> <telerik:RadTextBox runat="server" ID="filterCountry" ClientEvents-OnValueChanged="CountryChanged" CssClass="rgFilterTextBox"></telerik:RadTextBox> <telerik:RadScriptBlock ID="RadScriptBlock2" runat="server"> <script type="text/javascript"> function CountryChanged(sender, args) { var txtbox = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>"); txtbox.filter("ShipCountry", sender.get_value(), "Contains"); } </script> </telerik:RadScriptBlock> </FilterTemplate> <ItemTemplate> <asp:LinkButton ID="lbl_country" runat="server" Text='<%#Eval("ShipCountry")%>' Visible="true"/> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> </telerik:RadGrid> </form> </body>cs file
public partial class RadGridFilterTest : System.Web.UI.Page { protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e) { LoadData(); } private void LoadData() { RadGrid1.DataSource = GetDataTable("SELECT OrderID, OrderDate, Freight, ShipName, ShipCountry FROM Orders"); } public DataTable GetDataTable(string query) { String ConnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlConnection conn = new SqlConnection(ConnString); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = new SqlCommand(query, conn); DataTable myDataTable = new DataTable(); conn.Open(); try { adapter.Fill(myDataTable); } finally { conn.Close(); } return myDataTable; } }