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

RADGRID Select Item

2 Answers 324 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Dele
Top achievements
Rank 1
Dele asked on 11 Feb 2013, 01:46 PM

I am using radgrid very similar to the one on telerik sample here:
http://demos.telerik.com/aspnet-ajax/grid/examples/overview/defaultcs.aspx

Problem is, earlier selected sub items are not cleared when new sub item are selected. Which gives the user the impression that multiple items arte selected which is not the case.

How can I clear the first main and sub-items selected when new sub items are directly selected?

2 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 12 Feb 2013, 10:39 AM
Hi,

Please check the code snippet I tried to select only one row at a time in the Nested Radgrid.

ASPX:
<telerik:radgrid id="RadGrid1" showstatusbar="True" datasourceid="SqlDataSource1"
runat="server" autogeneratecolumns="False" >
<ClientSettings>
    <Selecting AllowRowSelect="True" />
</ClientSettings>
<MasterTableView DataSourceID="SqlDataSource1" DataKeyNames="CustomerID" AllowMultiColumnSorting="True">
    <NestedViewSettings DataSourceID="SqlDataSource2">
        <ParentTableRelation>
            <telerik:GridRelationFields DetailKeyField="CustomerID" MasterKeyField="CustomerID" />
        </ParentTableRelation>
    </NestedViewSettings>
    <NestedViewTemplate>
        <telerik:RadGrid ID="RadGrid2" runat="server" AutoGenerateColumns="False" AllowPaging="true"
            PageSize="3" OnSelectedIndexChanged="RadGrid2_SelectedIndexChanged" AllowMultiRowSelection="true">
            <ClientSettings EnablePostBackOnRowClick="true">
                <Selecting AllowRowSelect="True" />
            </ClientSettings>
            <MasterTableView DataKeyNames="OrderID" DataSourceID="SqlDataSource2" Width="100%"
                runat="server">
                <ParentTableRelation>
                    <telerik:GridRelationFields DetailKeyField="CustomerID" MasterKeyField="CustomerID" />
                </ParentTableRelation>
                <Columns>
                    <telerik:GridBoundColumn SortExpression="OrderID" HeaderText="OrderID" HeaderButtonType="TextButton"
                        DataField="OrderID" UniqueName="OrderID">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn SortExpression="OrderDate" HeaderText="Date Ordered" HeaderButtonType="TextButton"
                        DataField="OrderDate" UniqueName="OrderDate" DataFormatString="{0:D}">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn SortExpression="Freight" HeaderText="Freight" HeaderButtonType="TextButton"
                        DataField="Freight" UniqueName="Freight">
                    </telerik:GridBoundColumn>
                </Columns>
            </MasterTableView>
        </telerik:RadGrid>
    </NestedViewTemplate>   
    <Columns>
        <telerik:GridBoundColumn SortExpression="CustomerID" HeaderText="CustomerID" HeaderButtonType="TextButton"
            DataField="CustomerID" UniqueName="CustomerID">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn SortExpression="ContactName" HeaderText="Contact Name" HeaderButtonType="TextButton"
            DataField="ContactName" UniqueName="ContactName">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn SortExpression="CompanyName" HeaderText="Company" HeaderButtonType="TextButton"
            DataField="CompanyName" UniqueName="CompanyName">
        </telerik:GridBoundColumn>
    </Columns>
</MasterTableView>
</telerik:radgrid>
<asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="System.Data.SqlClient" SelectCommand="SELECT * FROM Customers"
runat="server"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="System.Data.SqlClient" SelectCommand="SELECT * FROM Orders Where CustomerID = @CustomerID"
runat="server">
<SelectParameters>
    <asp:SessionParameter Name="CustomerID" SessionField="CustomerID" Type="string" />
</SelectParameters>
</asp:SqlDataSource>

C#:
protected void Page_Load(object sender, EventArgs e)
{
   if (!IsPostBack)
   {
      Session["gridID"] = null;
   }
}
protected void RadGrid2_SelectedIndexChanged(object sender, EventArgs e)
{
    RadGrid radGrid2 = sender as RadGrid;
    GridDataItem parentItem = (radGrid2.NamingContainer as GridNestedViewItem).ParentItem as GridDataItem;
 
    string savedGridID = (string)Session["gridID"];
    if (radGrid2.UniqueID != savedGridID)
    {
        Session["gridID"] = radGrid2.UniqueID;
        if (savedGridID != null)
        {
            RadGrid savedGrid = Page.FindControl(savedGridID) as RadGrid;
            foreach (GridDataItem dataItem in savedGrid.SelectedItems)
            {
                dataItem.Selected = false;
            }
        }
    }
}

Thanks,
Shinu.

0
Dele
Top achievements
Rank 1
answered on 13 Feb 2013, 10:47 PM
Works!

Thank you!
Tags
Grid
Asked by
Dele
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Dele
Top achievements
Rank 1
Share this question
or