ورود

View Full Version : سوال: مشکل عجیب در ایجاد منو



khorsandreza
پنج شنبه 06 آبان 1389, 15:34 عصر
سلام
من با استفاده ار CSS منو طراحی میکنم
کد را ببینید


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>

<style type="text/css">
.suckerdiv ul
{
margin: 0;
padding: 0;
list-style-type: none;
width: 99%; /* Width of Menu Items */
height: 23px;
border-bottom: 1px solid C#‎cc;
background-color: #B8D6AA;
}

.suckerdiv ul li{
position: relative;
}
.suckerdiv ul li ul
{
position: absolute;
width: 100%; /*sub menu width*/
top: 0;
visibility: hidden;
height: 23px;
background-color: #B8D6AA;
}
/* Sub level menu links style */
.suckerdiv ul li a
{
display: block;
overflow: auto; /*force hasLayout in IE7 */
color: black;
text-decoration: none;
padding: 1px 5px;
border-bottom: 0;
height: 23px;
background-color: #B8D6AA;
border-style: solid solid none solid;
border-width: 1px;
border-color: #999999;
}
.suckerdiv ul li a:visited{
color: black;
}
.suckerdiv ul li a:hover{
color: black;
background-color: #FFE271;
border-style: outset;
}
.suckerdiv .subfolderstyle{
background: url(images/arrow-list.gif) no-repeat center left;
background-color: #B8D6AA;
}

/* Holly Hack for IE \*/
* html .suckerdiv ul li { float: left; height: 1%; }
* html .suckerdiv ul li a { height: 1%; }
/* End */
.suckerdiv
{
width: 100%;
}
</style>
<script type="text/javascript">
var menuids = ["suckertree1"] //Enter id(s) of SuckerTree UL menus, separated by commas
function buildsubmenus() {
for (var i = 0; i < menuids.length; i++) {
var ultags = document.getElementById(menuids[i]).getElementsByTagName("ul")
for (var t = 0; t < ultags.length; t++) {
ultags[t].parentNode.getElementsByTagName("a")[0].className = "subfolderstyle"
if (ultags[t].parentNode.parentNode.id == menuids[i]) //if this is a first level submenu
ultags[t].style.right = ultags[t].parentNode.offsetWidth + "px" //dynamically position first level submenus to be width of main menu item
else //else if this is a sub level submenu (ul)
ultags[t].style.right = ultags[t - 1].getElementsByTagName("a")[0].offsetWidth + "px" //position menu to the right of menu item that activated it
ultags[t].parentNode.onmouseover = function() {
this.getElementsByTagName("ul")[0].style.display = "block"
}
ultags[t].parentNode.onmouseout = function() {
this.getElementsByTagName("ul")[0].style.display = "none"
}
}
for (var t = ultags.length - 1; t > -1; t--) { //loop through all sub menus again, and use "display:none" to hide menus (to prevent possible page scrollbars
ultags[t].style.visibility = "visible"
ultags[t].style.display = "none"
}
}
}
if (window.addEventListener)
window.addEventListener("load", buildsubmenus, false)
else if (window.attachEvent)
window.attachEvent("onload", buildsubmenus)
function pageLoad() {
}
</script>

</head>
<body dir="rtl">
<div class="suckerdiv" dir="rtl"
style="font-family: Tahoma; font-size: 9pt; width: 200px;">
<ul id="suckertree1" dir="ltr">
<li><a href="#"> کلاس بنز</a></li>
<li><a href="#"> کلاس پژو</a>
<ul>
<li><a href="#"> 405</a></li>
<li><a href="#"> 206</a></li>
<li><a href="#"> 207</a></li>
</ul>
</li>
</ul>
</div>




</body>
</html>

من ای دی مربوط به منو suckertree1 قرار دادم بعد از کامپایل برنامه در VS2008 کدی را به اول آی دی من اضافه میکنه که باعث خطا میشه موقع ایجاد منو این شکل ctl00_suckertree1 میشه من اگر بعد از کامپایل برم در فایل Aspx بصورت دستی تغییر بدم مشکل ایجاد میشه؟

khorsandreza
پنج شنبه 06 آبان 1389, 15:41 عصر
لازم است در مورد این توضیحی بدم که این خطا در فایل مستر پیج اتفاق می افته در حالی که همین تکه برنامه را در یک پروژه دیگر که مستر پیج ندارد استفاده میکنم بدون مشکل انجام میشود

درصورت امکان دوستان این برنامه با مقادیر ctl00_suckertree1 و suckertree1 یکبار تست کنن مشکل مشخص میشود

binyaft
پنج شنبه 06 آبان 1389, 15:46 عصر
اگر بعد از کامپایل برم در فایل Aspx بصورت دستی تغییر بدم مشکل ایجاد میشه؟
مشکلی ایجاد نمیشه

khorsandreza
پنج شنبه 06 آبان 1389, 15:49 عصر
مشکلی ایجاد نمیشه

متاسفانه باز هم کار نکر خطا میگیره یعنی موقع کامپایل تغییر نمی کنه وقتی سایت را فرا خوانی میکنیم مستر پیج خودش تغییراتی ایجاد میکنه بعد بارگذاری میکنه شکل دستور عوض میشه <ul id="ctl00_suckertree1" dir="ltr">

aminghaderi
پنج شنبه 06 آبان 1389, 20:17 عصر
توقع که نداری این همه کد رو کسی بخونه، ببینه مشکل کجاست؟!؟!؟!(شخصا از حوصلم خارجه)
شما کد های .net رو نمی تونی تغیر بدی ، اون کدی که نوشتی مربوط به المنت های خود دات نتی هست (اشیایی که خودتون در برنامه استفاده کردید) و بعد رندر صفحه اتفاق می افته.

موفق باشی.

Keramatifar
شنبه 08 آبان 1389, 00:31 صبح
دوست عزیز
ID المنت های صفحاتی که دارای MasterPage هستند در هنگام اجرا عوض می شوند.
برای رفع این مشکل باید هنگامیکه می خواهید ID المنت را بگیرید یک ClientID هم به آن اضافه کنید.
مثلا برای گرفتن المنت توسط جاوا اسکریپت باید به این شکل عمل کنید:

var sel = document.getElementById('<%= suckertree1.ClientID %>');