add new records gives me error Item in insert mode does implement indexer only when the edit form is autogenerated

0 Answers 13 Views
Grid
subhasish
Top achievements
Rank 1
subhasish asked on 03 Sep 2021, 09:19 AM

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs"  MasterPageFile="~/MasterPageSingleMenu.Master" Inherits="TelerikWebApp.Test" %>

<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="Server">
        <link href="styles/grid.css" rel="stylesheet" />
     <style>
         .RadGrid_Bootstrap .rgRow>td, .RadGrid_Bootstrap .rgAltRow>td, .RadGrid_Bootstrap .rgEditRow>td, .RadGrid_Bootstrap .rgFooter>td, .RadGrid_Bootstrap .rgFilterRow>td, .RadGrid_Bootstrap .rgHeader, .RadGrid_Bootstrap .rgResizeCol, .RadGrid_Bootstrap .rgGroupHeader td {
    padding-left: 5px!important;

     </style>
<asp:Label ID="comboLbl" runat="server" Text="Select  to view its Student Details." />


    <telerik:RadComboBox RenderMode="Lightweight" HighlightTemplatedItems="True" Skin="Material" ID="RadComboBox1" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource1"
    DataTextField="ClassroomName" DataValueField="DDLDetailsId" Width="950px"  DropDownCssClass="exampleRadComboBox" Height="150px"
    AppendDataBoundItems="true">
               <DefaultItem Text="Please select " Value="-1"/>

     <HeaderTemplate>

                <ul>
                    <li class="col1">ClassroomName</li>
                    <li class="col2">GradeName</li>
                    <li class="col3">SectionName</li>
                     <li class="col4">TeacherFirstName</li>
                    <li class="col5">TeacherLastName</li>
                </ul>
            </HeaderTemplate>
            <ItemTemplate>
                <ul>
                    <li class="col1">
                        <%# DataBinder.Eval(Container.DataItem, "ClassroomName") %></li>
                    <li class="col2">
                        <%# DataBinder.Eval(Container.DataItem, "GradeName") %></li>
                    <li class="col3">
                        <%# DataBinder.Eval(Container.DataItem, "SectionName") %></li>
                      <li class="col4">
                        <%# DataBinder.Eval(Container.DataItem, "TeacherFirstName") %></li>
                     <li class="col5">
                        <%# DataBinder.Eval(Container.DataItem, "TeacherLastName") %></li>
                </ul>
            </ItemTemplate>
</telerik:RadComboBox>
    <br />
    <br />
<telerik:RadGrid RenderMode="Lightweight" ID="OrdersGrid" AllowPaging="true" DataSourceID="gridSource" runat="server"
OnItemCommand="OrdersGrid_ItemCommand"       GridLines="None" Width="100%" AllowSorting="true"  OnItemDataBound="OrdersGrid_ItemDataBound">
  <MasterTableView CommandItemDisplay="Top" AutoGenerateColumns="False" ShowFooter = "true" 
                AllowFilteringByColumn="true" TableLayout="Fixed" AllowPaging="True"
                DataKeyNames="StudentId" 
                InsertItemPageIndexAction="ShowItemOnFirstPage ">

       <FooterStyle BackColor="#e6e6e6"></FooterStyle>

                <Columns>

                    <telerik:GridBoundColumn DataField="StudentId" HeaderText="StudentId" SortExpression="Name" Display="false"
                        UniqueName="StudentId" >
                        <HeaderStyle />
                    </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn DataField="DDLDetailsId" HeaderText="DDLDetailsId" SortExpression="DDLDetailsId" Display="false"
                        UniqueName="DDLDetailsId" >
                        <HeaderStyle />
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="StudentFirstName" HeaderText="StudentFirstName" SortExpression="StudentFirstName"
                        UniqueName="StudentFirstName">
                        <HeaderStyle Width="120px" />
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="StudentLastName" HeaderText="StudentLastName" SortExpression="StudentLastName"
                        UniqueName="StudentLastName">
                        <HeaderStyle Width="120px" />
                    </telerik:GridBoundColumn>
                     <telerik:GridBoundColumn DataField="StudentDob" HeaderText="StudentDob" SortExpression="StudentLastName"
                        UniqueName="StudentDob">
                        <HeaderStyle Width="120px" />
                    </telerik:GridBoundColumn>
                     <telerik:GridBoundColumn DataField="ParentName" HeaderText="ParentName" SortExpression="ParentName"
                        UniqueName="ParentName">
                        <HeaderStyle Width="120px" />
                    </telerik:GridBoundColumn>
                       <telerik:GridBoundColumn DataField="StudentGender" HeaderText="Gender" SortExpression="StudentGender"
                        UniqueName="StudentGender">
                        <HeaderStyle Width="120px" />
                    </telerik:GridBoundColumn>

         <telerik:GridBoundColumn DataField="StudentCity" HeaderText="City" SortExpression="StudentCity"
                        UniqueName="StudentCity">
                        <HeaderStyle Width="120px" />
                    </telerik:GridBoundColumn>


                                 <telerik:GridBoundColumn DataField="StudentFee"  HeaderText="Fee" SortExpression="StudentCity"
                  DataType="System.Decimal" Aggregate="Sum" UniqueName="StudentFee">
                        <HeaderStyle Width="120px" />
                    </telerik:GridBoundColumn>


                </Columns>
       <EditFormSettings EditFormType="Template">
                    <FormTemplate>
                        <table id="Table2" cellspacing="2" cellpadding="1" width="100%" border="0" rules="none"
                            style="border-collapse: collapse;">

                            <tr>
                                <td>
                                    <table id="Table3" width="450px" border="0" class="module">
                                        <tr>
                                            <td class="title" style="font-weight: bold;" colspan="2">StudentDetails :</td>
                                        </tr>
                                        <tr>
                                            <td>Select Course
                                            </td>
                                            <td>
                                                <telerik:RadComboBox RenderMode="Lightweight" HighlightTemplatedItems="True" Skin="Material" ID="RadComboBox1" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource1"
    DataTextField="ClassroomName" DataValueField="DDLDetailsId" Width="950px"  DropDownCssClass="exampleRadComboBox" Height="150px"
    AppendDataBoundItems="true">
               <DefaultItem Text="Please select " Value="-1"/>

     <HeaderTemplate>

                <ul>
                    <li class="col1">ClassroomName</li>
                    <li class="col2">GradeName</li>
                    <li class="col3">SectionName</li>
                     <li class="col4">TeacherFirstName</li>
                    <li class="col5">TeacherLastName</li>
                </ul>
            </HeaderTemplate>
            <ItemTemplate>
                <ul>
                    <li class="col1">
                        <%# DataBinder.Eval(Container.DataItem, "ClassroomName") %></li>
                    <li class="col2">
                        <%# DataBinder.Eval(Container.DataItem, "GradeName") %></li>
                    <li class="col3">
                        <%# DataBinder.Eval(Container.DataItem, "SectionName") %></li>
                      <li class="col4">
                        <%# DataBinder.Eval(Container.DataItem, "TeacherFirstName") %></li>
                     <li class="col5">
                        <%# DataBinder.Eval(Container.DataItem, "TeacherLastName") %></li>
                </ul>
            </ItemTemplate>
</telerik:RadComboBox>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td>StudentFirstName:
                                            </td>
                                            <td>
                                                  <asp:TextBox DataField="StudentFirstNames" HeaderText="StudentFirstName" SortExpression="StudentFirstName" runat="server"
                        UniqueName="StudentFirstName">

                    </asp:TextBox>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td>StudentLastName:
                                            </td>
                                            <td>

                                                  <asp:TextBox DataField="StudentLastNames" HeaderText="StudentLastName" SortExpression="StudentLastName" runat="server"
                        UniqueName="StudentLastName">

                    </asp:TextBox>

                                            </td>
                                        </tr>
                                       <tr>
                                            <td>StudentGender:
                                            </td>
                                            <td>
                                                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("StudentGender") %>' TabIndex="1">
                                                </asp:TextBox>
                                            </td>
                                        </tr>
                                          <tr>
                                            <td>Birth Date:
                                            </td>
                                            <td>
                                                <telerik:RadDatePicker RenderMode="Lightweight" ID="BirthDatePicker" runat="server" MinDate="1/1/1900" DbSelectedDate='<%# Bind("StudentDob") %>'
                                                    TabIndex="4">
                                                </telerik:RadDatePicker>
                                            </td>
                                        </tr>
                                     <tr>
                                            <td>ParentName:
                                            </td>
                                            <td>
                                                <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("StudentGender") %>' TabIndex="1">
                                                </asp:TextBox>
                                            </td>
                                        </tr>
                                       <tr>
                                            <td>StudentCity:
                                            </td>
                                            <td>
                                                <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("StudentGender") %>' TabIndex="1">
                                                </asp:TextBox>
                                            </td>
                                        </tr>
                                         <tr>
                                            <td>StudentFee:
                                            </td>
                                            <td>
                                                <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("StudentGender") %>' TabIndex="1">
                                                </asp:TextBox>
                                            </td>
                                        </tr>
                                    </table>
                                </td>

                            </tr>

                            <tr>
                                <td></td>
                                <td></td>
                            </tr>
                            <tr>
                                <td align="right" colspan="2">
                                    <asp:Button ID="btnUpdate" Text='Insert' 
                                        runat="server" CommandName='PerformInsert'></asp:Button>&nbsp;
                                    <asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False"
                                        CommandName="Cancel"></asp:Button>
                                </td>
                            </tr>
                        </table>
                    </FormTemplate>
                </EditFormSettings>
            </MasterTableView>
</telerik:RadGrid>

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT DDLDetails.DDLDetailsId, Classroom.ClassroomName, Grade.GradeName, Section.SectionName, Teacher.TeacherFirstName, Teacher.TeacherLastName
FROM DDLDetails
INNER JOIN Classroom ON Classroom.ClassroomId = DDLDetails.ClassroomId
INNER JOIN Grade ON Grade.GradeId = DDLDetails.GradeId
INNER JOIN Section ON Section.SectionId = DDLDetails.SectionId
INNER JOIN Teacher ON Teacher.TeacherId = DDLDetails.TeacherId"></asp:SqlDataSource>

<asp:SqlDataSource ID="gridSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="if (@DDLDetailsId <> 0)begin SELECT DISTINCT Student.StudentId, StudentLookup.DDLDetailsId, Student.StudentFirstName, Student.StudentLastName,Student.StudentDob, Student.StudentGender,Student.ParentName, Student.StudentCity, Student.StudentFee FROM StudentLookup INNER JOIN DDLDetails ON DDLDetails.DDLDetailsId = StudentLookup.DDLDetailsId INNER JOIN Student ON Student.StudentId = StudentLookup.StudentId WHERE DDLDetails.DDLDetailsId = @DDLDetailsId end ">
    <SelectParameters>
        <asp:ControlParameter Name="DDLDetailsId" PropertyName="SelectedValue" ControlID="RadComboBox1" />
    </SelectParameters>
</asp:SqlDataSource>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnableAJAX="true" DefaultLoadingPanelID="RadAjaxLoadingPanel1">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RadComboBox1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="OrdersGrid" LoadingPanelID="AjaxLoadingPanel1" />
                <telerik:AjaxUpdatedControl ControlID="RadComboBox1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />
  <script>

  </script>
    </asp:Content>

 

 

 

Aspx,cs

using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;

namespace TelerikWebApp
{
    public partial class Test : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        float total;
        protected void OrdersGrid_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
        {
            if (e.Item is GridDataItem)
            {
                GridDataItem dataItem = e.Item as GridDataItem;
                float fieldValue = float.Parse(dataItem["StudentFee"].Text);
                total += fieldValue;
            }
            if (e.Item is GridFooterItem)
            {
                GridFooterItem footerItem = e.Item as GridFooterItem;
                footerItem["StudentFee"].Text = "total: $ " + total.ToString();
            }
        
        }

     
       

        protected void RadGrid1_InsertCommand(object sender, GridCommandEventArgs e)
        {
            GridEditFormInsertItem insertedItem = (GridEditFormInsertItem)e.Item;
            string LastName = (insertedItem["StudentFirstName"].Controls[0] as TextBox).Text;
            string FirstName = (insertedItem["StudentLastName"].Controls[0] as TextBox).Text;
        }

        protected void OrdersGrid_ItemCommand(object sender, GridCommandEventArgs e)
        {
            if (e.CommandName == "PerformInsert")
            {
                GridEditFormInsertItem inserteditem = (GridEditFormInsertItem)e.Item;
                string lastname = (inserteditem["studentfirstnames"].Controls[0] as TextBox).Text;
                string firstname = (inserteditem["studentlastnames"].Controls[0] as TextBox).Text;
               

            }
        }

        protected void btnUpdate_Click(string emp)
        {


            String ConnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            SqlConnection conn = new SqlConnection(ConnString);
            SqlDataAdapter adapter = new SqlDataAdapter();
            SqlCommand command = new SqlCommand(
           "INSERT INTO [Student] (StudentFirstName, StudentLastName) " +
           "VALUES (@StudentFirstName, @StudentLastName)", conn);

            // Add the parameters for the InsertCommand.
            //command.Parameters.AddWithValue("@StudentFirstName", StudentFirstName.Text);
            //command.Parameters.AddWithValue("@StudentLastName", StudentLastName.Text);

            adapter.InsertCommand = command;
            int modified = (int)command.ExecuteScalar();

        }
    }
}

 

                                                                                                                                                                                                                                                                                                                                                                                       
Vessy
Telerik team
commented on 08 Sep 2021, 07:50 AM

Hi subhasish,

Can you elaborate a bit on the exact error that is thrown at your end? Can you also provide the exact steps to reproduce the issue?

No answers yet. Maybe you can help?

Tags
Grid
Asked by
subhasish
Top achievements
Rank 1
Share this question
or