Folks, Using ASP.Net Ajax Q1 2012 with VS 2010.
I am using below link as a prototype.
http://demos.telerik.com/aspnet-ajax/grid/examples/performance/linq/defaultcs.aspx
My question's are:
1) I would like to have an option just to show 1st 2000 rows or all rows in the Form based on user input. I will create a Text Box where users will enter # of rows to Show in Radgrid. if Textbox is null then show all rows.
.
2) Possible to select rows (may be 2000 or all rows) from mutiple tables (i.e. Products and Category) based on a certain Catergory Description? Ex: I will have a Text Box in the form for users to enter Category description and based on that Text Box value, show only Radgrid rows that meets the criteria. But insert/update/deletions will be limitted to Products Table only not in Category Table.
The soutions I am looking from LINQ to SQL, not SQL.
Thanks
gc_0620
 
                                I am using below link as a prototype.
http://demos.telerik.com/aspnet-ajax/grid/examples/performance/linq/defaultcs.aspx
My question's are:
1) I would like to have an option just to show 1st 2000 rows or all rows in the Form based on user input. I will create a Text Box where users will enter # of rows to Show in Radgrid. if Textbox is null then show all rows.
.
2) Possible to select rows (may be 2000 or all rows) from mutiple tables (i.e. Products and Category) based on a certain Catergory Description? Ex: I will have a Text Box in the form for users to enter Category description and based on that Text Box value, show only Radgrid rows that meets the criteria. But insert/update/deletions will be limitted to Products Table only not in Category Table.
The soutions I am looking from LINQ to SQL, not SQL.
Thanks
gc_0620
3 Answers, 1 is accepted
0
                                Hi,
Could you elaborate on what problems exactly you have in achieving this with RadGrid. With advanced data-binding the first part of your requirement depends only on the way you query your datasource. You just need to handle the change of value in the textbox, use its value to query your DB, set the result as DataSource of RadGrid and rebind it.
As for editing, again it depends on your own logic how you are going to form the update statements in the UpdateCommand event.
Kind regards,
Tsvetina
the Telerik team
                                        Could you elaborate on what problems exactly you have in achieving this with RadGrid. With advanced data-binding the first part of your requirement depends only on the way you query your datasource. You just need to handle the change of value in the textbox, use its value to query your DB, set the result as DataSource of RadGrid and rebind it.
As for editing, again it depends on your own logic how you are going to form the update statements in the UpdateCommand event.
Kind regards,
Tsvetina
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
0
                                
                                                    gc_0620
                                                    
                                            
    Top achievements
    
            
                
                Rank 1
            
    
                                                
                                                answered on 22 Mar 2012, 04:24 PM
                                            
                                        Hi Tsvetina 
