PDA

View Full Version : به دست آوردن ID یک کنترل داینامیک



rasti_web
سه شنبه 02 بهمن 1386, 11:24 صبح
چطور میتوان ID یک کنترل که به صورت داینامیک ایجاد میشود را از طریق کد جاوا در قسمت Client به دست آورد ؟

mahdi_farhani
سه شنبه 02 بهمن 1386, 12:00 عصر
به نظر من یه آرایه در جاوا تعریف کن ، پس از ایجاد هر کنترل به این آرایه ID رو اضافه کن

rasti_web
چهارشنبه 03 بهمن 1386, 10:15 صبح
ببینین من دو تا فریم دارم . در فریم اول به تعدادی که از یک جدول میخوانم DropDownList داینامیک ایجاد میکنم که Value هر آیتم آنها URL صفحه ای است که میخواهم در فریم دوم آن صفحه باز شود . موقع ایجاد هر DropDownList اتریبیوت OnChange را به آن Add میکنم .


DropDownList myDDL = new DropDownList();
myDDL.ID= ("ddlDynamic" + cellcount);
string DDLID = myDDL.ID.ToString().Trim();
//myDDL.Width=100;
myDDL.Font.Name="Tahoma";
myDDL.Font.Size=8;
myDDL.Attributes.Add("onChange","javascript:return goPage("+ DDLID +")");

تابع goPage در قسمت Client به اینصورت است:



<script language="javascript">
function goPage(myDDL)
{
var myPage=document.getElementById(myDDL).value;
if(myPage=="menu.aspx")
{
window.parent.location.href=myPage;
}
else
{
window.parent.document.frames['frm2'].location.href=myPage;
window.parent.document.frames['frm2'].focus();
}
}
</script>

مشکل اینجاست که با کلیک آیتم های DropDownList صفحه مورد نظر را در فریم پایین باز نمیکند.به دست اوردن ID کنترل DropDownList که به صورت داینامیک ایجاد شده در تابع gopage چگونه است؟

M-Gheibi
چهارشنبه 03 بهمن 1386, 10:36 صبح
احیاناً این منظورتون نیست

myDDL.Attributes.Add("onChange","javascript:return goPage("+ myDDL.ClientID +")");

rasti_web
چهارشنبه 03 بهمن 1386, 11:12 صبح
من کد را اصلاح کردم ولی باز هم خطا میده :


DropDownList myDDL = new DropDownList();
myDDL.ID= ("ddlDynamic" + cellcount);
string DDLID = myDDL.ID.ToString().Trim();
//myDDL.Width=100;
myDDL.Font.Name="Tahoma";
myDDL.Font.Size=8;
myDDL.Attributes.Add("onChange","javascript:return goPage("+ myDDL.ClientID+")");

کد بالا را در قسمت pageload صفحه نوشته شده است . مشکل کجا میتونه باشه؟

mahdi_farhani
چهارشنبه 03 بهمن 1386, 12:03 عصر
کدتو با این جایگزین کن ، Single Qute یادت رفته

myDDL.Attributes.Add("onChange","javascript:return goPage('"+ myDDL.ClientID+"')");

M-Gheibi
چهارشنبه 03 بهمن 1386, 17:13 عصر
احتمالاً با همون ' حل میشه