PDA

View Full Version : سوال: اجرا نشدن event در stringbuilder



871051
چهارشنبه 07 خرداد 1393, 19:55 عصر
سلام

با کمک stringbuildet بصورت پویا فرم خودم رو که یک صفحه asp است با زبان C#‎‎‎‎‎‎‎‎‎‎‎‎‎ طراحی کردم . در قسمتی از کد یک دکمه طراحی و توسط stringbuilder به برنامه اضافش کردم.
دکمه بر روی صفحه ایجاد شده است . اما زمانیکه روی آن کلیک میکنم event ان اجرا نمی شود.

لطفا راهنمایی کنید.



b.Text = "مشاهده اطلاعات بیشتر و خرید";
b.ID = "button" + i.ToString();
b.CssClass = "rounded1 myHoverButton";

b.Attributes.Add("runat", "server");


b.Click += new EventHandler(b_Click);


////////////////////////////////
StringBuilder yourHTMLstring = new StringBuilder();



using (StringWriter sw = new StringWriter(yourHTMLstring))
{
using (HtmlTextWriter tw = ne
w HtmlTextWriter(sw))
{
b.RenderControl(tw);



}
}



/////////////////////////////////////
protected void b_Click(object sender, EventArgs e)
{
string s = "j";
}

871051
شنبه 10 خرداد 1393, 16:05 عصر
سلام
بجای استفاده از stringbuilder خیلی راحت از معادل آن استفاده کنید

برای افزودن html بصورت پویا:


PId.Controls.Add(new LiteralControl("<div id='div' class='rounded1 div1 div_change1' style=' border: medium ridge #800000; float:right; '>"));


برای افزودن کنترل

PId.Controls.Add(b);

نمونه ای از کد در یک برنامه را برای تفهیم بیشتر قرار میدم.



c = new Label();
c.ID = "lbl" + i.ToString();
c.Text = c.ID.ToString();


yourHTMLstring = new StringBuilder();


/////////////////////////////////////////////////////////////
PId.Controls.Add(new LiteralControl("<div id='div' class='rounded1 div1 div_change1' style=' border: medium ridge #800000; float:right; '>"));
PId.Controls.Add(new LiteralControl("<table Class='label' >"));
PId.Controls.Add(new LiteralControl("<tr>"));



////////////////////////////////////////////////////////ستون اول
PId.Controls.Add(new LiteralControl("<td > <input type='image' Class='img img_changr' runat='server' src='" + img.ImageUrl + "' /></td>"));



/////////////////// ستون دوم
PId.Controls.Add(new LiteralControl("<td style=' border-left:2px red solid; height:30px'>"));
PId.Controls.Add(new LiteralControl("<table>"));
PId.Controls.Add(new LiteralControl("<tr><td colspan='2' class='orange' >" + name + "</td> </tr>"));
PId.Controls.Add(new LiteralControl("<tr> <td align='center' dir='rtl' colspan='2' Height='70px' Width='490px' Font-Names='Tahoma' >" + tozihetekolli + "</td></tr>"));
PId.Controls.Add(new LiteralControl("<tr>"));
PId.Controls.Add(new LiteralControl("<td align='right' dir='rtl' Font-Names='Tahoma'> زمان باقی مانده </td>"));
PId.Controls.Add(new LiteralControl("<td align='right' dir='rtl' Font-Names='Tahoma' ForeColor='#006600' id='time"+i+"' >"));
PId.Controls.Add(c);


PId.Controls.Add(new LiteralControl("</td>")) ;
PId.Controls.Add(new LiteralControl("</tr>"));
...