PDA

View Full Version : سوال: دسترسی به المان های table ساخته شده بصورت داینامیک



imohsen
دوشنبه 28 اسفند 1391, 08:03 صبح
سلام دوستان
من توسط کد زیر یک جدول بصورت داینامیک می سازم که در واقع داخل یک place holder به نام ph1 قرار داره:

Table tbl = new Table();
tbl.ID = "mytbl";

ph1.Controls.Add(tbl);

for (int i = 0; i < num; i++)
{
TableRow tblrow = new TableRow();



for (int j = 0; j < 2; j++)
{
TableCell tblcell = new TableCell();
CheckBox chbx = new CheckBox();
Label lbl = new Label();
Image img = new Image();

var w = from t in mdc.TBLfile1s
where t.fileid == m
select t;
m++;
if (w.Any())
{
chbx.Text = w.First().filename + "<br/>&nbsp;&nbsp;&nbsp;&nbsp;";
chbx.ID = "chb" + w.First().fileid.ToString();

lbl.Text = w.First().fileprice.ToString() + " ريال ";

img.ImageUrl = w.First().fileimg;

tblcell.Controls.Add(chbx);
tblcell.Controls.Add(lbl);
tblcell.Controls.Add(img);

tblrow.Cells.Add(tblcell);

//styles
tbl.CssClass = "tblstyle";
img.CssClass = "imgstyle";
tblcell.CssClass = "1px dashed Black;";
chbx.CssClass = "chbstyle";
img.ImageAlign = ImageAlign.Left;
tblcell.BorderStyle = BorderStyle.Solid;
}
}
tbl.Rows.Add(tblrow);
}

ا
این یه جدول که شامل یک سری محصولات به همراه عکس و قیمتشون میشه، من دکمه ای طراحی کردم که وقتی زده شد بر اساس آی دی چک باکس های تیک خورده شده بره از بانک اطلاعاتی قیمتشو بخونه و جمع بزنه نشون بده.
توسط قطعه کد زیر:

protected void btn_calc_Click(object sender, EventArgs e)
{
MyLINQDataClassesDataContext mdc2 = new MyLINQDataClassesDataContext();
calc = 0;
CheckBox chbtemp;

foreach (Control c in ph1.Controls)
{
if (c is CheckBox)
{

chbtemp = (CheckBox)c;
if (chbtemp.Checked == true)
{
var v = from k in mdc2.TBLfile1s
where k.fileid == Convert.ToInt32(chbtemp.ID.Substring(3))
select k;

calc += Convert.ToInt32(v.First().fileprice);

}

}

}

TextBox5.Text = calc.ToString();
}


حالا مشکل اینجاست که چون جدول بصورت داینامیک و داخل یک place holder ساخته می شه این کد وجود هیچگونه چک باکسی رو درک نمی کنه!!
اگه جدول رو داخل یک panel می ذاشتم مشکلم حل بود، اما متاسفانه جدول داینامیک رو نمیشه داخل پانل ساخت!

imohsen
پنج شنبه 12 اردیبهشت 1392, 23:18 عصر
داداش یکی یه کمکی بکنه کارم گیره!!

ahmad156
شنبه 14 اردیبهشت 1392, 08:25 صبح
دوست عزیز به خاطر این هست که قبل از اینکه event مربوط به دکمه فراخوانی بشه جدول شما از بین رفته در واقع وقتی postback انجام میشه کنترل های داینامیک شما از بین میره.قبلا در موردش بحث شده.
موفق باشین

Farhad1639
شنبه 26 مرداد 1392, 12:25 عصر
سلام

من هم به مشکل این دوست گرامی دچار شدم.میشه لطف کرده دوستان راهنمایی کنن حالا این مشکل رو چطوری حل کرد. با تشکر