PDA

View Full Version : مشكل در پيدا كردن كنترل هاي دايناميك در صفحه توسط جاوااسكريپت



* joodi *
دوشنبه 21 تیر 1389, 11:27 صبح
با سلام
من تعدادي(dropdownlist (server side به صورت دايناميك در صفحه مي سازم . مي خوام option ها رو كه توسط جاوااسكريپت اضافه شده اند ذخيره كنم اما با هر بار postback صفحه options ها از بين مي رن بر روي دكمه ذخيره يك function نوشتم كه فبل از postback ، آيتم ها رو در يك hidden field ذخيره كنم اما تابع javascript نميتونه كنترل هاي دايناميك رو پيدا كنه چي كار بايد بكنم كسي از دوستان مي دونه :

اينم كد:




function ConfirmSave()
{
var counter=document.getElementById("HifCouDrop").value;//tedade dropdownlist ha

if (counter != 0)
{
for (var i=0 ; i<counter ; i++)
{
var DrpOpt=document.getElementById('drp_' + i);//doesnt work
for(i=drp.length-1; i>=0; i--)
{
//do something
}
}
return true;
}
}




ممنون

mohkami
دوشنبه 21 تیر 1389, 11:45 صبح
میشه کد کل صفحتون رو بذارید با ضمیمه کنید؟

* joodi *
دوشنبه 21 تیر 1389, 13:08 عصر
سلام

فقط يك صفحه نيست و صفحات به هم وابسته ان و از طرفي كامل نشده و خطا داره ، ميشه بگيد كدوم قسمت كد رو لازم داريد تا من بزارم

ممنونم

mohkami
دوشنبه 21 تیر 1389, 13:19 عصر
اگه داری با جاوااسکریپت اونارو ایجاد میکنی و در همون صفحه اطلاعاتش رو استفاده میکنی چرا از همون نامی که درست کردیش استفاده نمیکنی؟
کد ایجاد اونارو بذار اینجا ببینیم چی میشه :لبخندساده:

* joodi *
دوشنبه 21 تیر 1389, 18:09 عصر
سلام این کد ایجاد کنترل های داینامیکه که بر اساس تعدادی که قبلا در datatable ذخیره شده بود کنترل می سازه :




protected void Page_PreInit(object sender, EventArgs e)
{
foreach (DataRow row2 in table2.Rows)
{
if (row2["FieldType"] == "DropDownList")
{
for (int l = 0; l < int.Parse(row2["FieldCount"].ToString()); l++)
{
DropDownList newdrp = new DropDownList();
newdrp.ID = "drp_" + l;

HiddenField newhif = new HiddenField();
newhif.ID = "hif_" + l;

PlaceHolder1.Controls.Add(newdrp);
PlaceHolder1.Controls.Add(newhif );

}
}
}

}

mohkami
سه شنبه 22 تیر 1389, 01:25 صبح
با سلام،
من توی Web خیلی Asp کار نکردم ولی C# یجورایی.
ولی از اونجایی که Id ها مقادی string میگیرند آیا نیاز نیست در قسمت زیر l.ToString() داشته باشیم؟


newdrp.ID = "drp_" + l;

* joodi *
سه شنبه 22 تیر 1389, 08:59 صبح
سلام چرا این کار رو هم قبلا امتحان کردم ولی جواب نداده :افسرده:
function جاوااسکریپت پیغام [object HTMLSelectElement] میده :ناراحت:

غیر از این کاری که من دارم می کنم راه دیگه ای به نظرتون نمیرسه که بتونم آیتم های توی dropdownlist ها رو قبل از postback ذخیره کنم ؟

ممنون از کمکتون