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;
}
}