Topic: how to make dynamically binary tree which is compatiable to browser
provide code
Last edited by nishithkant@esoft (2009-04-02 01:48:02)
You are not logged in. Please login or register.
Hi, I just released our new video tutorial course on Flash CS4.
Stefan
Killersites.com Web Design Forums » ASP » how to make dynamically binary tree which is compatiable to browser
provide code
Last edited by nishithkant@esoft (2009-04-02 01:48:02)
""If this is not a proper place for this topic plz move the topic""
Hi fr.
I have a problem with binary tree .the code is below ,its working properly in IE but not working in FF or SAFARI .....Opera etc .Can anybody suggest me solution for this .I need quick reply .please copy the code below and test it OR if U have any other solution then plz Provise...........
thanks in advance................
<body>
<style type="text/css"></style>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Style="z-index: 100;
left: 360px; position: absolute; top: 16px" Text="show graph" UseSubmitBehavior="False" />
<asp:Label ID="Label1" runat="server" Text="insert NodeID please???"></asp:Label></div>
</form>
</body>
/////C# code//////////////
public partial class _Default : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString);
int maxlevelval = 0, maxnode = 0;
Bitmap objbitmap;
Size recsize = new Size(95, 45);
Graphics objgraphics;
Font font = new Font(FontFamily.GenericSansSerif, 8);
Pen pen = new Pen(Color.Red, 2);
Brush reccolor = Brushes.BlueViolet;
Brush textcolor = Brushes.White;
string selectText;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
String nodeName = "";
Point lrecpoint, ltextpoint;
Int32 pid = 0, level = 0;
//Int32 NodeID=1;
con.Open();
//NodeID = Int32.Parse(reader.GetSqlValue(reader.GetOrdinal("NodeId")).ToString());
selectText = "";
selectText = "SELECT * FROM Binarytree2 where NodeID=" + TextBox1.Text.Trim();
//if (TextBox1.Text.Trim() == Session["NodeID"].ToString().Trim())
//{
// Response.Write("Match");
//}
//else
//{
// Response.Write("Not Match");
//}
SqlDataReader reader;
using (reader = new SqlCommand(selectText, con).ExecuteReader())
{
// Make sure we have data
while (reader.Read())
{
level = Int32.Parse(reader.GetSqlValue(reader.GetOrdinal("Level")).ToString());
nodeName = reader.GetString(reader.GetOrdinal("NodeName"));
pid = Int32.Parse(reader.GetSqlValue(reader.GetOrdinal("ParentID")).ToString());
break;
}
reader.Close();
}
maxlevelval = level + 2;//4 is for level till we want
maxnode = 8;
Point ppos;
objbitmap = new Bitmap((maxnode) * 100, (maxnode / 4) * 50);
objgraphics = Graphics.FromImage(objbitmap);
objgraphics.SmoothingMode = SmoothingMode.AntiAlias;
ppos = new Point((maxnode) / 4 * 100, 5);
lrecpoint = new Point(ppos.X, ppos.Y);
ltextpoint = new Point(ppos.X + 2, ppos.Y);
Rectangle rect = new Rectangle(lrecpoint, recsize);
objgraphics.DrawRectangle(pen, rect);
objgraphics.FillRectangle(reccolor, rect);
objgraphics.DrawString(nodeName, font, textcolor, ltextpoint);
DrawNode(ppos, pid, nodeName);
Response.Clear();
objbitmap.Save(this.Response.OutputStream, ImageFormat.Jpeg);
objbitmap.Dispose();
objgraphics.Dispose();
con.Close();
}
//private void ZoomImage()
//{
// Image.GetPixelFormatSize=ImagegGetPixelFormatSize.str
public void DrawNode(Point ppos, Int32 pid, String nName)
{
int totalnode = 0, updatevar = 0;
Int32 nodeID = 0, level = 0;
String leftChild = "", rightChild = "", address = "", mobile = "";
Point lchildpos, rchildpos, leftlninitpos, leftlnlastpos, rightlninitpos, rightlnlastpos;
selectText = "";
Point lrecpoint, ltextpoint, rtextpoint, rrecpoint;
selectText = "SELECT NodeID,NodeName,LeftChild, RightChild,Level, ParentID, Address,Mobile FROM Binarytree2 WHERE ParentID = " + pid + "AND NodeName='" + nName + "'";
SqlDataReader reader;
using (reader = new SqlCommand(selectText, con).ExecuteReader())
{
// Make sure we have data
while (reader.Read())
{
nodeID = Int32.Parse(reader.GetSqlValue(reader.GetOrdinal("NodeId")).ToString());
leftChild = reader.GetString(reader.GetOrdinal("LeftChild"));
rightChild = reader.GetString(reader.GetOrdinal("RightChild"));
address = reader.GetString(reader.GetOrdinal("Address"));
mobile = reader.GetString(reader.GetOrdinal("Mobile"));
level = Int32.Parse(reader.GetSqlValue(reader.GetOrdinal("Level")).ToString());
pid = Int32.Parse(reader.GetSqlValue(reader.GetOrdinal("ParentID")).ToString());
break; ;
}
reader.Close();
}
objgraphics.DrawString(mobile, font, textcolor, ppos.X, ppos.Y + 15);
objgraphics.DrawString(address, font, textcolor, ppos.X, ppos.Y + 30);
if (leftChild != "null" && rightChild != "null" && level <= maxlevelval)
{
totalnode = maxnode / 2 + (int)Math.Pow(2, level - maxlevelval + 2);//3 is for level till we want
updatevar = (totalnode) / (int)Math.Pow(2, level - maxlevelval + 2 + 1) * 100;//3 is for level till we want
rchildpos = new Point(ppos.X + updatevar, ppos.Y + 50);
lchildpos = new Point(ppos.X - updatevar, ppos.Y + 75);
lrecpoint = new Point(lchildpos.X, lchildpos.Y);
ltextpoint = new Point(lchildpos.X + 2, lchildpos.Y);
leftlninitpos = new Point(ppos.X + 50, ppos.Y + 45);
leftlnlastpos = new Point(lchildpos.X + 50, lchildpos.Y);
Rectangle lrect = new Rectangle(lrecpoint, recsize);
objgraphics = Graphics.FromImage(objbitmap);
objgraphics.DrawRectangle(pen, lrect);
objgraphics.FillRectangle(reccolor, lrect);
objgraphics.DrawString(leftChild, font, textcolor, ltextpoint);
objgraphics.DrawLine(pen, leftlninitpos, leftlnlastpos);
DrawNode(lchildpos, nodeID, leftChild);
rrecpoint = new Point(rchildpos.X, rchildpos.Y);
rightlninitpos = new Point(ppos.X + 50, ppos.Y + 45);
rightlnlastpos = new Point(rchildpos.X + 50, rchildpos.Y);
rtextpoint = new Point(rchildpos.X + 2, rchildpos.Y);
Rectangle rrect = new Rectangle(rrecpoint, recsize);
objgraphics = Graphics.FromImage(objbitmap);
objgraphics.DrawRectangle(pen, rrect);
objgraphics.FillRectangle(reccolor, rrect);
objgraphics.DrawString(rightChild, font, textcolor, rtextpoint);
objgraphics.DrawLine(pen, rightlninitpos, rightlnlastpos);
DrawNode(rchildpos, nodeID, rightChild);
}
else if (leftChild != "null" && level <= maxlevelval)
{
totalnode = maxnode / 2 + (int)Math.Pow(2, level - maxlevelval + 2);//3 is for level till we want
updatevar = (totalnode) / (int)Math.Pow(2, level - maxlevelval + 2 + 1) * 100;//3 is for level till we want
lchildpos = new Point(ppos.X - updatevar, ppos.Y + 75);
lrecpoint = new Point(lchildpos.X, lchildpos.Y);
ltextpoint = new Point(lchildpos.X + 2, lchildpos.Y);
leftlninitpos = new Point(ppos.X + 50, ppos.Y + 45);
leftlnlastpos = new Point(lchildpos.X + 50, lchildpos.Y);
Rectangle lrect = new Rectangle(lrecpoint, recsize);
objgraphics.DrawRectangle(pen, lrect);
objgraphics.FillRectangle(reccolor, lrect);
objgraphics.DrawString(leftChild, font, textcolor, ltextpoint);
objgraphics.DrawLine(pen, leftlninitpos, leftlnlastpos);
DrawNode(lchildpos, nodeID, leftChild);
}
else if (rightChild != "null" && level <= maxlevelval)
{
totalnode = maxnode / 2 + (int)Math.Pow(2, level - maxlevelval + 2);//4 is for level till we want
updatevar = (totalnode) / (int)Math.Pow(2, level - maxlevelval + 2 + 1) * 100;//4 is for level till we want
rchildpos = new Point(ppos.X + updatevar, ppos.Y + 75);
rrecpoint = new Point(rchildpos.X, rchildpos.Y);
rtextpoint = new Point(rchildpos.X + 2, rchildpos.Y);
rightlninitpos = new Point(ppos.X + 50, ppos.Y + 45);
rightlnlastpos = new Point(rchildpos.X + 50, rchildpos.Y);
Rectangle rrect = new Rectangle(rrecpoint, recsize);
objgraphics.DrawRectangle(pen, rrect);
objgraphics.FillRectangle(reccolor, rrect);
objgraphics.DrawString(rightChild, font, textcolor, rtextpoint);
objgraphics.DrawLine(pen, rightlninitpos, rightlnlastpos);
DrawNode(rchildpos, nodeID, rightChild);
}
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
//con.Close();
}
}
Posts [ 2 ] - Views [ 745 ]
Copyright © 1996-2009 Killersites.com
[ Generated in 0.087 seconds, 9 queries executed ]