PDA

View Full Version : اضافه كردن كنترل به وسيله كد نويسي



gigil_Question
شنبه 12 اردیبهشت 1388, 07:48 صبح
سلام
من ميخوام تعدادي كنترل به صفحه اضافه كنم كه تعدادش زمان اجرا مشخص ميشه.
براي اضافه كرئن كنترل اين كد رو نوشتم:


<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<%
RadioButton R = new RadioButton();
R.ID = "R_1";
Controls.Add(R);
%>
</asp:Content>

ولي اين ارور رو ميده:


Collection was modified; enumeration operation may not execute.


مشكل چيه ؟:متفکر::متفکر::متفکر:

مهدی کرامتی
شنبه 12 اردیبهشت 1388, 09:32 صبح
قرار دادن کد اجرایی در فایل ASPX کار کاملا اشتباهی است. همین کار رو در فایل Code Behind تون انجام بدید.

gigil_Question
شنبه 12 اردیبهشت 1388, 09:42 صبح
سلام
از راهنماييتون ممنون
ولي در فايل Code اين ارور رو ميده:


Control 'R_1' of type 'RadioButton' must be placed inside a form tag with runat=server.





قرار دادن کد اجرایی در فایل ASPX کار کاملا اشتباهی است

ميشه توضيح بديد چرا ؟

Alireza Orumand
شنبه 12 اردیبهشت 1388, 15:56 عصر
سلام
اولا که خوب از مزایای Asp.net جدا بودن codebehined از تگ های html هست.
دوما که شما توی اون یه علامت نمیتونید چند تا درستور اجرا کنید.
سوما اگر کماکان به همون روش میخاید عمل کنید باید از تگ script با زبان c# استفاده کنید.

سلام
از راهنماييتون ممنون
ولي در فايل Code اين ارور رو ميده
باید به مجموعه کنترل های فرم باید اضافه کنید.


RadioButton R = new RadioButton();
R.ID = "R_1";
Page.Form.Controls.Add(R);

کد بالا کار میکنه.
موفق باشید.:بوس:

gigil_Question
شنبه 12 اردیبهشت 1388, 16:15 عصر
سلام
اينو تو رويداد كليك يه Button گذاشتم جواب نداد


RadioButton R = new RadioButton();
R.ID = "R_1";
Page.Form.Controls.Add(R);

اين ارور رو ميده


The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

منظور اين جملتونم متوجه نشدم

دوما که شما توی اون یه علامت نمیتونید چند تا درستور اجرا کنید.
ممنون

حامد مصافی
شنبه 12 اردیبهشت 1388, 16:57 عصر
این کنترل را به یک Container مثل Panel اضافه کنید.

chophe
شنبه 12 اردیبهشت 1388, 20:14 عصر
code behind:



protected void Page_Load(object sender, EventArgs e)
{

for (int i = 0; i < 10; i++)
{
RadioButton R = new RadioButton();
R.Text = "Choice " + i.ToString();
R.ID = "R_" + i.ToString();
PlaceHolder1.Controls.Add(R);
}


}


webpage: (استفاده از ContentPlaceHolder)


<form id="form1" runat="server">
<div>
<asp:PlaceHolder ID="PlaceHolder1" runat="server">


</asp:PlaceHolder>


</div>
</form>