This is a migrated thread and some comments may be shown as answers.

Accessing new value from Textbox in ItemTemplate/EditItemTemplate in RadGrid

5 Answers 1005 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Hari krishna
Top achievements
Rank 1
Hari krishna asked on 27 Nov 2012, 01:20 PM

<telerik:GridTemplateColumn HeaderText="Amount" UniqueName="Amount" SortExpression="Amount" Aggregate="Custom" DataField="Amount">  

<ItemTemplate>
 <asp:TextBox runat="server" ID="txtAmount" Text='<%# Eval("Amount") %>

 DataFormatString="{0:C}" ></asp:TextBox

</ItemTemplate
 </telerik:GridTemplateColumn>

 

In the above code, initially, I used only ItemTemplate and added Textbox in it and tried to get the value entered by user in the ItemCommand event. But I couldn't get the new value from Textbox. It is giving the old value

I had used below code in the Itemcommand event to get the new value, but, didn't get the new value.

protected void grdPaymentHistory_OnItemCommand(object sender, GridCommandEventArgs e)

     var dataItem = e.Item as GridDataItem;

         var refundAmount = (TextBox)dataItem["Amount"].Controls[1];  

}

 

Later on, I thought that edited values may not be available in ItemTemplate. So, I used editItemTemplate which is containing textbox and validator.Now, when user clicks on edit button (GridEditcommandcolumn), textbox is avialable for entering the amount. I am trying to get the value entered by user in the textbox in the edititemtemplate. I am trying to get the value in ItemCommand event. Below is the Itemcommand event.

Here, I am getting the old value i.e the value which was there initially before the user edited.
 

<telerik:GridTemplateColumn HeaderText="Amount" UniqueName="Amount" SortExpression="Amount" Aggregate="Custom" DataField="Amount"> 

<ItemTemplate>  

<asp:Label runat="server" ID="lblAmount" Text='<%# Eval("Amount") %>'DataFormatString="{0:C}"></asp:Label>

 </ItemTemplate>

 <EditItemTemplate> 

<asp:TextBox runat="server" ID="txtAmount" Text='<%# Eval("Amount") %>

 DataFormatString="{0:C}" ></asp:TextBox>  

 

<asp:CustomValidator ID="RefundamountValidator" runat="server" ControlToValidate="txtAmount" 

OnServerValidate="RefundAmountValidation" ValidateEmptyText="True"  

ErrorMessage="Reassign To cannot be the same as Assigned To" SetFocusOnError="true" 

Text="*" Display="Dynamic" />  

 

</EditItemTemplate>

</telerik:GridTemplateColumn>

 

 

protected void grdPaymentHistory_OnItemCommand(object sender, GridCommandEventArgs e)

    foreach (GridDataItem item in grdPaymentHistory.EditItems)

        { 

        var TextBox1 = item.FindControl("txtAmount") as TextBox

        }
}


Please provide your valuable inputs to get the new value in both ItemTemplate and EditItemTemplate.
Thanks

5 Answers, 1 is accepted

Sort by
0
Jayesh Goyani
Top achievements
Rank 2
answered on 27 Nov 2012, 03:26 PM
Hello,

//foreach (GridEditFormInsertItem item in RadGrid1.EditItems) // EditMode="Forms"
           foreach (GridEditableItem item in RadGrid1.EditItems)
           {
               TextBox txtAmount = item.FindControl("txtAmount") as TextBox;
           }


Thanks.
Jayesh Goyani
0
Jitendra
Top achievements
Rank 1
answered on 27 Nov 2012, 03:35 PM
Hi Jayesh,
               Thanks for the solution!! Acutally, on behalf of me, Hari had posted the above problem. Now, myself giving the reply.
                I had tried this as well, didn't work.

    GridEditableItem theItem = e.Item as GridEditableItem

    var amount = (TextBox)theItem.FindControl("txtAmount");
    
    I am not getting why it's not working.

    

 

0
Jayesh Goyani
Top achievements
Rank 2
answered on 27 Nov 2012, 03:43 PM
Hello,

<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource">
       <MasterTableView EditMode="InPlace">
           <Columns>
                
               <telerik:GridEditCommandColumn>
               </telerik:GridEditCommandColumn>
               <telerik:GridTemplateColumn>
                   <ItemTemplate>
                       <asp:Label runat="server" ID="lblAmount"></asp:Label>
                   </ItemTemplate>
                   <EditItemTemplate>
                       <asp:TextBox runat="server" ID="txtAmount"></asp:TextBox>
                   </EditItemTemplate>
               </telerik:GridTemplateColumn>
           </Columns>
       </MasterTableView>
   </telerik:RadGrid>

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

protected void Button1_Click(object sender, EventArgs e)
       {  
           //foreach (GridEditFormInsertItem item in RadGrid1.EditItems) // EditMode="EForms"
           foreach (GridEditableItem item in RadGrid1.EditItems)
           {
               TextBox txtAmount = item.FindControl("txtAmount") as TextBox;
           }
       }
 
 
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
       {
           dynamic data = new[] {
             new { ID = 1, Name ="aaa"},
             new { ID = 2, Name = "bbb"},
             new { ID = 3, Name = "ccc"},
             new { ID = 4, Name = "ddd"},
             new { ID = 5, Name ="eee"},
             new { ID = 6, Name ="aaa"},
             new { ID = 7, Name = "bbb"},
             new { ID = 8, Name = "ccc"},
             new { ID = 9, Name = "ddd"},
             new { ID = 10, Name ="eee"}
           };
           RadGrid1.DataSource = data;
       }

Let me know if any concern.

Thanks,
Jayesh Goyani
0
Agm
Top achievements
Rank 1
answered on 17 May 2013, 04:49 PM
Hi Jayesh,
I am having a grid with a Template column.
checkbox is inside that Template column.
I want to access this Checkbox and get the checked value.

var MasterTable = grid.get_masterTableView();
var row = MasterTable.get_dataItems()[eventArgs.get_itemIndexHierarchical()];

How to get the value of Checkbox from this row.

Help me to solve this.

Thanks in advance.

--------------------
AGMRAJA
0
Jayesh Goyani
Top achievements
Rank 2
answered on 18 May 2013, 06:06 AM
Tags
Grid
Asked by
Hari krishna
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Jitendra
Top achievements
Rank 1
Agm
Top achievements
Rank 1
Share this question
or