2
Answers

How to bind Tree View Node from database dynamically in asp

Hello,
 
I am creating a treeview in asp.net C# dybamically.
 
Data in tree view binding successfully , But Nodes is not creating to according to table data so that i could expend and collapse
 
<asp:TreeView ID="TreeView2" runat="server" ImageSet="XPFileExplorer"
NodeIndent="15" Expanded="True" Font-Names="Verdana" Font-Size="12px"
ForeColor="#F48110"
SkinID="NonPostBackTree" Height="100%" Width="415px"
SelectedNodeStyle-ForeColor="blue"
>
<%-- <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" />--%>
<%-- <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" HorizontalPadding="2px"
NodeSpacing="0px" VerticalPadding="2px"></NodeStyle>--%>
<%-- <ParentNodeStyle Font-Bold="False" />
<SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" HorizontalPadding="0px"
VerticalPadding="0px" />--%>
</asp:TreeView>
 
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ConnectionString.ToString());
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = this.GetData("Select distinct Pid, PName,cid,cname from TopParent");
this.PopulateTreeView(dt, 0, null);
BindRepeaterRight();
}
}
private void PopulateTreeView(DataTable dtParent, int parentId, TreeNode treeNode)
{
foreach (DataRow row in dtParent.Rows)
{
TreeNode child = new TreeNode
{
Text = row["cName"].ToString(),
Value = row["cId"].ToString()
};
if (parentId == 0)
{
TreeView2.Nodes.Add(child);
DataTable dtChild = this.GetData("Select * from TopParent where PId= " + child.Value);
PopulateTreeView(dtChild, int.Parse(child.Value), child);
// child.PopulateOnDemand = true;
child.SelectAction = TreeNodeSelectAction.SelectExpand;
// treeNode.ChildNodes.Add(child);
}
else
{
treeNode.ChildNodes.Add(child);
}
}
//DataSet ds = GetDataSet("select cid,cName from 'tablename where pname='0' and pId='" + strCompantid + "'");
//foreach (DataRow row in ds.Tables[0].Rows)
//{
// TreeNode node = new TreeNode();
// node.Text = row["DependencyName"].ToString();
// node.Value = row["Dependency"].ToString();
// node.PopulateOnDemand = true;
// node.SelectAction = TreeNodeSelectAction.SelectExpand;
// parent.ChildNodes.Add(node);
//}
}
private DataTable GetData(string query)
{
DataTable dt = new DataTable();
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(query))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(dt);
}
}
return dt;
}
}
private void BindRepeaterRight()
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT * FROM TopParent", con))
{
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
sda.Fill(dt);
reaptrright.DataSource = dt;
reaptrright.DataBind();
}
}
}
}
 
Suppose , i have a table in database. I want to bind The unique id and name in nodes and when i click on node , it must show the all data according to that id by expanding the nodes. How to do this.
 
below is my table-
Now Suppose when i click on India (its CID, Cid is qunique for each row ) it must be expand and show 3 child node as UP, HP, Kerala.
 
Please update my answere
Answers (2)
2
Manas Mohapatra

Manas Mohapatra

NA 29.3k 3.3m 8y
Try like below:
  1. DateTime dateTimeObj = DateTime.ParseExact(tbxFromDate.Value, "dd/MM/yyyy", CultureInfo.InvariantCulture);  
  2.   
  3. if (tbxFromDate.Value != "" && dateTimeObj > DateTime.Today)         
  4. {        
  5.        Messagebox.Show("From Date should be earlier or equal To Today Date", MessageHelper.MessageType.Warning);  
  6. }  
 
Accepted
2
Amresh S

Amresh S

NA 528 4.1k 8y
Hi Raja,
 
You have to parse the date value before validation. Use the below code:
  1. DateTime date = DateTime.ParseExact(this.myTextBox.Text, "dd/MM/yyyy"null);  
Here you can send the  text value entered by the user or a value picked up from your datePicker control. The next key thing is to format your Date to be parsed and if time doesn't bother you, pass the "null" value.
 
Hope this helps.
 
Regards,
Amresh S. 
1
Manas Mohapatra

Manas Mohapatra

NA 29.3k 3.3m 8y
What is the value you are getting in tbxFromDate.Value?
0
Raja

Raja

NA 1.7k 45.2k 8y

Manas Mohapatra

Amresh S

Thank You so much!
0
Raja

Raja

NA 1.7k 45.2k 8y

Manas Mohapatra

22/11/2016