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

Add record without closing the form

2 Answers 54 Views
Grid
This is a migrated thread and some comments may be shown as answers.
WCRA Dev
Top achievements
Rank 1
WCRA Dev asked on 16 Dec 2010, 03:31 PM
I want to insert a record without closing the add record form.  I'm trying to use the e.Canceled = True statement but when I go to try to access the controls in the GridTemplateColumn of the RadGrid control I get errors like "Object reference not set to an instance of an object.".  Below is the code I'm using.  Any help you can provide would be appreciated.

protected void gvGrossPayroll_ItemCommand(object sender, GridCommandEventArgs e)
{
    if (e.CommandName == RadGrid.PerformInsertCommandName || e.CommandName == RadGrid.CancelCommandName)
    {
        e.Canceled = true;
 
        GridEditableItem editedItem = (sender as RadNumericTextBox).NamingContainer as GridEditableItem;
        RadNumericTextBox txtTest1 = editedItem["txtPayrollAmount1a"].Controls[0] as RadNumericTextBox;
 
        Debug.WriteLine("Test:" + Convert.ToString(txtTest1.Text));
    }
}

Here is the RadGrid that I'm trying to access the controls of:

<telerik:RadGrid ID="gvGrossPayroll" runat="server"
    AllowAutomaticDeletes="True" AllowAutomaticUpdates="True" AllowAutomaticInserts="False"  OnInsertCommand="gvGrossPayroll_InsertCommand"
    AutoGenerateColumns="False" DataSourceID="SDS_Payroll" GridLines="None" OnItemCommand="gvGrossPayroll_ItemCommand"
    ShowFooter="True" Skin="Web20" Width="544px">
    <MasterTableView AutoGenerateColumns="False" CommandItemDisplay="TopAndBottom"
        DataKeyNames="ID" DataSourceID="SDS_Payroll">
        <RowIndicatorColumn>
            <HeaderStyle Width="20px" />
        </RowIndicatorColumn>
        <ExpandCollapseColumn>
            <HeaderStyle Width="20px" />
        </ExpandCollapseColumn>
        <CommandItemSettings />
        <Columns>
            <telerik:GridBoundColumn DataField="id" ReadOnly="True" UniqueName="ID"
                Visible="False">
            </telerik:GridBoundColumn>
            <telerik:GridTemplateColumn EditFormColumnIndex="0" HeaderText="Job Class Code" DataField="JobClass"
                UniqueName="JobClass" Visible="true" ReadOnly="False" HeaderStyle-VerticalAlign="Bottom">
                <ItemTemplate>
                    <asp:Label ID="JobClass" runat="server" Text='<%# Bind("JobClass") %>'></asp:Label>
                </ItemTemplate>
                <InsertItemTemplate>
                <telerik:RadComboBox ID="ddlJobClassID" Runat="server" AllowCustomText="True"
                    DataSourceID="SqlDataSourceDDL" DataTextField="JobClass"
                    DataValueField="JobClassID" EmptyMessage="Please enter a job class code"
                    EnableViewState="False"  AppendDataBoundItems="true"
                    ErrorMessage="You must enter a job class code to add a record"
                    MarkFirstMatch="True" ShowDropDownOnTextboxClick="False" Skin="Web20"
                    ToolTip="Enter a Job Class Code" Width="350px" SelectedValue='<%# Bind("JobClassID") %>'>
                </telerik:RadComboBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
                    ErrorMessage="Job Class Code is a required field" Font-Bold="True"
                    Font-Names="Arial Narrow" ForeColor="Red" ControlToValidate="ddlJobClassID"
                    ToolTip="Job Class Code is a required field">X
                </asp:RequiredFieldValidator>
                </InsertItemTemplate>
                <EditItemTemplate>
                    <asp:Label ID="JobClass" runat="server" Text='<%# Bind("JobClassID") %>'></asp:Label>
                </EditItemTemplate>                                                                         
                <HeaderStyle VerticalAlign="Bottom" />
            </telerik:GridTemplateColumn>
            <telerik:GridTemplateColumn EditFormColumnIndex="0" HeaderText="Year1"
                UniqueName="PayrollAmount1" Visible="true" Aggregate="Sum" DataField="PayrollAmount1"
                FooterAggregateFormatString="{0:C}" HeaderStyle-Width="60px">
                <ItemTemplate>
                    <asp:Label ID="PayrollAmount1" runat="server" Text='<%# Eval("PayrollAmount1", "{0:C}") %>'></asp:Label>
                </ItemTemplate>
                <InsertItemTemplate>
                    <telerik:RadNumericTextBox ID="txtPayrollAmount1a" Runat="server"
                        Culture="English (United States)" MinValue="0" NumberFormat-DecimalDigits="0"
                        Skin="Web20" TabIndex="2" ToolTip="Payroll Amount" Type="Currency"
                        Width="100px" Value="0" Text='<%# Bind("PayrollAmount1") %>' >
                        <EnabledStyle HorizontalAlign="Right" />
                        <NumberFormat DecimalDigits="0" />
                    </telerik:RadNumericTextBox>
                </InsertItemTemplate>
                                                                                                 
                <EditItemTemplate>
                    <telerik:RadNumericTextBox ID="txtPayrollAmount1" Runat="server"
                        Culture="English (United States)" MinValue="0" NumberFormat-DecimalDigits="0"
                        Skin="Web20" TabIndex="2" ToolTip="Payroll Amount" Type="Currency"
                        Text='<%# Bind("PayrollAmount1") %>' Width="100px">
                        <EnabledStyle HorizontalAlign="Right" />
                        <NumberFormat DecimalDigits="0" />
                    </telerik:RadNumericTextBox>
                </EditItemTemplate>
                <FooterStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
                    Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Right"
                    Wrap="True" />
                <HeaderStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
                    Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Center"
                    Wrap="True" />
                <ItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
                    Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Right"
                    Wrap="True" />
            </telerik:GridTemplateColumn>
            <telerik:GridTemplateColumn EditFormColumnIndex="0" HeaderText="Year2"
                UniqueName="PayrollAmount2" Visible="true" DataField="PayrollAmount2" Aggregate="Sum"
                FooterAggregateFormatString="{0:C}" HeaderStyle-Width="60px" >
                <ItemTemplate>
                    <asp:Label ID="PayrollAmount2" runat="server"
                        Text='<%# Eval("PayrollAmount2", "{0:C}") %>'></asp:Label>
                </ItemTemplate>
                <InsertItemTemplate>
                    <telerik:RadNumericTextBox ID="txtPayrollAmount2" Runat="server"
                        Culture="English (United States)" MinValue="0" NumberFormat-DecimalDigits="0"
                        Skin="Web20" TabIndex="2" ToolTip="Payroll Amount" Type="Currency" Value="0"
                        Width="100px" Text='<%# Bind("PayrollAmount2") %>'>
                        <EnabledStyle HorizontalAlign="Right" />
                        <NumberFormat DecimalDigits="0" />
                    </telerik:RadNumericTextBox>
                </InsertItemTemplate>
                <EditItemTemplate>
                    <telerik:RadNumericTextBox ID="txtPayrollAmount2" Runat="server"
                        Culture="English (United States)" MinValue="0" NumberFormat-DecimalDigits="0"
                        Skin="Web20" TabIndex="2" ToolTip="Payroll Amount" Type="Currency"
                        Width="100px" Text='<%# Bind("PayrollAmount2") %>'>
                        <EnabledStyle HorizontalAlign="Right" />
                        <NumberFormat DecimalDigits="0" />
                    </telerik:RadNumericTextBox>
                </EditItemTemplate>
                <FooterStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
                    Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Right"
                    Wrap="True" />
                <HeaderStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
                    Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Center"
                    Wrap="True" />
                <ItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
                    Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Right"
                    Wrap="True" />
            </telerik:GridTemplateColumn>
            <telerik:GridEditCommandColumn>
            </telerik:GridEditCommandColumn>
            <telerik:GridButtonColumn CommandName="Delete"
                ConfirmText="Delete this payroll record?" ImageUrl="/images/delete.gif"
                Text="Delete" UniqueName="column3">
            </telerik:GridButtonColumn>
                                                                                             
            <telerik:GridBoundColumn DataField="MemberID" DataType="System.Int16"
                UniqueName="MemberID" ReadOnly="True" Visible="False">
            </telerik:GridBoundColumn>
                                                                                             
        </Columns>
                                                                                         
        <EditFormSettings CaptionDataField="MemberID"
            CaptionFormatString="Edit Payroll Record" ColumnNumber="1"
            InsertCaption="Add Payroll Record">
            <FormTableItemStyle Wrap="False" />
            <FormCaptionStyle CssClass="EditFormHeader" />
            <FormMainTableStyle BackColor="White" CellPadding="3" CellSpacing="0"
                GridLines="None" Width="100%" />
            <FormTableStyle BackColor="White" CellPadding="2" CellSpacing="0"
                Height="110px" />
            <FormTableAlternatingItemStyle Wrap="False" />
            <EditColumn ButtonType="ImageButton" CancelText="Cancel edit"
                InsertText="Insert Record" UniqueName="EditCommandColumn1"
                UpdateText="Update record">
            </EditColumn>
            <FormTableButtonRowStyle CssClass="EditFormButtonRow" HorizontalAlign="Right" />
        </EditFormSettings>
    </MasterTableView>
    <ClientSettings AllowDragToGroup="True">
        <Selecting AllowRowSelect="True" />
    </ClientSettings>
    <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Web20"
        EnableImageSprites="True">
    </HeaderContextMenu>
</telerik:RadGrid>

2 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 17 Dec 2010, 05:47 AM
Hello Christian,

Try the following codes snippet in InsertCommand and use FindControl method to access the Control.

C#:
protected void gvGrossPayroll_InsertCommand(object sender, GridCommandEventArgs e)
    {
        e.Canceled = true;
        GridEditFormInsertItem insertItem = (GridEditFormInsertItem)e.Item;
        RadNumericTextBox txtTest1 = insertItem.FindControl("txtPayrollAmount1a") as RadNumericTextBox;
            . . . . . . .
    }

Thanks,
Princy.
0
WCRA Dev
Top achievements
Rank 1
answered on 30 Dec 2010, 10:05 PM
That worked, thanks for the help.
Tags
Grid
Asked by
WCRA Dev
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
WCRA Dev
Top achievements
Rank 1
Share this question
or