
Windhoek2010
Top achievements
Rank 1
Windhoek2010
asked on 01 Aug 2014, 01:21 PM
Hello,
I have a field in my RadGrid where I want to be able to select multiple items. For example, field "Colors" will allow users to choose Red, Blue, Green, Yellow and/or Orange. Multiple selections allowed. How can this be implemented within RadGrid? I am aware of GridCheckBoxColumn but that only provides a single checkbox.
I'm open to using other selection controls, like combobox.
Thank you.
I have a field in my RadGrid where I want to be able to select multiple items. For example, field "Colors" will allow users to choose Red, Blue, Green, Yellow and/or Orange. Multiple selections allowed. How can this be implemented within RadGrid? I am aware of GridCheckBoxColumn but that only provides a single checkbox.
I'm open to using other selection controls, like combobox.
Thank you.
10 Answers, 1 is accepted
0
Hello Windhoek2010,
Could you please refer to the answer in the ticket you have opened for the same requirement (Ticket ID: 845615).
If you have any further questions I suggest that we continue our communication in the ticket.
Regards,
Konstantin Dikov
Telerik
Could you please refer to the answer in the ticket you have opened for the same requirement (Ticket ID: 845615).
If you have any further questions I suggest that we continue our communication in the ticket.
Regards,
Konstantin Dikov
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.
0
Hello Windhoek2010,
You can use the EditItemTemplate of GridTemplateColumn provided by RadGrid to implement any custom editing functionality:
http://www.telerik.com/help/aspnet-ajax/grid-column-types.html#template
Or an entire new FormTemplate:
http://demos.telerik.com/aspnet-ajax/grid/examples/data-editing/form-template-update/defaultcs.aspx
Hope this helps. If you have different requirements or further instructions, please elaborate on your exact configuration and send us sample screenshots or video demonstrating the desired behavior. Thus, we will be able to figure out your specific scenario and suggest an accurate and more-to-point approach.
Regards,
Eyup
Telerik
You can use the EditItemTemplate of GridTemplateColumn provided by RadGrid to implement any custom editing functionality:
http://www.telerik.com/help/aspnet-ajax/grid-column-types.html#template
Or an entire new FormTemplate:
http://demos.telerik.com/aspnet-ajax/grid/examples/data-editing/form-template-update/defaultcs.aspx
Hope this helps. If you have different requirements or further instructions, please elaborate on your exact configuration and send us sample screenshots or video demonstrating the desired behavior. Thus, we will be able to figure out your specific scenario and suggest an accurate and more-to-point approach.
Regards,
Eyup
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.
0

Princy
Top achievements
Rank 2
answered on 06 Aug 2014, 11:33 AM
Hi Windhoek2010,
I guess you want to have multiple selection for a column value in Edit mode. You can use the GridTemplateColumn to achieve this scenario. Please take a look at the following code snippet. Elaborate on your requirement if this doesn't help.
ASPX:
Thanks,
Princy
I guess you want to have multiple selection for a column value in Edit mode. You can use the GridTemplateColumn to achieve this scenario. Please take a look at the following code snippet. Elaborate on your requirement if this doesn't help.
ASPX:
<
telerik:GridTemplateColumn
HeaderText
=
"Colors"
>
<
ItemTemplate
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:CheckBoxList
ID
=
"CheckBoxList1"
runat
=
"server"
>
<
asp:ListItem
Text
=
"Red"
></
asp:ListItem
>
<
asp:ListItem
Text
=
"Green"
></
asp:ListItem
>
<
asp:ListItem
Text
=
"Blue"
></
asp:ListItem
>
<
asp:ListItem
Text
=
"Yellow"
></
asp:ListItem
>
</
asp:CheckBoxList
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
Thanks,
Princy
0

Windhoek2010
Top achievements
Rank 1
answered on 12 Aug 2014, 02:53 AM
Thanks Eyup and Princy.
Princy, yes this is what I'm trying to achieve. I've placed a CheckBoxList within my RadGrid the way you showed me. However, the checkbox data is not getting updated in the table. Could you share a more comprehensive example of how CheckBoxList is used within RadGrid?
What should be the data type for the checkbox field in the table? Will it be saved as multiple, comma-separated values?
In my code below, I'm assuming the field to store the checkbox values ("Colors") is data type nvarchar(200).
Princy, yes this is what I'm trying to achieve. I've placed a CheckBoxList within my RadGrid the way you showed me. However, the checkbox data is not getting updated in the table. Could you share a more comprehensive example of how CheckBoxList is used within RadGrid?
What should be the data type for the checkbox field in the table? Will it be saved as multiple, comma-separated values?
In my code below, I'm assuming the field to store the checkbox values ("Colors") is data type nvarchar(200).
<
telerik:GridTemplateColumn
DataField
=
"Colors"
DataType
=
"System.String"
HeaderText
=
"Choose Colors"
>
<
ItemTemplate
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:CheckBoxList
ID
=
"Colors"
DataSourceID
=
"SqlDataSource6"
DataValueField
=
"ColorID"
DataTextField
=
"ColorCode"
runat
=
"server"
>
</
asp:CheckBoxList
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
0

