I want to set the control text but don't know how to get a hold of the control that is within a radgrid. Can someone help?
I have another thread related to this but it was mixed with insert form. I thought it'd be better to have a different thread for it.
Also,
I have another thread related to this but it was mixed with insert form. I thought it'd be better to have a different thread for it.
Also,
RadButton1_Click(
) is not even invoked if there is RequiredFieldValidator and the field value is empty. How can RequiredFieldValidator be disabled when the button is clicked so that it invokes RadButton1_Click(
) ?<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"ContentPlaceHolder1"
Runat
=
"Server"
>
<
div
>
<
telerik:RadButton
runat
=
"server"
ID
=
"RadButton1"
AutoPostBack
=
"true"
Text
=
"fill data"
ButtonType
=
"LinkButton"
onclick
=
"RadButton1_Click"
></
telerik:RadButton
>
</
div
>
<
telerik:RadAjaxPanel
runat
=
server
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"False"
ShowStatusBar
=
"True"
GridLines
=
"None"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
OnUpdateCommand
=
"RadGrid1_UpdateCommand"
OnInsertCommand
=
"RadGrid1_InsertCommand"
OnCreateColumnEditor
=
"RadGrid1_CreateColumnEditor"
OnPreRender
=
"RadGrid1_PreRender"
OnItemDataBound
=
"RadGrid1_ItemDataBound"
OnItemCreated
=
"RadGrid1_ItemCreated"
>
<
MasterTableView
DataKeyNames
=
"id"
CommandItemDisplay
=
"Top"
>
<
Columns
>
<
telerik:GridBoundColumn
HeaderText
=
"Emp"
DataField
=
"emp"
UniqueName
=
"emp"
>
protected void RadButton1_Click(object sender, EventArgs e)
{
//set the text of emp to something else. How to get a hold of the control in here?
}
7 Answers, 1 is accepted
0
Jayesh Goyani
Top achievements
Rank 2
answered on 19 Jul 2013, 10:21 AM
Hello,
Please try with the below code snippet.
Let me know if any concern.
Thanks,
Jayesh Goyani
Please try with the below code snippet.
<
telerik:RadButton
runat
=
"server"
ID
=
"RadButton1"
AutoPostBack
=
"true"
Text
=
"fill data"
ButtonType
=
"LinkButton"
OnClick
=
"RadButton1_Click"
CausesValidation
=
"false"
>
</
telerik:RadButton
>
Let me know if any concern.
Thanks,
Jayesh Goyani
0
Lisa
Top achievements
Rank 1
answered on 19 Jul 2013, 01:59 PM
Thank you for a solution to the second problem. Can you help with the first problem too?
I want to set the control text but don't know how to get a hold of the control that is within a radgrid inside RadButton1_Click() method.
I want to set the control text but don't know how to get a hold of the control that is within a radgrid inside RadButton1_Click() method.
0
Jayesh Goyani
Top achievements
Rank 2
answered on 22 Jul 2013, 05:47 AM
Hello,
Please try with the below code snippet.
Thanks,
Jayesh Goyani
Please try with the below code snippet.
<
telerik:RadButton
runat
=
"server"
ID
=
"RadButton1"
AutoPostBack
=
"true"
Text
=
"fill data in ALl row"
ButtonType
=
"LinkButton"
OnClick
=
"RadButton1_Click"
CausesValidation
=
"false"
>
</
telerik:RadButton
>
<
telerik:RadButton
runat
=
"server"
ID
=
"RadButton2"
AutoPostBack
=
"true"
Text
=
"fill data in particuler row"
ButtonType
=
"LinkButton"
CausesValidation
=
"false"
OnClick
=
"RadButton2_Click"
>
</
telerik:RadButton
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"false"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
>
<
MasterTableView
CommandItemDisplay
=
"Top"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ID"
HeaderText
=
"ID"
UniqueName
=
"ID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"emp"
HeaderText
=
"emp"
UniqueName
=
"emp"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
protected
void
RadGrid1_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
dynamic data =
new
[] {
new
{ ID = 1, emp =
"Name_1"
},
new
{ ID = 2, emp =
"Name_2"
},
new
{ ID = 3, emp =
"Name_3"
},
new
{ ID = 4, emp =
"Name_4"
},
new
{ ID = 5, emp =
"Name_5"
}
};
RadGrid1.DataSource = data;
}
protected
void
RadButton1_Click(
object
sender, EventArgs e)
{
foreach
(GridDataItem item
in
RadGrid1.MasterTableView.Items)
{
item[
"emp"
].Text =
"your text comes here"
;
}
}
protected
void
RadButton2_Click(
object
sender, EventArgs e)
{
foreach
(GridDataItem item
in
RadGrid1.MasterTableView.Items)
{
if
(item[
"ID"
].Text ==
"1"
) // ID is column uniquename
{
item[
"emp"
].Text =
"your text comes here"
+ DateTime.Now.ToString();
}
}
}
Thanks,
Jayesh Goyani
0
Lisa
Top achievements
Rank 1
answered on 22 Jul 2013, 04:07 PM
It is my mistake that I did not post the RadTextBox correctly. It is not GridBoundColumn, and not inside <Columns>.
The RadTextBox is inside <MasterTableView>'s <FormTemplate>.
<FormTemplate>
<telerik:RadTextBox id="emp" runat="server" Text='<%# Bind("emp") %>' />
So, how can I access the "emp" RadTextBox inside the FormTemplate?
0
Jayesh Goyani
Top achievements
Rank 2
answered on 23 Jul 2013, 06:22 AM
Hello,
Thanks,
Jayesh Goyani
<
telerik:RadButton
runat
=
"server"
ID
=
"RadButton1"
AutoPostBack
=
"true"
Text
=
"fill data in ALl row"
ButtonType
=
"LinkButton"
OnClick
=
"RadButton1_Click"
CausesValidation
=
"false"
>
</
telerik:RadButton
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"false"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
>
<
MasterTableView
CommandItemDisplay
=
"Top"
DataKeyNames
=
"ID"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ID"
HeaderText
=
"ID"
UniqueName
=
"ID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"emp"
HeaderText
=
"emp"
UniqueName
=
"emp"
>
</
telerik:GridBoundColumn
>
<
telerik:GridEditCommandColumn
>
</
telerik:GridEditCommandColumn
>
</
Columns
>
<
EditFormSettings
EditFormType
=
"Template"
>
<
FormTemplate
>
<
telerik:RadTextBox
ID
=
"txtemp"
runat
=
"server"
Text='<%# Bind("emp") %>' />
</
FormTemplate
>
</
EditFormSettings
>
</
MasterTableView
>
</
telerik:RadGrid
>
protected
void
RadGrid1_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
dynamic data =
new
[] {
new
{ ID = 1, emp =
"Name_1"
},
new
{ ID = 2, emp =
"Name_2"
},
new
{ ID = 3, emp =
"Name_3"
},
new
{ ID = 4, emp =
"Name_4"
},
new
{ ID = 5, emp =
"Name_5"
}
};
RadGrid1.DataSource = data;
}
protected
void
RadButton1_Click(
object
sender, EventArgs e)
{
foreach
(GridDataItem item
in
RadGrid1.EditItems)
{
(item.EditFormItem.FindControl(
"txtemp"
)
as
RadTextBox).Text =
"your text comes here"
;
}
}
Thanks,
Jayesh Goyani
0
Lisa
Top achievements
Rank 1
answered on 23 Jul 2013, 03:44 PM
It can find the control now. But because IsItemInserted was set to true, it displays 2 items: 2 "emp" text boxes, one with old text and the other with new text. I do not want it to display 2 items. I just want it to display only one item and replace the old text with the new text for that one item. How can that be done?
I also tried the following and it also displayed 2 items:
GridEditableItem i = (GridEditableItem)RadGrid1.MasterTableView.GetInsertItem();
RadTextBox r = (RadTextBox)i.FindControl("emp");
r.Text = "Johnny";
I think with regular grid it is so simple, but with ragrid it is a different story.
I also tried the following and it also displayed 2 items:
GridEditableItem i = (GridEditableItem)RadGrid1.MasterTableView.GetInsertItem();
RadTextBox r = (RadTextBox)i.FindControl("emp");
r.Text = "Johnny";
I think with regular grid it is so simple, but with ragrid it is a different story.
protected void page_load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (data1.Tables[0].Rows.Count < 1)
{
RadGrid1.MasterTableView.IsItemInserted = true;
RadGrid1.Rebind();
}
else
RadGrid1.MasterTableView.IsItemInserted = false;
}
}
0
Jayesh Goyani
Top achievements
Rank 2
answered on 24 Jul 2013, 06:20 AM
Hello,
Can you please provide your mark up/aspx page code?
Thanks,
Jayesh Goyani
Can you please provide your mark up/aspx page code?
Thanks,
Jayesh Goyani