PDA

View Full Version : سوال: جلوگیری از تکرار نودهای treeview با هر بار کلیک روی نودها



adineh67
سه شنبه 06 دی 1390, 21:57 عصر
سلام
من یه treeview دارم که نودهاش بصورت داینامیک ایجاد می شه در زمان اجرا با کلیک روی یک نود فرزندهای اون نودو می سازه و اگه دوباره روی همون نود کلیک کنم این روند ادامه پیدا می کنه می دونم که واسه جلوگیری از اینکار باید از!ispostback استفاده کنم ولی نمی دونم چطوری باید اینکارو انجام بدم
لطفا با توجه به کدی که نوشتم راهنماییم کنین ممنون از همگی


protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
int d=TreeView1.SelectedNode.Depth;
switch (d)
{
case 0:
foreach (var item in cnrl.selectdateymarshiv(TreeView1.SelectedNode.Val ue))
{

TreeNode node = new TreeNode();
string month1 = item.ToString();
if (month1.Length == 1)
{
month1 = "0" + month1;
}
node.Text = item.ToString();
node.Value = item.ToString();
node.SelectAction = TreeNodeSelectAction.SelectExpand;
TreeView1.SelectedNode.ChildNodes.Add(node);

}
break;
case 1:
string str=TreeView1.SelectedNode.Value;
int s=str.LastIndexOf('/');
string strm=str.Substring(s+1);
string stry=str.Substring(0,4);
foreach (var item in cnrl.selectdateymdarshiv(stry,strm))
{
TreeNode node = new TreeNode();
string month = item.Month.ToString();
if (month.Length == 1)
{
month = "0" + month;
}
string day = item.Day.ToString();
if (day.Length == 1)
{
day = "0" + day;
}
node.Text = item.Year.ToString() + "/" + month +"/"+ day;
node.Value = item.Year.ToString() + "/" + month +"/"+ day;
node.SelectAction = TreeNodeSelectAction.SelectExpand;
TreeView1.SelectedNode.ChildNodes.Add(node);
}
break;
case 2:
string str2=TreeView1.SelectedNode.Value;
str2=str2.Replace("/", "-");
string id = null, namechar = null;
cnrl.selectdateidnamearshiv(str2, out namechar, out id);
Label3.Visible = true;
Image1.Visible = true;
TextBox22.Visible = true;
LinkButton1.Visible = true;
Label3.Text = namechar;
if (id != null)
Image1.ImageUrl = "~/CharacterWeek/Img/" + id +".jpg";
else
Image1.ImageUrl ="~/images/5.jpg";
Image1.ImageAlign = ImageAlign.Middle;
try
{
System.IO.StreamReader strart = new System.IO.StreamReader(MapPath("~/CharacterWeek/Txt/") + id + ".txt");
TextBox22.Text = strart.ReadToEnd();
strart.Close();
strart.Dispose();
}
catch
{
}
break;
}
}

hamid_shrk
چهارشنبه 07 دی 1390, 09:14 صبح
سلام ، تو پیج لودتون چی نوشتید؟

adineh67
چهارشنبه 07 دی 1390, 09:51 صبح
سلام اینا کدهای توی پیج لودمه

if (!IsPostBack)
{

foreach (var item in cnrl.selectdatearshiv())
{
TreeNode node = new TreeNode();
node.Text = "آرشیو سال" + item;
node.Value = item.ToString();
node.SelectAction = TreeNodeSelectAction.SelectExpand;
TreeView1.Nodes.Add(node);
}

}
واسه نودهای سطح اولم مشکلی پیش نمیاد مشکل توی نودهای سطح دوم و سومن چون اونا موقع کلیک روی نودهای سطح اول (که در پیج لود ایجاد شدن )بوجود میان و باید تو رویدادselectednodechange
treeview باشن

hamid_shrk
چهارشنبه 07 دی 1390, 10:38 صبح
تریس کن پروژتون رو ، قاعدتا نباید این مشکل پیش بیاد.

adineh67
چهارشنبه 07 دی 1390, 11:41 صبح
می دونم که با ispostback مشکلم حل میشه ولی نمی دونم چطوری باید تو این قسمت ازش استفاده کنم