Princy
Top achievements
Rank 2
answered on 12 Aug 2014, 05:13 AM
Hi Windhoek2010,
Please check the below sample code, I have set the datatype as nvarchar(MAX), and depends on how you want to save it to db, you can use comma separated values.
C#:
Thanks,
Princy
Please check the below sample code, I have set the datatype as nvarchar(MAX), and depends on how you want to save it to db, you can use comma separated values.
C#:
protected
void
RadGrid1_UpdateCommand(
object
sender, GridCommandEventArgs e)
{
string
values =
string
.Empty;
string
selectedvalue;
if
(e.Item
is
GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem editItem = (GridEditableItem)e.Item;
CheckBoxList chk = (CheckBoxList)editItem.FindControl(
"Colors"
);
for
(
int
i = 0; i < chk.Items.Count; i++)
{
if
(chk.Items[i].Selected)
{
//Storing the selected values
values = values +
","
+ chk.Items[i].Text.ToString();
}
}
selectedvalue = values.Trim(
','
);
//update selectedvalue to db.
}
}
Thanks,
Princy
0

Windhoek2010
Top achievements
Rank 1
answered on 12 Aug 2014, 06:53 AM
Hi Princy,
Thanks again. Please excuse my ignorance but could you also share what is the code to "updated selectedvalue to db"?
Thanks again. Please excuse my ignorance but could you also share what is the code to "updated selectedvalue to db"?
0

Princy
Top achievements
Rank 2
answered on 13 Aug 2014, 04:00 AM
Hi Windhoek2010,
Please take a look at the sample code snippet in which I update the db with selected values from CheckBoxList.
C#:
Thanks,
Princy
Please take a look at the sample code snippet in which I update the db with selected values from CheckBoxList.
C#:
public
static
string
connection = WebConfigurationManager.ConnectionStrings[
"ConnectionString"
].ConnectionString;
SqlConnection conn =
new
SqlConnection(connection);
protected
void
rgrdSample_UpdateCommand(
object
sender, GridCommandEventArgs e)
{
string
values =
string
.Empty;
string
selectedvalue;
if
(e.Item
is
GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem editItem = (GridEditableItem)e.Item;
string
OrderID = editItem.GetDataKeyValue(
"OrderID"
).ToString();
CheckBoxList chk = (CheckBoxList)editItem.FindControl(
"chklistCountry"
);
for
(
int
i = 0; i < chk.Items.Count; i++)
{
if
(chk.Items[i].Selected)
{
values = values +
","
+ chk.Items[i].Text.ToString();
}
}
selectedvalue = values.Trim(
','
);
conn.Open();
string
query =
"UPDATE Orders SET ShipCountry='"
+ selectedvalue +
"' WHERE OrderID = '"
+ OrderID +
"'"
;
SqlCommand cmd =
new
SqlCommand(query, conn);
cmd.ExecuteNonQuery();
conn.Close();
}
}
Thanks,
Princy
0

Windhoek2010
Top achievements
Rank 1
answered on 13 Aug 2014, 05:25 AM
Thanks Princy. I am now able to update the nvarchar field with the checkbox values comma-separated.
Can you show me how to populate the checkboxes with these values when I am doing an edit? Do I modify the ItemDataBound method?
I've done this:
How do I retrieve the field that contains the comma-separated list of Colors?
Thanks.
Can you show me how to populate the checkboxes with these values when I am doing an edit? Do I modify the ItemDataBound method?
I've done this:
01.
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
02.
{
03.
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
04.
{
05.
GridEditableItem editItem = (GridEditableItem)e.Item;
06.
CheckBoxList cb = (CheckBoxList)editItem.FindControl("Colors");
07.
//Split the Funding field (comma-separated) into an array
08.
//How do I find the field?
09.
10.
for (int i = 0; i < cb.Items.Count; i++)
11.
{
12.
if (cb.Items[i].ToString() == [ARRAY Field])
13.
{
14.
cb.Items[i].Selected = true;
15.
}
16.
}
17.
}
18.
}
How do I retrieve the field that contains the comma-separated list of Colors?
Thanks.
0

Princy
Top achievements
Rank 2
answered on 14 Aug 2014, 05:04 AM
Hi Windhoek2010,
Please try the following code snippet to set the items in checkbox list selected to the corresponding row values.
C#:
Thanks,
Princy
Please try the following code snippet to set the items in checkbox list selected to the corresponding row values.
C#:
protected
void
rgrdSample_ItemDataBound(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem editItem = (GridEditableItem)e.Item;
CheckBoxList Colors = (CheckBoxList)editItem.FindControl(
"Colors"
);
string
value = ((DataRowView)e.Item.DataItem)[
"Colors"
].ToString();
string
[] selectedColors= value.Split(
','
);
for
(
int
j = 0; j < Colors.Items.Count; j++)
{
for
(
int
i = 0; i < selectedColors.Length; i++)
{
if
(Colors.Items[j].Text == selectedColors[i])
{
Colors.Items[j].Selected =
true
;
}
}
}
}
}
Thanks,
Princy
0

Windhoek2010
Top achievements
Rank 1
answered on 29 Aug 2014, 01:02 PM
Hi Princy,
Thanks very much. It works now.
Thanks very much. It works now.