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

Grid Batch Input With Auto Generated Columns

3 Answers 71 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Paul
Top achievements
Rank 1
Paul asked on 17 Oct 2013, 02:24 PM
Hello,

I was wondering whether I am able to do batch input with auto-generated columns?

This is my grid declaration.

<telerik:RadGrid ID="rgTimeDetails" runat="server" OnNeedDataSource="rgTimeDetails_NeedDataSource" OnColumnCreated="rgTimeDetails_ColumnCreated" CellSpacing="0" GridLines="None">
<MasterTableView EditMode="Batch" CommandItemDisplay="Top" DataKeyNames="timeid,staffid">
<BatchEditingSettings OpenEditingEvent="DblClick" EditType="Row" />
</MasterTableView>
</telerik:RadGrid>

Whenever I click new row, a row appears but it is empty - no textboxes or anything. Am I missing something?

Regards, Paul.

3 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 18 Oct 2013, 05:08 AM
Hi Paul,

Please try the sample code snippet for Batch Edit,it works fine at my end.

ASPX:
<telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="true" OnNeedDataSource="RadGrid1_NeedDataSource"   OnBatchEditCommand="RadGrid1_BatchEditCommand">
    <MasterTableView EditMode="Batch" CommandItemDisplay="Top" DataKeyNames="OrderID">
        <BatchEditingSettings OpenEditingEvent="DblClick" EditType="Row" />
    </MasterTableView>
</telerik:RadGrid>
<br />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>

C#:
public static string connection = WebConfigurationManager.ConnectionStrings["Northwind_newConnectionString3"].ConnectionString;
SqlConnection conn = new SqlConnection(connection);  
DataTable dt1 = new DataTable();
 
protected void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
    string selectQuery1 = "SELECT [OrderID], [ShipName] FROM [Orders]";
    SqlDataAdapter adapter1 = new SqlDataAdapter(selectQuery1, conn);
    conn.Open();
    adapter1.Fill(dt1);
    conn.Close();
    RadGrid1.DataSource = dt1;
}
    
protected void RadGrid1_BatchEditCommand(object sender, GridBatchEditingEventArgs e)
{
    foreach (GridBatchEditingCommand command in e.Commands)
    {
        Hashtable newValues = command.NewValues;
        Hashtable oldValues = command.OldValues;
        string OrderID = newValues["OrderID"].ToString();
        string ShipName = newValues["ShipName"].ToString();
        try
        {             
            conn.Open();
            string query = "UPDATE Orders SET ShipName='" + ShipName + "' WHERE OrderID = '" + OrderID + "'";
            SqlCommand cmd = new SqlCommand(query, conn);
            cmd.ExecuteNonQuery();
            conn.Close();
            Label1.Text = "Product with ID " + OrderID + " is updated!";
        }
        catch (Exception ex)
        {
            Label1.Text = "Product with ID " + OrderID + " cannot be updated. ";
        }   
    }
}

Thanks,
Princy
0
Paul
Top achievements
Rank 1
answered on 18 Oct 2013, 08:12 AM
Thanks for the response Princy. I have compared mine with yours and its virtually the same but mine isn't working.

Not sure if it matters but my RadGrid is inside a RadWindow?

I have attached a screenshot to show what is happening. If I double click on a row, nothing happens.

Regards, Paul.
0
Princy
Top achievements
Rank 2
answered on 21 Oct 2013, 08:00 AM
Hi Paul,

Its hard to identify the issue,the code works fine at my end.Here is the code I tried using a window.If this doesn't help,please provide your full code snippet.

ASPX:
<telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true">
    <Windows>
        <telerik:RadWindow ID="UserListDialog" runat="server" Title="Editing record" Height="320px"
            Width="310px" Left="150px" ReloadOnShow="true" ShowContentDuringLoad="false"
            Modal="true">
            <ContentTemplate>
                <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="true" OnNeedDataSource="RadGrid1_NeedDataSource"
                    OnBatchEditCommand="RadGrid1_BatchEditCommand">
                    <MasterTableView EditMode="Batch" CommandItemDisplay="Top" DataKeyNames="OrderID">
                        <BatchEditingSettings OpenEditingEvent="DblClick" EditType="Row" />
                    </MasterTableView>
                </telerik:RadGrid>
                <br />
                <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
            </ContentTemplate>
        </telerik:RadWindow>
    </Windows>
</telerik:RadWindowManager>
<telerik:RadButton ID="rbShowDialog" Text="Show the Window" runat="server" />

C#:
public static string connection = WebConfigurationManager.ConnectionStrings["Northwind_newConnectionString3"].ConnectionString;
SqlConnection conn = new SqlConnection(connection);  
DataTable dt1 = new DataTable();
 
protected void Page_Load(object sender, EventArgs e)
{
    UserListDialog.OpenerElementID = rbShowDialog.ClientID;
}
protected void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
    string selectQuery1 = "SELECT [OrderID], [ShipName] FROM [Orders]";
    SqlDataAdapter adapter1 = new SqlDataAdapter(selectQuery1, conn);
    conn.Open();
    adapter1.Fill(dt1);
    conn.Close();
    RadGrid1.DataSource = dt1;
}
    
protected void RadGrid1_BatchEditCommand(object sender, GridBatchEditingEventArgs e)
{
    foreach (GridBatchEditingCommand command in e.Commands)
    {
        Hashtable newValues = command.NewValues;
        Hashtable oldValues = command.OldValues;
        string OrderID = newValues["OrderID"].ToString();
        string ShipName = newValues["ShipName"].ToString();
        try
        {             
            conn.Open();
            string query = "UPDATE Orders SET ShipName='" + ShipName + "' WHERE OrderID = '" + OrderID + "'";
            SqlCommand cmd = new SqlCommand(query, conn);
            cmd.ExecuteNonQuery();
            conn.Close();
            Label1.Text = "Product with ID " + OrderID + " is updated!";
        }
        catch (Exception ex)
        {
            Label1.Text = "Product with ID " + OrderID + " cannot be updated. ";
        }   
    }
}

Thanks,
Princy
Tags
Grid
Asked by
Paul
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Paul
Top achievements
Rank 1
Share this question
or