PDA

View Full Version : حرفه ای: مشکل در ایجاد تیبل بصورت داینامیک



imohsen
چهارشنبه 14 فروردین 1392, 20:02 عصر
من یک تیبل توسط کد زیر در داخل یک place holder ایجاد کردم که درون خونه هاش یک سری چک باکس وجود داره:


{

MyLINQDataClassesDataContext mdc = new MyLINQDataClassesDataContext();
var p = from x in mdc.TBLfile1s
select x;

var q = from y in mdc.TBLfile1s
where y.fileid == p.Max(x => x.fileid)
select y;
int num = q.First().fileid;
if (num % 2 == 1)
num++;
int m = 0;

num = num / 2;

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);
}



}

مشکلم اینجاست که وقتی می خوام با زدن دکمه تعداد چک باکس های تیک زده شده رو بشماره، نمیشماره!
اصلا وجود هیچ چک باکسی رو نمی فهمه
این درصورتیه که وقتی همون تیبلو بصورت دستی می سازم درست کار می کنه.

چی کار باید بکنم دوستان؟

imohsen
پنج شنبه 15 فروردین 1392, 12:29 عصر
دوستان یه مددی بدید .... لطفا!

amirsajjadi
پنج شنبه 15 فروردین 1392, 15:09 عصر
وقتی از این روش استفاده میکنید اصطلاحا میگن کنترل ها گم شدن. برای حل این مشکل میتونید یا از usercontrol ها استفاده کنید یا از request.form استفاده کنید.

imohsen
جمعه 16 فروردین 1392, 08:49 صبح
دوست عزیز منظورتو درست متوجه نمی شم، میشه یه خورده واضح تر و بیتشر توضیح بدی؟ یا بگی حداقل چی رو تو فروم های خارجی سرچ کنم...
:متعجب:

amirsajjadi
جمعه 16 فروردین 1392, 11:04 صبح
دوست عزیز منظورتو درست متوجه نمی شم، میشه یه خورده واضح تر و بیتشر توضیح بدی؟ یا بگی حداقل چی رو تو فروم های خارجی سرچ کنم...
:متعجب:

اگه با یوزرکنترل ها آشنایی نداری بهتره توی گوگل سرچ کنی USERCONTROL IN ASP.NET.
هنگامی که فرمی برای صفحه ای ارسال میشه تمام اجزای اون فرم توی REQUEST.FORM وجود داره و شما میتونی براساس نام اون کنترل مقدار اون رو از داخل REQUEST.FORM بیرون بکشی.

ahmad156
شنبه 17 فروردین 1392, 08:27 صبح
دوست عزیز
در هر postback تمامی کنترل های داینامیک از بین میرن به خاطر همین باید شما در مراحل اولیه ایجاد صفحه(در توابعی مانند page_preinit یا loadviewstate) دوباره کنترل هاتون رو ایجاد کنین

imohsen
چهارشنبه 21 فروردین 1392, 15:30 عصر
دوست عزیز احمد
من کد ساخت جدول بصورت داینامیک رو توی page_Init گذاشتم
منظورت از page_preinit همون prerender ؟
چون نمیشناستش!

elahe471
چهارشنبه 21 فروردین 1392, 15:52 عصر
منم سر یه پروژه دقیقا همین مشکل رو داشتم شما checkbox دارین من textbox استفاده کرده بودم ، تو یه فرم خالی کدم درست کار میکرد ولی توی MasterPage نمیشناخت ، در نهایت مجبور شدم اون صفحه رو با Master نسازم ، مشکل حل شد
شما هم تست کنید ببینید شاید همین مورد باشه

ahmad156
چهارشنبه 21 فروردین 1392, 17:57 عصر
دوست عزیز احمد
من کد ساخت جدول بصورت داینامیک رو توی page_Init گذاشتم
منظورت از page_preinit همون prerender ؟
چون نمیشناستش!


private void Page_PreInit(object sender, EventArgs e)
{}

amirsajjadi
چهارشنبه 21 فروردین 1392, 22:39 عصر
دوست عزیز احمد
من کد ساخت جدول بصورت داینامیک رو توی page_Init گذاشتم
منظورت از page_preinit همون prerender ؟
چون نمیشناستش!

Page_PreInit رو باید overrides کنید.

Protected Overrides Sub OnPreInit(e As EventArgs)
MyBase.OnPreInit(e)

End Sub

imohsen
چهارشنبه 21 فروردین 1392, 22:43 عصر
تشکر از همه دوستان...
فکر کنم باید دست به دامن جاوااسکریپست بشم

ahmad156
پنج شنبه 22 فروردین 1392, 12:12 عصر
Page_PreInit رو باید overrides کنید.

Protected Overrides Sub OnPreInit(e As EventArgs)
MyBase.OnPreInit(e)

End Sub
دوست عزیز بدون override هم کار میکنه:لبخندساده: