I have a radgrid with advanced databinding. it has a template column with combobox on edit mode as follows.
<telerik:GridTemplateColumn HeaderText="MemberType" EditFormColumnIndex="0" UniqueName="MemberType" SortExpression="MemberType">
<ItemTemplate>
<asp:Label ID="lblMemberType" runat="server" Text='<%# Eval("MemberType") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadComboBox runat="server" ID="cmbMemberTypes" DataTextField="Description" DataValueField="MemberTypeId"
AppendDataBoundItems="true" MarkFirstMatch="true" OnSelectedIndexChanged="cmbMemberTypes_SelectedIndexChanged" >
<Items>
<telerik:RadComboBoxItem Text="" Value="" />
</Items>
</telerik:RadComboBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
Now, depending on the item selected in the Member Type combobox, i want to change the text of the column 'MemberIdentifier' on Edit mode. I dont need to change Header Text. I just need to change the auto-generated label of this column in edit mode based on Member Type Selected Item.
<telerik:GridBoundColumn DataField="MemberIdentifier" HeaderText="MemberIdentifier" UniqueName="MemberIdentifier"
SortExpression="MemberIdentifier" FilterControlAltText="Filter Member Identifier Column" EditFormColumnIndex="1"/>
Thanks for the help in advance!!
Sri
<telerik:GridTemplateColumn HeaderText="MemberType" EditFormColumnIndex="0" UniqueName="MemberType" SortExpression="MemberType">
<ItemTemplate>
<asp:Label ID="lblMemberType" runat="server" Text='<%# Eval("MemberType") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadComboBox runat="server" ID="cmbMemberTypes" DataTextField="Description" DataValueField="MemberTypeId"
AppendDataBoundItems="true" MarkFirstMatch="true" OnSelectedIndexChanged="cmbMemberTypes_SelectedIndexChanged" >
<Items>
<telerik:RadComboBoxItem Text="" Value="" />
</Items>
</telerik:RadComboBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
Now, depending on the item selected in the Member Type combobox, i want to change the text of the column 'MemberIdentifier' on Edit mode. I dont need to change Header Text. I just need to change the auto-generated label of this column in edit mode based on Member Type Selected Item.
<telerik:GridBoundColumn DataField="MemberIdentifier" HeaderText="MemberIdentifier" UniqueName="MemberIdentifier"
SortExpression="MemberIdentifier" FilterControlAltText="Filter Member Identifier Column" EditFormColumnIndex="1"/>
Thanks for the help in advance!!
Sri
10 Answers, 1 is accepted
0
Jayesh Goyani
Top achievements
Rank 2
answered on 20 Feb 2013, 06:30 PM
Hello,
Thanks,
Jayesh Goyani
protected
void
cmbMemberTypes_SelectedIndexChanged(
object
sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
((sender
as
RadComboBox).Parent.Parent.Controls[0]
as
TableCell).Text = ((sender
as
RadComboBox).Parent.Parent.Controls[0]
as
TableCell).Text.Replace(
"MemberType:"
,
"yourtext"
);
}
Thanks,
Jayesh Goyani
0
Sravanthi
Top achievements
Rank 1
answered on 20 Feb 2013, 06:47 PM
Thanks Jayesh! But, it is changing the name of the Column on the Grid. I want the name of the label that it produces in Edit mode like here in the Image.
0
Shinu
Top achievements
Rank 2
answered on 21 Feb 2013, 04:59 AM
Hi,
Try the following code to achieve your scenario.
C#:
Thanks,
Shinu
Try the following code to achieve your scenario.
C#:
protected
void
RadComboBox1_SelectedIndexChanged(
object
sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
RadGrid1.MasterTableView.GetColumn(
"OrderID"
).EditFormHeaderTextFormat =
"your text"
;
RadGrid1.Rebind();
}
Thanks,
Shinu
0
Jayesh Goyani
Top achievements
Rank 2
answered on 21 Feb 2013, 05:24 AM
Hello,
Please try with below code snippet.
Note : You can see that in screenshot no 3 and 4 only in edit label Membertype changed with Yourtext.
1.
2.
3.
4.
Thanks,
Jayesh Goyani
Please try with below code snippet.
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"False"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
AllowPaging
=
"true"
AllowFilteringByColumn
=
"true"
ShowFooter
=
"true"
AllowMultiRowSelection
=
"true"
AllowMultiRowEdit
=
"true"
PageSize
=
"10"
>
<
MasterTableView
CommandItemDisplay
=
"Top"
EditMode
=
"EditForms"
Name
=
"Parent"
DataKeyNames
=
"ID"
ClientDataKeyNames
=
"ID"
>
<
CommandItemSettings
ShowExportToExcelButton
=
"true"
ShowExportToPdfButton
=
"true"
/>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ID"
UniqueName
=
"ID"
HeaderText
=
"ID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Name"
UniqueName
=
"Name"
HeaderText
=
"Name"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"MemberType"
UniqueName
=
"MemberType"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblMemberType"
runat
=
"server"
Text='<%# Eval("Name") %>'></
asp:Label
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadComboBox
runat
=
"server"
ID
=
"cmbMemberTypes"
OnSelectedIndexChanged
=
"cmbMemberTypes_SelectedIndexChanged"
AutoPostBack
=
"true"
>
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"11"
Value
=
"11"
/>
<
telerik:RadComboBoxItem
Text
=
"12"
Value
=
"12"
/>
</
Items
>
</
telerik:RadComboBox
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridEditCommandColumn
>
</
telerik:GridEditCommandColumn
>
</
Columns
>
</
MasterTableView
>
<
PagerStyle
AlwaysVisible
=
"True"
/>
</
telerik:RadGrid
>
protected
void
cmbMemberTypes_SelectedIndexChanged(
object
sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
TableCell cell = (sender
as
RadComboBox).Parent.Parent.Controls[0]
as
TableCell;
cell.Text = cell.Text.Substring(0, cell.Text.IndexOf(
">"
) + 1) +
"Your Text:"
+DateTime.Now.ToString() +
"</label>"
;
}
protected
void
RadGrid1_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
dynamic data =
new
[] {
new
{ ID = 1, Name =
"Name1"
,path=
"1.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(1)},
new
{ ID = 2, Name =
"Name2"
,path=
"2.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(2)},
new
{ ID = 3, Name =
"Name3"
,path=
"3.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(3)},
new
{ ID = 4, Name =
"Name4"
,path=
"2.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(4)},
new
{ ID = 5, Name =
"Name5"
,path=
"3.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(5)},
new
{ ID = 6, Name =
"Name1"
,path=
"1.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(6)},
new
{ ID = 7, Name =
"Name2"
,path=
"2.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(7)},
new
{ ID = 8, Name =
"Name3"
,path=
"3.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(8)},
new
{ ID = 9, Name =
"Name4"
,path=
"2.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(9)},
new
{ ID = 10, Name =
"Name5"
,path=
"3.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(10)},
new
{ ID = 11, Name =
"Name1"
,path=
"1.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(11)},
new
{ ID = 12, Name =
"Name2"
,path=
"2.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(12)},
new
{ ID = 13, Name =
"Name3"
,path=
"3.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(13)},
new
{ ID = 14, Name =
"Name4"
,path=
"2.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(14)},
new
{ ID = 15, Name =
"Name5"
,path=
"3.jpg"
,Customedate=DateTime.Now,ReceivedDate=DateTime.Now.AddDays(150)}
};
RadGrid1.DataSource = data;
}
Note : You can see that in screenshot no 3 and 4 only in edit label Membertype changed with Yourtext.
1.
2.
3.
4.
Thanks,
Jayesh Goyani
0
Sravanthi
Top achievements
Rank 1
answered on 21 Feb 2013, 04:04 PM
Sorry for the Confusion Jayesh. It is changing the text of drop down member type. But, i am trying to change the label of another column 'member identifier' based on 'member type' selection.
Thanks so much for the help!!
Sri
Thanks so much for the help!!
Sri
0
Sravanthi
Top achievements
Rank 1
answered on 21 Feb 2013, 04:22 PM
Shinu, your answer is modifying the label. But, when it does the rebind, it is losing the combobox selected item.
Thanks for the reply!!
Sri
Thanks for the reply!!
Sri
0
Accepted
Jayesh Goyani
Top achievements
Rank 2
answered on 21 Feb 2013, 05:41 PM
Hello,
Thanks,
Jayesh Goyani
protected
void
cmbMemberTypes_SelectedIndexChanged(
object
sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
TableCell cell = (sender
as
RadComboBox).Parent.Parent.Controls[0]
as
TableCell;
cell.Text = cell.Text.Substring(0, cell.Text.IndexOf(
">"
) + 1) +
"Your Text:"
+ DateTime.Now.ToString() +
"</label>"
;
// By using below code i am able to access "Name" column Title
TableCell cellNAme = ((((sender
as
RadComboBox).NamingContainer
as
GridEditableItem)[
"Name"
].Controls[0]
as
TextBox).Parent.Parent.Controls[0]
as
TableCell);
cellNAme.Text = cellNAme.Text.Substring(0, cellNAme.Text.IndexOf(
">"
) + 1) +
"Your Text:"
+ DateTime.Now.ToString() +
"</label>"
;
}
Thanks,
Jayesh Goyani
0
Sravanthi
Top achievements
Rank 1
answered on 21 Feb 2013, 05:51 PM
Thanks Jayesh!! That worked!!
0
Qing
Top achievements
Rank 1
answered on 30 Oct 2019, 10:08 AM
As for me I would like to change the text of HeaderText="MemberType" dynamically for Insert Mode and Edit Mode. How can I do ? Please kindly help me. Thanks a lot.
0
Hi Qing,
Check out the Distinguish Edit or Insert Mode article for an example to understand which edit mode is used then use this approach to implement the required behavior.
Kind regards,
Attila Antal
Progress Telerik
Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers. Learn More.