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

Selected items' values always return null

6 Answers 665 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Ugur
Top achievements
Rank 1
Ugur asked on 08 Apr 2013, 06:09 AM
Hi,

When i want to get radgrid selected items, I show that all the cells' values are null. I applied the solutions below but they didn't work.

Please help for getting selected row values.

*******
  GridDataItem[] itemm = grdWorkReport.MasterTableView.GetSelectedItems();
        string ss = itemm[0]["CalismaTarihi"].Text;   ( --->>> ss  Returns null )

******
 foreach (GridDataItem item in grdWorkReport.SelectedItems)
        {
            Response.Write(item["CalismaTarihi"].Text.ToString()); // CustomerID is the uniquename of column 
        }
*******

My radgrid is :

  <telerik:RadGrid ID="grdWorkReport" Skin="Sitefinity" runat="server" AllowPaging="True"   SelectedItemStyle-BackColor="Orange"
            AutoGenerateColumns="False" CellSpacing="0" GridLines="None" Height="350px" OnNeedDataSource="RadGrid1_NeedDataSource" OnItemDataBound="RadGrid1_ItemDataBound"
            Width="100%" ShowStatusBar="True" GroupingEnabled="False" AllowSorting="True"
            PageSize="10" AllowCustomPaging="True" OnItemCommand="RadGrid1_ItemCommand"  SortingSettings-SortToolTip="Sıralamak için buraya basınız." AllowMultiRowSelection="true">
            <PagerStyle Mode="NextPrevAndNumeric" PagerTextFormat="{4} {1} sayfada {5} kayıt"
                FirstPageToolTip="İlk Sayfa" LastPageToolTip="Son Sayfa" PrevPageToolTip="Önceki Sayfa"
                NextPageToolTip="Sonraki Sayfa" />
            <ClientSettings>
                <Scrolling AllowScroll="True" UseStaticHeaders="True" />
                </ClientSettings>
            <MasterTableView CommandItemDisplay="Top" AllowFilteringByColumn="false" AllowCustomSorting="true"
                Width="100%">
                <CommandItemSettings ShowExportToWordButton="false" ShowExportToExcelButton="true"
                    ShowExportToCsvButton="false" ShowAddNewRecordButton="false" 
                    ExportToExcelText="Excel'e Aktar" />
                <CommandItemStyle Height="30px" />
                <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
                    <HeaderStyle Width="20px" />
                </RowIndicatorColumn>
                <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
                    <HeaderStyle Width="20px" />
                </ExpandCollapseColumn>
           
                <Columns>

                   <telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn">
                <ItemTemplate>
                  <asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="ToggleRowSelection"
                    AutoPostBack="True" />
                </ItemTemplate>
                <HeaderTemplate>
                  <asp:CheckBox ID="headerChkbox" runat="server" OnCheckedChanged="ToggleSelectedState"
                    AutoPostBack="True" />
                </HeaderTemplate>
              </telerik:GridTemplateColumn>

                 <telerik:GridTemplateColumn UniqueName="RecordId" HeaderText="Kayıt ID" DataField="RecordId"
                         ReadOnly="true" Visible="false">
                        <ItemTemplate>
                            <asp:Label ID="lblRecordId" runat="server" Text='<%# Eval("RecordId") %>'></asp:Label>
                        </ItemTemplate>
                     
                    </telerik:GridTemplateColumn> 

6 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 08 Apr 2013, 06:43 AM
Hi Ugur,

Unfortunately I couldn't replicate the issue. Here is the sample code snippet I tried  to get the text of  a cell  in a selected row on a button click event . I guess the column you are accessing is a GridBoundColumn.

ASPX:
<telerik:RadGrid ID="grdWorkReport" runat="server" AllowPaging="True" PageSize="5"
    Skin="Hay" DataSourceID="SqlDataSource1" AllowMultiRowSelection="true" AutoGenerateColumns="false">
    <MasterTableView>
        <Columns>
            <telerik:GridBoundColumn DataField="OrderID" UniqueName="CalismaTarihi">
            </telerik:GridBoundColumn>
            <telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn">
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="ToggleRowSelection"
                        AutoPostBack="True" />
                </ItemTemplate>
                <HeaderTemplate>
                    <asp:CheckBox ID="headerChkbox" runat="server" OnCheckedChanged="ToggleSelectedState"
                        AutoPostBack="True" />
                </HeaderTemplate>
            </telerik:GridTemplateColumn>
        </Columns>
    </MasterTableView></telerik:RadGrid>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" />

C#:
protected void Button1_Click(object sender, EventArgs e)
{
    foreach(GridDataItem item  in grdWorkReport.SelectedItems)
    {
        string Selected = item["CalismaTarihi"].Text.ToString();
    }
}

Please elaborate the scenario if it doesn't help.

Thanks,
Princy.
0
Ugur
Top achievements
Rank 1
answered on 08 Apr 2013, 07:08 AM
Hi Princy,

Thank you for your answer but it didn't  work for me. The columns are GridTemplateColumn and first i select a row, then click a button to get selected column values.

My gridview and C# codes are above. 


0
Jayesh Goyani
Top achievements
Rank 2
answered on 08 Apr 2013, 08:47 AM
Hello,

Please try with the below code snippet.

<ClientSettings>
              <Selecting AllowRowSelect="true" />
          </ClientSettings>

protected void ToggleRowSelection(object sender, EventArgs e)
    {
        CheckBox chk = sender as CheckBox;
        GridDataItem item = chk.NamingContainer as GridDataItem;
        item.Selected = chk.Checked;
    }


Thanks,
Jayesh Goyani
0
Ugur
Top achievements
Rank 1
answered on 08 Apr 2013, 08:53 AM
Thank you. I solved.

It is very easy actually. 

To get values I must use item.FindControl() and get the value. Because i use GridTemplateColumn.

Label lblid = item.FindControl("lblid") as Label

lblid.Text = ....

like this.
0
bharath
Top achievements
Rank 1
answered on 13 May 2014, 06:34 PM
Hi,

   When i select a row in radgrid i am able to get the seleteditems[0].But when i select another row(2nd time) seleteditems[0] getting index out of range or index must be non negitive.I am using databind to bind the grid

/Bharath
0
Shinu
Top achievements
Rank 2
answered on 14 May 2014, 04:07 AM
Hi Bharath,

You can try the following code snippet to get the selected rows values:

ASPX:
<MasterTableView DataKeyNames="OrderID">
  <ClientSettings EnablePostBackOnRowClick="true" Selecting-AllowRowSelect="true"> </ClientSettings>

C#:
protected void RadGrid1_SelectedIndexChanged1(object sender, EventArgs e)
{
 foreach (GridDataItem selectedItem in RadGrid1.SelectedItems)
 {     
  string value = selectedItem.GetDataKeyValue("OrderID").ToString(); //Get the selected row datakey value
 }
}

Thanks,
Shinu
Tags
Grid
Asked by
Ugur
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Ugur
Top achievements
Rank 1
Jayesh Goyani
Top achievements
Rank 2
bharath
Top achievements
Rank 1
Shinu
Top achievements
Rank 2
Share this question
or