imohsen
دوشنبه 28 اسفند 1391, 09: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/> ";
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 می ذاشتم مشکلم حل بود، اما متاسفانه جدول داینامیک رو نمیشه داخل پانل ساخت!
من توسط کد زیر یک جدول بصورت داینامیک می سازم که در واقع داخل یک 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/> ";
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 می ذاشتم مشکلم حل بود، اما متاسفانه جدول داینامیک رو نمیشه داخل پانل ساخت!