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

Select multiple checkboxes in a RadGrid based on a value from a dropdownlist

2 Answers 300 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Raji
Top achievements
Rank 1
Raji asked on 23 Jul 2011, 01:30 AM
Hi,

Does any one know to select multiple checkboxes in a RadGrid? I have a .net webpage, it has a dropdownlist which has values(1,2,3,4,5,6). When I select a value from the dropdownlist it should select the same number of checkboxes in the RadGrid, starting from first row. I tried to write some clientside javascript code to capture the value and then set it to the rows in RadGrid. Does anyone know how you can achive this. Help will be appreciated.

Thanks,
Raji

2 Answers, 1 is accepted

Sort by
0
Jayesh Goyani
Top achievements
Rank 2
answered on 23 Jul 2011, 09:21 AM
hi,

please check below code and let me know if any concern.

<telerik:RadComboBox ID="RadComboBox1" runat="server">
            <ItemTemplate>
                <div >
                    <asp:CheckBox runat="server" ID="CheckBox1" Text='<%#Eval("Name") %>' />
                    <asp:Label runat="server" ID="Label1" Text='<%#Eval("ID") %>' Visible="false"></asp:Label>
                </div>
            </ItemTemplate>
        </telerik:RadComboBox>
        <br />
        <telerik:RadButton ID="RadButton1" runat="server" onclick="RadButton1_Click" Text="RadButton1"></telerik:RadButton>
        <br />
        <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false"
            AllowMultiRowSelection="true" onneeddatasource="RadGrid1_NeedDataSource"
            onitemdatabound="RadGrid1_ItemDataBound">
            <MasterTableView DataKeyNames="ID" HierarchyLoadMode="Client">
                <Columns>
                <telerik:GridClientSelectColumn UniqueName="SelectColumn"></telerik:GridClientSelectColumn>
                    <telerik:GridBoundColumn DataField="ID" HeaderText="ID">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name">
                    </telerik:GridBoundColumn>
                </Columns>
            </MasterTableView>
            <ClientSettings>
                <Selecting AllowRowSelect="true" />
            </ClientSettings>
        </telerik:RadGrid>

private string _SelectedIds
    {
        set
        {
            ViewState["SelectedIds"] = value;
        }
        get
        {
            if (ViewState["SelectedIds"] == null)
                return string.Empty;
            else
                return (ViewState["SelectedIds"].ToString());
        }
    }
 
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            dynamic data = new[] {
                new { ID = 1, Name ="Name1"},
                new { ID = 2, Name = "Name2"},
                new { ID = 3, Name = "Name3"},
                new { ID = 4, Name = "Name4"},
                new { ID = 5, Name = "Name5"}
            };
 
            RadComboBox1.DataSource = data;
            RadComboBox1.DataTextField = "Name";
            RadComboBox1.DataValueField = "ID";
            RadComboBox1.DataBind();
        }
    }
    protected void RadButton1_Click(object sender, EventArgs e)
    {
        getSelectedId();
        RadGrid1.Rebind();
    }
    protected void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        dynamic data = new[] {
                new { ID = 1, Name ="Name1"},
                new { ID = 2, Name = "Name2"},
                new { ID = 3, Name = "Name3"},
                new { ID = 4, Name = "Name4"},
                new { ID = 5, Name = "Name5"},
                new { ID = 6, Name ="Name6"},
                new { ID = 7, Name = "Name7"},
                new { ID = 8, Name = "Name8"},
                new { ID = 9, Name = "Name9"},
                new { ID = 10, Name = "Name10"},
                new { ID = 11, Name ="Name11"},
                new { ID = 12, Name = "Name12"},
                new { ID = 13, Name = "Name13"},
                new { ID = 14, Name = "Name14"},
                new { ID = 15, Name = "Name15"}
            };
 
        RadGrid1.DataSource = data;
    }
    protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            GridDataItem item = (GridDataItem)e.Item;
            int ID = Convert.ToInt32(item.GetDataKeyValue("ID"));
            if (_SelectedIds.Contains("," + ID.ToString() + ","))
            {
                item.Selected = true;
            }
        }
    }
 
    protected void getSelectedId()
    {
        string strIds = ",0,";
 
        foreach (RadComboBoxItem item in RadComboBox1.Items)
        {
            CheckBox chk = (CheckBox)item.FindControl("CheckBox1");
            if (chk.Checked)
            {
                Label Label1 = (Label)item.FindControl("Label1");
                strIds += Label1.Text + ",";
            }
        }
 
        _SelectedIds = strIds;
    }

Thanks,
Jayesh Goyani
0
Raji
Top achievements
Rank 1
answered on 26 Jul 2011, 01:24 AM
Hi Jayesh,

I was looking for a client side script but I after seeing your code I changed it and now it works as I wanted. Do you know how you can write client side script for RADGrid like the one below. SelectWorkItem is the Checkbox column name in the grid. The below code works fine if I use a normal asp.net grid.

 

 

 

for

 

(i = 0; i < document.forms[0].elements.length; i++)

 

{

 

    if(document.forms[0].elements[i].name.indexOf("SelectWorkItem") >= 0)

 

    {

 

        if (itemsChecked == totalItemsChecked)

 

        {

 

            break;

 

        }

 

        else

 

        {

            document.forms[0].elements[i].checked =

true;

 

            itemsChecked++;

        }

    }

}

Thanks,
Raji

Tags
Grid
Asked by
Raji
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Raji
Top achievements
Rank 1
Share this question
or