TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
ariez
NA
34
0
Nested DataList Parent-Child Selection
Apr 11 2012 8:58 AM
I have a web application which have a datalist within a datalist. The outer datalist make parent items and the inner one the child items both with checkboxes for selection. I am retrieving these items from a database.
THE PROBLEM:
1. I want the parent item to be checked/unchecked automatically if any of the children is checked/unchecked.
2. All the children should be checked if the parent is checked.
I just dont know how to do this with datalists. Although, I have implemented this logic in my code by the use of flags and count variables but I want it to be visible to users. Shall i use javascripts for that? But keeping in mind tht scripting has issues with browsers. IE is recommended browser.
Many thanks.
Technology Used is .NET 4.
Below is the code I hv used for implementing this logic in C#.
bool flag;
bool Parentflag = false;
int count = 0;//count=1 means only parent exists, count=2 means parent+child exists
int labelID = 0;
using (SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()))
{
BLL.Admin adminObj = new BLL.Admin(sqlcon.ConnectionString);
adminObj.DeletePriorPermissions(DropDownRoles.SelectedValue.ToString());
foreach (DataListItem lstitem in dlstMenu.Items)
{
//Code for iterating Parent Menu Items
if (lstitem.ItemType == ListItemType.Item || lstitem.ItemType == ListItemType.AlternatingItem)
{
flag = false;
Label lblPageIdParent = (Label)lstitem.FindControl("lblPageId");
CheckBox chkPageCaption = (CheckBox)lstitem.FindControl("chkPageCaption");
labelID = Convert.ToInt32(lblPageIdParent.Text);
if (chkPageCaption.Checked)
//Add Permissions for Parent Page
{
adminObj.SavePagePermissions(1, Convert.ToInt32(lblPageIdParent.Text), DropDownRoles.SelectedValue.ToString());
Parentflag = false;
count = 1;
}
DataList dlstpage = (DataList)lstitem.FindControl("dlstpage");
foreach (DataListItem item in dlstpage.Items)
{
Parentflag = true;
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
//parent checkbox
CheckBox cbxPage = (CheckBox)item.FindControl("chkPageCaption");
RadioButtonList rdoPermissions = (RadioButtonList)item.FindControl("rdoPermission");
Label lblPageID = (Label)item.FindControl("lblPageId");
if (cbxPage != null)
{
if (cbxPage.Checked)
{
//Check parent if any of the children is checked.
if (!chkPageCaption.Checked)
{
//Save permissions for parent item only once.
if (!flag)
{
adminObj.SavePagePermissions(1, Convert.ToInt32(lblPageIdParent.Text), DropDownRoles.SelectedValue.ToString());
flag = true;
}
}
foreach (ListItem rdlst in rdoPermissions.Items)
{
if (rdlst.Selected)
{
//Save Permissions for child items.
adminObj.SavePagePermissions(Convert.ToInt32(rdlst.Value), Convert.ToInt32(lblPageID.Text), DropDownRoles.SelectedValue.ToString());
Parentflag = true;
count = 2;
}
}
}
}
}
}
}
//Delete entry for parent item if none of the children is selected.
if (count != 0)
{
if (Parentflag==true && count == 1)
adminObj.ExecuteSQL("DELETE FROM [tbl_PagePermissions] WHERE PAGEID = " + labelID + " AND ROLEID = '" + DropDownRoles.SelectedValue.ToString() + "'", sqlcon.ConnectionString);
}
}
Reply
Answers (
1
)
How to refresh partial page in webform
Best way to display on growing text log files in ASP.Net Web page