PDA

View Full Version : ساختن چندین کنترل سمت سرور داینامیک و کنترول رویداد یا handler Event آنها ؟



peyman68_2005
چهارشنبه 04 مرداد 1391, 20:05 عصر
سلام من می خوام یه چیزی شبیه فیس بوک دیزاین میکنم می خوام یکی کامنت بزاره و کاربرای دیگه در موردش نظر بدن و کامنت مرتبط بزارن من همه چیشو دیزاین کردن و handler event هر button مونده که نوشته شه و تو این قسمت مشکل دارم
اینم تصویر یه کامنت :
90230

اینم کد مربوطه که زدم :


System.Web.UI.HtmlControls.HtmlGenericControl dynDiv56 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
Image im = newImage();
im.ImageUrl = "~/images/backk.png"; im.Height = 22; im.Width = 22;
Image im2 = newImage();
im2.ImageUrl = "~/images/tick.png"; im2.Height = 20; im2.Width = 20;
Image im3 = newImage();
im3.ImageUrl = "~/images/add.png"; im3.Height = 20; im3.Width = 20;
LinkButton lb = newLinkButton(); lb.Font.Underline = false;
lb.Text = "ارسال نظر جدید";
Panel pn = newPanel();
TextBox tx = newTextBox();
tx.ID = "tx" + item.code.ToString();
tx.TextMode = TextBoxMode.MultiLine;
Label lbb = newLabel(); lbb.Text = " ";
tx.Height = 100; tx.Width = 320; tx.BorderColor = System.Drawing.Color.Black; tx.BorderStyle = BorderStyle.Groove; tx.BorderWidth = 1;
pn.Controls.Add(tx);
pn.Controls.Add(lbb);
Button btn = newButton();
btn.Text = " ارسال ";
// btn.ID = "Btn_" + item.code.ToString();
btn.CommandArgument = item.code.ToString();
btn.Click += new System.EventHandler(btn_Click);

//btn.Click += (s, r) => { Page.Title = "fffffff"; };
pn.Controls.Add(btn);
StringBuilder str=newStringBuilder ();
str.Append(" <div style='width:95%;text-align:right;margin-right:2.5%;margin-top:15px;margin-bottom:20px;'>"+
" <div style='text-align :right; background-color:InfoText;color:White; height:24px;'> &nbsp;"+
"<asp:Image ID='Image8' runat='server' Height='20px' "+
" ImageUrl='~/images/time.png' Width='20px' />"+
" &nbsp;ایجاد توسط:"+item.username +" در تاریخ و ساعت :"+item.dateTime+" </div> "+
"<div style='text-align :right; background-color:Silver;color:Black;border: 1px groove #808080;'> "+
"<div style='margin-top:10px; text-align:right;font-size:medium;'>"+
"&nbsp;&nbsp;"+RenderControl(im)+
" &nbsp;موضوع : "+item.Titrtext+" "+
"<div style ='font-size:small; margin-top:15px;width:90%; margin-right:7%;margin-bottom:20px; margin-left:2%;border: 1px groove #808080; '>"+
"&nbsp;&nbsp;");
var q3= from T in bank.forums where T.Iscomment=="True" && T.maincode==item.code select T;
foreach (var item2 in q3)
{
Label llbb = newLabel(); llbb.Text = item2.username + ":"; llbb.ForeColor = System.Drawing.Color.BlueViolet;
str.Append(RenderControl(im2) +
RenderControl(llbb) +
" &nbsp;"+item2.comenttext+"<br />");
}
str.Append( "<br />"+
"<br />"+
"&nbsp;&nbsp;"+
RenderControl(im3)+
" &nbsp;"+RenderControl(lb)+
" &nbsp;<br />"+
"<div style='text-align:right;vertical-align:top;margin-right:40px;margin-top:30PX;width:500px;'>"+
" متن<br />"+RenderControl(pn)+

" &nbsp;&nbsp;&nbsp;"+

" </asp:Panel></div>"+
" <br />"+
" <br />"+
" </div>"+
" </div>"+
"</div> "+
"</div>");
dynDiv56.InnerHtml = str.ToString();
dynDiv56.Visible = true;
ADDFroums.Controls.Add(dynDiv56);
}



ممنون میشم کسی کمک کنه !!!

peyman68_2005
چهارشنبه 04 مرداد 1391, 20:50 عصر
فکر نمیکردم مطلت چنان سختی باشه حتی یک نفر هم جواب نده ... خودم فردا جوابشو واسه دوستان میزارم



برنامه نویس خوب هر مساله ای رو میتونه حل کنه :)

aminghaderi
چهارشنبه 04 مرداد 1391, 22:25 عصر
فکر نمیکردم مطلت چنان سختی باشه حتی یک نفر هم جواب نده جواب ندادن ، ارتباطی با سختی یا آسونی صورت مسئله نداره ؟!
باید پاسخگو جواب درست داشته باشه ، که اکثر اوقات برای جواب دادن نیاز به صرف وقت نیست ، سر زبون هست ، فقط کافیه بنویسی ، بعضی اوقات مثل این سئوال شما باید بشینی وقت بزاری ببینی چی بوده و چی می خواد در بیاد؟!
الان من یکی از سوال شما سر در نیاوردم ، که بخوام جواب بدم ، کد ها هم که اینقدر بهم ریخته نوشته شده که نمی شه تشخیص بدی چی بوده و چی می خواد بشه ؟!


برنامه نویس خوب هر مساله ای رو میتونه حل کنه :) البته قبلش کد هایی مرتب و منظم می نویسه که 4 نفر دیگه هم بتونند بخوانند ...:چشمک:


ساختن چندین کنترل سمت سرور داینامیک و کنترول رویداد یا handler Event آنها ؟

این طوری که شما می خواهید نمی شه ، چون هر چیزی اصولی داره و روشی ، خصوصا وقتی دارید بر مبنای چارچوب کاری دات نت کار می کنید.
برای این کار چند روش وجود داشت که من فعلا یکی از اونها که پر کاربرد تر هست و خاطرم هست رو می گم .
استفاده از User Control ها که کار کردن با اونها ، سخت نیست و مدیریت رویداد ها رو هم به طور کامل و حساب شده مدیریت می کند.

پاورقی :
مدیریت رویداها ، خصوصا در حالت همزمان یا synchrony که در Asp.net به PostBack معروف هست ، به این ساده گی هایی که فکر می کنید نیست ؟! حالا به صورت asynchrony می شه یک کارش کرد ، که اون هم بسیار وقت گیر هست ، خصوصا اگر بخواهیم امنیت و سرعت را هم درش رعایت کنیم . (نیاز به مطالعه زیادی داره)

Rohollaes
چهارشنبه 04 مرداد 1391, 22:37 عصر
این کاری که شما دارید انجام میدیو با repeater خیلی تمیزتر و راحت تر میشه پیاده سازی کرد و نیازی به این همه درهم نوشتن نداره ... یه سرچ در مورد nested repeater بزن ؛توی همین تالار هست ... مشکلی بود بفرمایید

peyman68_2005
پنج شنبه 05 مرداد 1391, 15:48 عصر
آقا با همون repeater حل شد .. از همه ممنونم