jannati
چهارشنبه 22 شهریور 1385, 12:47 عصر
به نام یکتا هستی بخش مهربان
با سلام به دوستان گرامی
راستش من یک دیتاگرید دارم که میخوام وقتی کاربر روی سطری کلیک کرد ،رنگ اون سطر عوض بشه تا کاربر بدونه کدوم سطر رو کلیک کرده.و وقتی با موس روی دیتاگرید حرکت میکنه یک نوار رنگی همراه موس روی سطرها حرکت میکنه ( دیتاگرید رنگ سطرهاش یک درمیان فرق میکنه )در Datagrid2_ItemDataBound از این کد استفاده میکنم:
if (e.Item.ItemType == ListItemType.Item | e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='Silver'");
e.Item.Attributes.Add("onclick", "this.style.backgroundColor='yellow';");
}
if (e.Item.ItemType == ListItemType.Item)
{
e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#DEDFDE'");
}
else
{
if(e.Item.ItemType != ListItemType.Header)
{
e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#F5F5F5'");
}
حالا این کد مشکلش این بودکه وقتی یک سطر رو کلیک میکنم رنگ سطر زرد میشه.اما بلافاصله به علت رفرش شدن صفحه به حالت اولیه برمیگرده.به همین علت از آجاکس استفاده کردم و تصمیم گرفتم که یک تکس باکس مخفی در صفحه بگذارم که با کلیک روی هر سطر شماره اون سطر در تکس باکس ذخیره بشه و با مقایسه شماره سطر و تکس باکس مشخص بشه که رنگ این سطر باید چی باشه.مثلا اگر روی سطر 3 کلیک شد تکس باکس بشه 3 و اگر این دوتا مساوی بودند در رویدادهای onmouseout و onmouseover رنگ سطر همون زرد بمونه و تغییر نکنه به همین علت کد onclick رو به شکل زیر کردم:
e.Item.Attributes.Add("onclick", "this.style.backgroundColor='yellow';document.forms['Form1'].elements['txt'].value='" + e.Item.Cells[5].Text + "';");
اما مشکل اینه که وقتی کد را به این شکل قرار میدم باز هم دیتا گرید رفرش میشه و همون مشکل قبلی پیش میاد که سطری که کلیک شده رنگش متمایز نمیشه....
ببخشید زیاد شد...کسی میتونه کمک کنه؟
با سلام به دوستان گرامی
راستش من یک دیتاگرید دارم که میخوام وقتی کاربر روی سطری کلیک کرد ،رنگ اون سطر عوض بشه تا کاربر بدونه کدوم سطر رو کلیک کرده.و وقتی با موس روی دیتاگرید حرکت میکنه یک نوار رنگی همراه موس روی سطرها حرکت میکنه ( دیتاگرید رنگ سطرهاش یک درمیان فرق میکنه )در Datagrid2_ItemDataBound از این کد استفاده میکنم:
if (e.Item.ItemType == ListItemType.Item | e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='Silver'");
e.Item.Attributes.Add("onclick", "this.style.backgroundColor='yellow';");
}
if (e.Item.ItemType == ListItemType.Item)
{
e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#DEDFDE'");
}
else
{
if(e.Item.ItemType != ListItemType.Header)
{
e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#F5F5F5'");
}
حالا این کد مشکلش این بودکه وقتی یک سطر رو کلیک میکنم رنگ سطر زرد میشه.اما بلافاصله به علت رفرش شدن صفحه به حالت اولیه برمیگرده.به همین علت از آجاکس استفاده کردم و تصمیم گرفتم که یک تکس باکس مخفی در صفحه بگذارم که با کلیک روی هر سطر شماره اون سطر در تکس باکس ذخیره بشه و با مقایسه شماره سطر و تکس باکس مشخص بشه که رنگ این سطر باید چی باشه.مثلا اگر روی سطر 3 کلیک شد تکس باکس بشه 3 و اگر این دوتا مساوی بودند در رویدادهای onmouseout و onmouseover رنگ سطر همون زرد بمونه و تغییر نکنه به همین علت کد onclick رو به شکل زیر کردم:
e.Item.Attributes.Add("onclick", "this.style.backgroundColor='yellow';document.forms['Form1'].elements['txt'].value='" + e.Item.Cells[5].Text + "';");
اما مشکل اینه که وقتی کد را به این شکل قرار میدم باز هم دیتا گرید رفرش میشه و همون مشکل قبلی پیش میاد که سطری که کلیک شده رنگش متمایز نمیشه....
ببخشید زیاد شد...کسی میتونه کمک کنه؟