Basically I would like to filter the Grid Linq Datasource at run time based on the Selection of a Rad Combo Box. Please refer to attached screen shot file for my desire. For Example: if in RadcomboBox I select the Category Name = Seafood, at runtime the Grid will Filter only rows with that Category Name (i.e. CategoryId = 8, linking column between Categories and Products Table for that Category Name). if the selection in RadComboBox Category Name = All, the RadGrid will show all Rows from Products Table. Either way (Grid is filtered or not), I would like to perform Insert/Update/Delete as usual.
I modified below link to fit my needs.
http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/programaticlinqupdates/defaultcs.aspx
If Datasource is SQLDatasource, I can easily filter the Grid at run time but having some hardtime to Filter the LINQDatasource at run time. Below is my complete code. Another question is it possible to have Parent Table LinqDatasource and Child Table SQLDatasource?
Thanks
gc_0620
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                        Basically I would like to filter the Grid Linq Datasource at run time based on the Selection of a Rad Combo Box. Please refer to attached screen shot file for my desire. For Example: if in RadcomboBox I select the Category Name = Seafood, at runtime the Grid will Filter only rows with that Category Name (i.e. CategoryId = 8, linking column between Categories and Products Table for that Category Name). if the selection in RadComboBox Category Name = All, the RadGrid will show all Rows from Products Table. Either way (Grid is filtered or not), I would like to perform Insert/Update/Delete as usual.
I modified below link to fit my needs.
http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/programaticlinqupdates/defaultcs.aspx
If Datasource is SQLDatasource, I can easily filter the Grid at run time but having some hardtime to Filter the LINQDatasource at run time. Below is my complete code. Another question is it possible to have Parent Table LinqDatasource and Child Table SQLDatasource?
Thanks
gc_0620
<%@ Page Language="C#" Inherits="Telerik.GridExamplesCSharp.DataEditing.ProgramaticLinqUpdates.DefaultCS"    CodeFile="defaultcs.aspx.cs" %><%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">      </head><body class="BODY">    <form id="form1" runat="server">    <div>        <telerik:RadScriptManager ID="RadScriptManager1" runat="server" />                 <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">            <script type="text/javascript">                function rowDblClick(sender, eventArgs) {                    sender.get_masterTableView().editItem(eventArgs.get_itemIndexHierarchical());                }            </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" />                    </UpdatedControls>                </telerik:AjaxSetting>                           </AjaxSettings>        </telerik:RadAjaxManager>        <telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" />        <br /> <br />        <asp:Label ID="Label1" runat="server" Text="Filter Grid by Category Name:    "></asp:Label>        <telerik:RadComboBox ID="RadComboBox1" runat="server"  AppendDataBoundItems="true" AutoPostBack = "true"            DataSourceID="SqlDataSource1" DataTextField="CategoryName"            DataValueField="CategoryID" Skin="Office2007">            <Items>                    <telerik:RadComboBoxItem Text="All" Value="0" Selected="true" />                </Items>        </telerik:RadComboBox>        <br /><br /> <br />        <telerik:RadGrid runat="server" ID="RadGrid1" AutoGenerateColumns="false"            AllowPaging="true" OnNeedDataSource="RadGrid1_NeedDataSource" OnUpdateCommand="RadGrid1_UpdateCommand"            OnItemCreated="RadGrid1_ItemCreated" OnDeleteCommand="RadGrid1_DeleteCommand"            OnInsertCommand="RadGrid1_InsertCommand">            <MasterTableView DataKeyNames="ProductID" CommandItemDisplay="Top" InsertItemPageIndexAction="ShowItemOnCurrentPage">                <Columns>                    <telerik:GridEditCommandColumn ButtonType="ImageButton" />                                     <telerik:GridBoundColumn DataField="ProductID" HeaderText="Product ID" ReadOnly="true"                        ForceExtractValue="Always" ConvertEmptyStringToNull="true" />                    <telerik:GridBoundColumn DataField="ProductName" HeaderText="Product Name" />                                        <telerik:GridBoundColumn DataField="CategoryID" HeaderText="Category Id" />                      <telerik:GridBoundColumn DataField="UnitsInStock" HeaderText="Units In Stock" />                    <telerik:GridBoundColumn DataField="UnitPrice" HeaderText="Price" DataFormatString="{0:c}"/>                    <telerik:GridButtonColumn ConfirmText="Delete this product?" ConfirmDialogType="RadWindow"                        ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" />                </Columns>                <EditFormSettings>                    <EditColumn ButtonType="ImageButton" />                </EditFormSettings>            </MasterTableView>            <PagerStyle Mode="NextPrevAndNumeric" />            <ClientSettings>                <ClientEvents OnRowDblClick="rowDblClick" />            </ClientSettings>        </telerik:RadGrid>        <telerik:RadInputManager runat="server" ID="RadInputManager1" Enabled="true">            <telerik:TextBoxSetting BehaviorID="TextBoxSetting1">            </telerik:TextBoxSetting>                        <telerik:NumericTextBoxSetting BehaviorID="NumericTextBoxSetting1" Type="Currency"                AllowRounding="true" DecimalDigits="2">            </telerik:NumericTextBoxSetting>            <telerik:NumericTextBoxSetting BehaviorID="NumericTextBoxSetting2" Type="Number"                AllowRounding="true" DecimalDigits="0" MinValue="0">            </telerik:NumericTextBoxSetting>        </telerik:RadInputManager>        <telerik:RadWindowManager ID="RadWindowManager1" runat="server" />        <br />        <asp:SqlDataSource ID="SqlDataSource1" runat="server"            ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"             SelectCommand="SELECT CategoryName, CategoryID FROM Categories ORDER BY CategoryName"></asp:SqlDataSource>           </div>    </form></body></html>---------------------------using System;using System.Collections;using System.Data.Linq;using System.Web.UI;using System.Web.UI.WebControls;using LinqToSql;using System.Linq;using Telerik.Web.UI;namespace Telerik.GridExamplesCSharp.DataEditing.ProgramaticLinqUpdates{    public partial class DefaultCS : Page    {        private NorthwindDataContext _dataContext;        protected NorthwindDataContext DbContext        {            get            {                if (_dataContext == null)                {                    _dataContext = new NorthwindDataContext();                }                return _dataContext;            }        }        public override void Dispose()        {            if (_dataContext != null)            {                _dataContext.Dispose();            }            base.Dispose();        }        protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e)        {            RadGrid1.DataSource = DbContext.Products;        }        protected void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e)        {            var editableItem = ((GridEditableItem)e.Item);            var productId = (int)editableItem.GetDataKeyValue("ProductID");            //retrive entity form the Db            var product = DbContext.Products.Where(n => n.ProductID == productId).FirstOrDefault();            if (product != null)            {                //update entity's state                editableItem.UpdateValues(product);                try                {                    //submit chanages to Db                    DbContext.SubmitChanges();                }                catch (System.Exception)                {                    ShowErrorMessage();                }            }        }        /// <summary>        /// Shows a <see cref="RadWindow"/> alert if an error occurs        /// </summary>        private void ShowErrorMessage()        {            RadAjaxManager1.ResponseScripts.Add(string.Format("window.radalert(\"Please enter valid data!\")"));        }        protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)        {            if (e.Item is GridEditableItem && (e.Item.IsInEditMode))            {                GridEditableItem editableItem = (GridEditableItem)e.Item;                SetupInputManager(editableItem);            }        }        private void SetupInputManager(GridEditableItem editableItem)        {            // style and set ProductName column's textbox as required            var textBox =                ((GridTextBoxColumnEditor)editableItem.EditManager.GetColumnEditor("ProductName")).TextBoxControl;            textBox.ID = "TextBox1";            InputSetting inputSetting = RadInputManager1.GetSettingByBehaviorID("TextBoxSetting1");            inputSetting.TargetControls.Add(new TargetInput(textBox.UniqueID, true));            inputSetting.InitializeOnClient = true;            inputSetting.Validation.IsRequired = true;            // style UnitPrice column's textbox             textBox =                ((GridTextBoxColumnEditor)editableItem.EditManager.GetColumnEditor("UnitPrice")).TextBoxControl;            textBox.ID = "TextBox2";            inputSetting = RadInputManager1.GetSettingByBehaviorID("NumericTextBoxSetting1");            inputSetting.InitializeOnClient = true;            inputSetting.TargetControls.Add(new TargetInput(textBox.UniqueID, true));            // style UnitsInStock column's textbox             textBox =                ((GridTextBoxColumnEditor)editableItem.EditManager.GetColumnEditor("UnitsInStock")).TextBoxControl;            textBox.ID = "TextBox3";            inputSetting = RadInputManager1.GetSettingByBehaviorID("NumericTextBoxSetting2");            inputSetting.InitializeOnClient = true;            inputSetting.TargetControls.Add(new TargetInput(textBox.UniqueID, true));        }        protected void RadGrid1_InsertCommand(object source, GridCommandEventArgs e)        {            var editableItem = ((GridEditableItem)e.Item);            //create new entity            var product = new LinqToSql.Product();            //populate its properties            Hashtable values = new Hashtable();            editableItem.ExtractValues(values);            product.ProductName = (string)values["ProductName"];            if (values["UnitsInStock"] != null)            {                product.UnitsInStock = short.Parse(values["UnitsInStock"].ToString());            }            if (values["UnitPrice"] != null)            {                product.UnitPrice = decimal.Parse(values["UnitPrice"].ToString());            }                       DbContext.Products.InsertOnSubmit(product);            try            {                //submit chanages to Db                DbContext.SubmitChanges();            }            catch (System.Exception)            {                ShowErrorMessage();                            }        }        protected void RadGrid1_DeleteCommand(object source, GridCommandEventArgs e)        {            var productId = (int)((GridDataItem)e.Item).GetDataKeyValue("ProductID");            //retrive entity form the Db            var product = DbContext.Products.Where(n => n.ProductID == productId).FirstOrDefault();            if (product != null)            {                //add the category for deletion                DbContext.Products.DeleteOnSubmit(product);                try                {                    //submit chanages to Db                    DbContext.SubmitChanges();                }                catch (System.Exception)                {                    ShowErrorMessage();                }            }        }    }}0
                                Hi,
You can see how filtering based on a dropdown value can be performed with LinqDataSource here:
http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx
You can see that this same datasource control allows editing at the same time.
As for binding the grid to different types of datasource controls, this should be fine, as long as you correctly pass the key value used to filter the hierarchy.
All the best,
Tsvetina
the Telerik team
                                        You can see how filtering based on a dropdown value can be performed with LinqDataSource here:
http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx
You can see that this same datasource control allows editing at the same time.
As for binding the grid to different types of datasource controls, this should be fine, as long as you correctly pass the key value used to filter the hierarchy.
All the best,
Tsvetina
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.