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

Client Select Column in RadGrid

3 Answers 964 Views
Grid
This is a migrated thread and some comments may be shown as answers.
rohit
Top achievements
Rank 1
rohit asked on 03 Feb 2011, 08:21 PM
Hi,

I have a grid on my web page. which is populated with data in bound columns.
I have one Client Select Column in grid to select specific column.
Now, i want to save my grid data in database, when user select any row (by clicking checkbox in clientselectcolumn).
Anyone can provide sample example for this.
Thanks in Advance.

3 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 04 Feb 2011, 06:05 AM
Hello Rohit,

Here is a sample code that I tried in my application for similar scenario. I have achieved this by invoking the ajaxRequest from 'OnRowSelected' client event and saving the row index in AjaxManager_AjaxRequest server event. Then get the corresponding DataItem and access the cell value and store in to DB.

ASPX:
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest1">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>
 
<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="SqlDataSource1">
    <MasterTableView DataKeyNames="EmployeeID">
        <Columns>
            <telerik:GridBoundColumn DataField="EmployeeID" HeaderText="EmployeeID" UniqueName="EmployeeID">
            </telerik:GridBoundColumn>
            <telerik:GridClientSelectColumn>
            </telerik:GridClientSelectColumn>
        </Columns>
    </MasterTableView>
    <ClientSettings Selecting-AllowRowSelect="true">
        <ClientEvents OnRowSelected="RowSelected" />
    </ClientSettings>
</telerik:RadGrid>

Java Script:
<script type="text/javascript">
    function RowSelected(sender, args) {
        var rowindex = args._itemIndexHierarchical;
        var ajaxManager = $find("<%= RadAjaxManager1.ClientID %>");
        ajaxManager.ajaxRequest(rowindex); // ajaxRequest
    }
</script>

C#:
protected void RadAjaxManager1_AjaxRequest1(object sender, AjaxRequestEventArgs e)
   {
       string  rowIndex =e.Argument;//getting row index
       GridDataItem item = (GridDataItem)RadGrid1.Items[rowIndex]; //accessing grid item
       //access cell value of item and store into db
   }

Thanks,
Princy.
0
rohit
Top achievements
Rank 1
answered on 04 Feb 2011, 04:21 PM
Hi,
Here's my code which i am using to update grid data in database using ClientSelectColumn.
Error i am getting is :
object-reference-not-set-to-an-instance-of-an-object

VB.NET Code:
Private Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
        SetApproved()  
    End Sub
Public Sub SetApproved()
       For Each item As GridDataItem In GD_APay.Items
            Dim str0 As String = item("School_number").Text
            Dim str1 As String = item("JOBR_VENDOR_NOUN").Text
            Dim str2 As String = item("Invoice_Date").Text
            Dim str3 As String = item("Invoice_Number").Text
            Dim str4 As String = item("OrderAmount").Text
            Dim str5 As String = item("Invoice_Amt").Text
            Dim str6 As String = item("ExceptionsFlag").Text

            Dim chk As CheckBox = DirectCast(item.FindControl("chkbx"), CheckBox)
 Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("FConnectionString").ConnectionString)
            Dim cmd As New SqlCommand("P_FN_AP_SetInvoiceApprove", con)
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add("@School_number", System.Data.SqlDbType.VarChar)
            cmd.Parameters("@School_number").Value = str0
            cmd.Parameters.Add("@JOBR_VENDOR_NOUN", System.Data.SqlDbType.VarChar)
            cmd.Parameters("@JOBR_VENDOR_NOUN").Value = str1
            cmd.Parameters.Add("@Invoice_Date", System.Data.SqlDbType.DateTime)
            cmd.Parameters("@Invoice_Date").Value = str2
            cmd.Parameters.Add("@Invoice_Number", System.Data.SqlDbType.VarChar)
            cmd.Parameters("@Invoice_Number").Value = str3
            cmd.Parameters.Add("@OrderAmount", System.Data.SqlDbType.Decimal)
            cmd.Parameters("@OrderAmount").Value = str4
            cmd.Parameters.Add("@Invoice_Amt", System.Data.SqlDbType.Decimal)
            cmd.Parameters("@Invoice_Amt").Value = str5
            cmd.Parameters.Add("@ExceptionsFlag", System.Data.SqlDbType.VarChar)
            cmd.Parameters("@ExceptionsFlag").Value = str6
            con.Open()
            If chk.Checked = True Then ///// get error here
                cmd.ExecuteNonQuery()
                con.Close()
            End If
        Next
    End Sub

ASPX Code:

