Hi,
Can someone please help me with the following problem?
In my current project I have an advanced hierarchy model of Telerik RadGrid.
I need to set the CheckBoxes grid items into Edit Mode similar to the following http://www.gouw.ws/EditGrouping.aspx
I followed the documentation as given here "Put all items in edit mode without additional rebind"
However, it does not seem to work.
The web page is available on http://www.gouw.ws/HierarchyWithDS.aspx
The code are given as follows:
ASPX
C#
Can someone please help me with the following problem?
In my current project I have an advanced hierarchy model of Telerik RadGrid.
I need to set the CheckBoxes grid items into Edit Mode similar to the following http://www.gouw.ws/EditGrouping.aspx
I followed the documentation as given here "Put all items in edit mode without additional rebind"
However, it does not seem to work.
The web page is available on http://www.gouw.ws/HierarchyWithDS.aspx
The code are given as follows:
ASPX
<telerik:RadGrid ID="RadGrid1" AutoGenerateColumns="False" AutoGenerateHierarchy="True" AllowMultiRowEdit="true" Width="70%" OnNeedDataSource="RadGrid1_NeedDataSource" runat="server"> <ClientSettings EnableAlternatingItems="false"> <Scrolling UseStaticHeaders="true" /> </ClientSettings> <MasterTableView DataKeyNames="CategoryId" EditMode="InPlace" TableLayout="Fixed"> <DetailTables> <telerik:GridTableView DataKeyNames="CategoryId,TypeId" runat="server"> <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="CategoryId" MasterKeyField="CategoryId" /> </ParentTableRelation> <DetailTables> <telerik:GridTableView DataKeyNames="TypeId,ContactName" runat="server"> <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="TypeId" MasterKeyField="TypeId" /> </ParentTableRelation> <Columns> <telerik:GridBoundColumn DataField="TypeId" DataType="System.String" ReadOnly="true" Visible="false" UniqueName="TypeId" /> <telerik:GridBoundColumn DataField="ContactName" DataType="System.String" HeaderText="Contact Name" ReadOnly="true" UniqueName="ContactName" /> <telerik:GridCheckBoxColumn DataField="Email" DataType="System.Boolean" HeaderText="Email" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" ReadOnly="false" UniqueName="Email" /> <telerik:GridCheckBoxColumn DataField="SMS" DataType="System.Boolean" HeaderText="SMS" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" ReadOnly="false" UniqueName="SMS" /> <telerik:GridCheckBoxColumn DataField="NotifyByEmail" DataType="System.Boolean" HeaderText="Notify By Email" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" ReadOnly="false" UniqueName="NotifyByEmail" /> </Columns> </telerik:GridTableView> </DetailTables> <Columns> <telerik:GridBoundColumn DataField="CategoryId" DataType="System.String" ReadOnly="true" Visible="false" UniqueName="CategoryId" /> <telerik:GridBoundColumn DataField="TypeId" DataType="System.String" ReadOnly="true" Visible="false" UniqueName="TypeId" /> <telerik:GridBoundColumn DataField="TypeName" DataType="System.String" HeaderText="Type Name" ReadOnly="true" UniqueName="TypeName" /> <telerik:GridCheckBoxColumn DataField="NoEncryption" DataType="System.Boolean" HeaderText="Encryption Not Required" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" ReadOnly="false" UniqueName="NoEncryption" /> </Columns> </telerik:GridTableView> </DetailTables> <Columns> <telerik:GridBoundColumn DataField="CategoryId" DataType="System.String" ReadOnly="true" Visible="false" UniqueName="CategoryId" /> <telerik:GridBoundColumn DataField="CategoryName" DataType="System.String" HeaderText="Category Name" ReadOnly="true" UniqueName="CategoryName" /> </Columns> </MasterTableView></telerik:RadGrid>C#
public partial class HierarchyWithDS : System.Web.UI.Page{ private DataSet _dataSet = null; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (_dataSet == null) _dataSet = CreateDataSet(); Session["DATASET"] = _dataSet; } else { _dataSet = (DataSet)Session["DATASET"]; } SetEditMode(); } protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e) { this.RadGrid1.DataSource = _dataSet; } private void SetEditMode() { int size = 0; for (int i = 0; i < _dataSet.Tables.Count; i++) { size += _dataSet.Tables[i].Rows.Count; } for (int i = 0; i < size; i++) { this.RadGrid1.EditIndexes.Add(i); } } private DataSet CreateDataSet() { DataSet dataSet = new DataSet(); // Category table DataTable dtCategory = new DataTable("Category"); dtCategory.Columns.Add("CategoryId", typeof(string)); dtCategory.Columns.Add("CategoryName", typeof(string)); dataSet.Tables.Add(dtCategory); foreach (Category category in Category.Load()) { DataRow row = dataSet.Tables["Category"].NewRow(); row["CategoryId"] = category.CategoryId; row["CategoryName"] = category.CategoryName; dataSet.Tables["Category"].Rows.Add(row); } // Type table DataTable dtType = new DataTable("Type"); dtType.Columns.Add("CategoryId", typeof(string)); dtType.Columns.Add("TypeId", typeof(string)); dtType.Columns.Add("TypeName", typeof(string)); dtType.Columns.Add("NoEncryption", typeof(bool)); dataSet.Tables.Add(dtType); foreach (Category category in Category.Load()) { foreach (Type type in Type.Load()) { if (category.CategoryId == type.CategoryId) { DataRow row = dataSet.Tables["Type"].NewRow(); row["CategoryId"] = type.CategoryId; row["TypeId"] = type.TypeId; row["TypeName"] = type.TypeName; row["NoEncryption"] = type.NoEncryption; dataSet.Tables["Type"].Rows.Add(row); } } } // Subscription table DataTable dtSubscription = new DataTable("Subscription"); dtSubscription.Columns.Add("TypeId", typeof(string)); dtSubscription.Columns.Add("ContactName", typeof(string)); dtSubscription.Columns.Add("Email", typeof(bool)); dtSubscription.Columns.Add("SMS", typeof(bool)); dtSubscription.Columns.Add("NotifyByEmail", typeof(bool)); dataSet.Tables.Add(dtSubscription); foreach (Type type in Type.Load()) { foreach (Subscription subscription in Subscription.Load()) { if (type.TypeId == subscription.TypeId) { DataRow row = dataSet.Tables["Subscription"].NewRow(); row["TypeId"] = subscription.TypeId; row["ContactName"] = subscription.ContactName; row["Email"] = subscription.Email; row["SMS"] = subscription.SMS; row["NotifyByEmail"] = subscription.NotifyByEmail; dataSet.Tables["Subscription"].Rows.Add(row); } } } // Table relations dataSet.Relations.Add(new DataRelation("Category-Type", dataSet.Tables["Category"].Columns["CategoryId"], dataSet.Tables["Type"].Columns["CategoryId"])); dataSet.Relations.Add(new DataRelation("Type-Subscription", dataSet.Tables["Type"].Columns["TypeId"], dataSet.Tables["Subscription"].Columns["TypeId"])); return dataSet; }}public class Category{ public string CategoryId { get; set; } public string CategoryName { get; set; } public Category(string categoryId = null, string categoryName = null) { CategoryId = categoryId; CategoryName = categoryName; } public static List<Category> Load() { List<Category> category = new List<Category>(); category.Add(new Category("NEM_STATEMENTS", "NEM Statements")); return category; }}public class Type{ public string CategoryId { get; set; } public string TypeId { get; set; } public string TypeName { get; set; } public bool NoEncryption { get; set; } public Type(string categoryId = null, string typeId = null, string typeName = null, bool noEncryption = false) { CategoryId = categoryId; TypeId = typeId; TypeName = typeName; NoEncryption = noEncryption; } public static List<Type> Load() { List<Type> type = new List<Type>(); type.Add(new Type("NEM_STATEMENTS", "NEM_STMT_PRELIM", "Preliminary")); type.Add(new Type("NEM_STATEMENTS", "NEM_STMT_FINAL", "Final")); type.Add(new Type("NEM_STATEMENTS", "NEM_STMT_REVISION", "Revision")); return type; }}public class Subscription{ public string TypeId { get; set; } public string ContactName { get; set; } public bool Email { get; set; } public bool SMS { get; set; } public bool NotifyByEmail { get; set; } public Subscription(string typeId = null, string contactName = null, bool email = false, bool sms = false, bool notifyByEmail = false) { TypeId = typeId; ContactName = contactName; Email = email; SMS = sms; NotifyByEmail = notifyByEmail; } public static List<Subscription> Load() { List<Subscription> subscription = new List<Subscription>(); subscription.Add(new Subscription("NEM_STMT_PRELIM", "Inger Wills")); subscription.Add(new Subscription("NEM_STMT_PRELIM", "Keith Armstrong")); subscription.Add(new Subscription("NEM_STMT_PRELIM", "Lance McMinn")); subscription.Add(new Subscription("NEM_STMT_FINAL", "Inger Wills")); subscription.Add(new Subscription("NEM_STMT_FINAL", "Keith Armstrong")); subscription.Add(new Subscription("NEM_STMT_FINAL", "Lance McMinn")); subscription.Add(new Subscription("NEM_STMT_REVISION", "Inger Wills")); subscription.Add(new Subscription("NEM_STMT_REVISION", "Keith Armstrong")); subscription.Add(new Subscription("NEM_STMT_REVISION", "Lance McMinn")); return subscription; }}