<telerik:RadGrid ID="GD_APay" runat="server" GridLines="None"
                                Height="217px" Skin="Outlook" Width="100%" AllowMultiRowSelection="True" 
                                AutoGenerateColumns="False" AllowAutomaticUpdates="True" CellPadding="0">
                                <ClientSettings AllowColumnsReorder="True">
                                    <Selecting AllowRowSelect="True" UseClientSelectColumnOnly="True" />
                                    <Scrolling AllowScroll="True" UseStaticHeaders="True" />
                                </ClientSettings>
                                <MasterTableView CellPadding="0" CellSpacing="0" GridLines="None" 
                                    Font-Bold="False" Font-Italic="False" Font-Overline="False" 
                                    Font-Strikeout="False" Font-Underline="False" 
                                    AllowAutomaticUpdates="False">
                                    <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings>
                                    <Columns>
                                        <telerik:GridBoundColumn HeaderText="School" UniqueName="School_number" DataField="School_number"
                                            SortExpression="School_number">
                                            <HeaderStyle Width="18%" />
                                        </telerik:GridBoundColumn>
                                        <telerik:GridBoundColumn HeaderText="Vendor" UniqueName="JOBR_VENDOR_NOUN" DataField="JOBR_VENDOR_NOUN"
                                            SortExpression="JOBR_VENDOR_NOUN">
                                            <HeaderStyle Width="18%" />
                                        </telerik:GridBoundColumn>
                                        <telerik:GridBoundColumn HeaderText="Receive Date" UniqueName="Invoice_Date" DataField="Invoice_Date"
                                            SortExpression="Invoice_Date">
                                            <HeaderStyle Width="18%" />
                                        </telerik:GridBoundColumn>
                                        <telerik:GridHyperLinkColumn HeaderText="Invoice #" UniqueName="Invoice_Number" DataTextField="Invoice_Number"
                                            SortExpression="Invoice_Number">
                                            <HeaderStyle Width="9%" />
                                        </telerik:GridHyperLinkColumn>
                                        <telerik:GridBoundColumn HeaderText="Order Amount" UniqueName="OrderAmount" DataField="OrderAmount"
                                            SortExpression="OrderAmount">
                                            <HeaderStyle Width="9%" />
                                        </telerik:GridBoundColumn>
                                        <telerik:GridBoundColumn HeaderText="Invoice Amount" UniqueName="Invoice_Amt" DataField="Invoice_Amt"
                                            SortExpression="Invoice_Amt">
                                            <HeaderStyle Width="9%" />
                                        </telerik:GridBoundColumn>
                                        <telerik:GridBoundColumn HeaderText="Exception" UniqueName="ExceptionsFlag" DataField="ExceptionsFlag"
                                            SortExpression="ExceptionsFlag">
                                            <HeaderStyle Width="10%" />
                                        </telerik:GridBoundColumn>
                                        <telerik:GridClientSelectColumn UniqueName="column" HeaderText="Select">
                                            <HeaderStyle Width="9%" />
                                        </telerik:GridClientSelectColumn>
                                       
                                    </Columns>
                                    <ItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" 
                                        Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Center" 
                                        Wrap="True" />
                                    <GroupHeaderItemStyle Font-Bold="False" Font-Italic="False" 
                                        Font-Overline="False" Font-Strikeout="False" Font-Underline="False" 
                                        HorizontalAlign="Center" Wrap="True" />
                                    <AlternatingItemStyle Font-Bold="False" Font-Italic="False" 
                                        Font-Overline="False" Font-Strikeout="False" Font-Underline="False" 
                                        HorizontalAlign="Center" Wrap="True" />
                                    <EditItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" 
                                        Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Center" 
                                        Wrap="True" />
                                    <PagerStyle AlwaysVisible="True" Mode="NumericPages" Font-Bold="False" 
                                        Font-Italic="False" Font-Overline="False" Font-Strikeout="False" 
                                        Font-Underline="False" HorizontalAlign="Center" PageButtonCount="5" 
                                        Wrap="True" />
                                    <HeaderStyle Font-Bold="True" Font-Italic="False" Font-Overline="False" Font-Strikeout="False"
                                        Font-Underline="False" ForeColor="White" Wrap="True" 
                                        HorizontalAlign="Center" />
                                </MasterTableView>
                                <PagerStyle AlwaysVisible="True" Mode="NumericPages" PageButtonCount="5" />
                            </telerik:RadGrid>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" />

Stored_Proc:
ALTER PROCEDURE [dbo].[P_FN_AP_SetInvoiceApprove]
(
@School_number varchar(4),
@JOBR_VENDOR_NOUN varchar(15),
@Invoice_Date datetime,
@Invoice_Number varchar(16),
@OrderAmount decimal(18,2),
@Invoice_Amt decimal(18,2),
@ExceptionsFlag varchar(1)
)
AS
BEGIN
UPDATE FNReceiveHeader
SET IsApproval='Y', ApprovedDate = getdate()
WHERE School_number=@School_number AND  
JOBR_VENDOR_NOUN=@JOBR_VENDOR_NOUN AND 
Invoice_Date=@Invoice_Date AND 
Invoice_Number=@Invoice_Number AND 
OrderAmount=@OrderAmount AND 
Invoice_Amt=@Invoice_Amt AND 
ExceptionsFlag=@ExceptionsFlag
END
/* SET NOCOUNT ON */
RETURN
0
Princy
Top achievements
Rank 2
answered on 07 Feb 2011, 10:20 AM
Hello Rohit,

Try the following approach to access the CheckBox in ClientSelectColumn.

VB.NET:
Public Sub SetApproved()
    For Each item As GridDataItem In RadGrid1.Items
        Dim chk As CheckBox = DirectCast(item("column").Controls(0), CheckBox)
        If chk.Checked = True Then
                .    .    .   .   .   .
        End If
    Next
End Sub

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