PDA

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



masoud60
شنبه 23 دی 1391, 22:14 عصر
سلام

بصورت دینامیک چطور میشه کنترل هایی رو به فرم اضافه کنم.
مثلا روی button کلیک می کنم یه کنترل اضافه بشه



------------------------
http://www.kohan-co.net

amirzandi
شنبه 23 دی 1391, 22:25 عصر
button b = new button();
b.text = "button";
this.controls.add(b);

ma1246
شنبه 23 دی 1391, 22:47 عصر
دوست عزیز اطلاعات سئوالتو سعی کن کامل تر کنی مثلا با چه زبانی :

VB 6.0
Dim MyButton As CommandButton
Set MyButton = Me.Controls.Add("vb.commandbutton", "BtnName")

MyButton.Left = 100
MyButton.Top = 100
MyButton.Width = 2000
MyButton.Height = 1000
MyButton.Visible = True
MyButton.Caption = "New Button"
-------------------------------------------
Delphi
Var
MyButton:TBitbtn;
begin
MyButton := TBitbtn.Create(self);
With MyButon Do
Begin
Left := 100;
Top := 100;
Width := 200;
Caption := 'New Button';
End;
End;
------------------------------------
VB.Net
Dim MyButton As New Button
MyButton.Top = 100
MyButton.Left = 100
MyButton.Width = 110
MyButton.Height = 40
Me.Controls.Add( MyButton)
----------------------------------------------------------------
Java :
MyButton = New (Button) ;
MyButton.Setleft := 100;
.
.
.

myazdani
شنبه 23 دی 1391, 22:57 عصر
button b = new button();
b.text = "button";
this.controls.add(b);

سلام

با اجازه از amirzandi (http://barnamenevis.org/member.php?199599-amirzandi)

روالی رو که کنترل رو به فرم اضافه می کنه حتما باید تو رویداد فرم لود فراخوانی بشه ور گر نه با postback شدن صفحه کنترل اضافه شده ناپدید میشه و این موضوع بدیهی هست

موفق باشید

masoud60
شنبه 23 دی 1391, 23:03 عصر
دوست عزیز اطلاعات سئوالتو سعی کن کامل تر کنی مثلا با چه زبانی :
.

زبان vb.net یا C#‎.net فرقی نمیکنه

ممنون از جوابتون.
این روش رو امتحان کردم خطای زیر رو داد

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


-------------------------
http://www.kohan-co.net

masoud60
شنبه 23 دی 1391, 23:10 عصر
روالی رو که کنترل رو به فرم اضافه می کنه حتما باید تو رویداد فرم لود فراخوانی بشه ور گر نه با postback شدن صفحه کنترل اضافه شده ناپدید میشه و این موضوع بدیهی هست

موفق باشید

وقتی این کد رو داخل page_init نوشتم خطا نداد ولی
من نمیخوام و نمیتونم تو Load این کار رو بکنم.من میخوام با توجه به مشخصاتی که از کاربر می گیرم button رو به صفحه اضافه کنم



---------------------------
http://www.kohan-co.net

myazdani
شنبه 23 دی 1391, 23:13 عصر
کنترل جدید رو باید داخل سرور کنترل add کنید . یعنی داخل هر کنترلی هست تو صفحه aspx تون یه runat=server اضافه کنید و یه Id بهش بدید .

masoud60
شنبه 23 دی 1391, 23:23 عصر
کنترل جدید رو باید داخل سرور کنترل add کنید . یعنی داخل هر کنترلی هست تو صفحه aspx تون یه runat=server اضافه کنید و یه Id بهش بدید .

در این حالت خطا نداد ولی وقتی روی button کلیک می کنم می پره


Button b = new Button();
b.Text = "button";
b.ID = "1";
PlaceHolder1.Controls.Add(b);



---------------------------
http://www.kohan-co.net

myazdani
شنبه 23 دی 1391, 23:42 عصر
به خاطر post back شدن صفحه اس

پست شماره 4 رو با دقت بخونین

باید برنامه تون رو طوری تغییر بدید که روال مربوطه رو بتونید تو form load فراخوانی کنید

masoud60
یک شنبه 24 دی 1391, 00:26 صبح
به خاطر post back شدن صفحه اس

پست شماره 4 رو با دقت بخونین

باید برنامه تون رو طوری تغییر بدید که روال مربوطه رو بتونید تو form load فراخوانی کنید

اگر پیشنهادی دارید. لطفا بفرمائید من که هیچی به ذهنم نمیرسه

saeed31641
یک شنبه 24 دی 1391, 14:52 عصر
من یه صفحه طارحی کردم کلا بصورت داینامیک .دقیقا مشکلتو بگو تا بهت بگم چیکار کنی .البته پست بالای دوستان درست گفتن ولی بهترین روش استفاده از کلاس که خودت طراحی کنی البته برای زمانی است که شی داینامیک زیاد داری.

masoud60
یک شنبه 24 دی 1391, 16:33 عصر
من میخوام وقتی روی یک button کلیک می کنه یدونه llinkbutton به صفحه اضافه بشه (مثلا به placeholder)


-----------------
http://www.kohan-co.net

masoud60
سه شنبه 03 بهمن 1391, 13:33 عصر
در این تاپیک راه حل نهایی رو توضیح دادم

http://barnamenevis.org/showthread.php?378624-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%B3%D8%AA%D9%88%D9%86%D9%87%D8%A7%DB%8C-%DB%8C%DA%A9-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%DA%A9%D8%B3%D9%84-%D8%A8%D8%B5%D9%88%D8%B1%D8%AA-%D9%84%DB%8C%D9%86%DA%A9&p=1674271

-----------------------------------
http://www.kohan-co.net

mRizvandi
سه شنبه 03 بهمن 1391, 14:46 عصر
یه وقتهایی بهترین روش ، ساده ترین روشه، به جای اینکه خودت رو درگیر اد کردن کنترل داینامیک کنی، خوب همون کنترل رو بذار، خاصیت Visibleرو false کن هر زمان که نیاز داشتی Visible رو true کن.
نیازی هم به این همه درگیری فنی نیست! البته اگر درست متوجه منظورت شده باشم.

masoud60
سه شنبه 03 بهمن 1391, 15:22 عصر
یه وقتهایی بهترین روش ، ساده ترین روشه، به جای اینکه خودت رو درگیر اد کردن کنترل داینامیک کنی، خوب همون کنترل رو بذار، خاصیت Visibleرو false کن هر زمان که نیاز داشتی Visible رو true کن.
نیازی هم به این همه درگیری فنی نیست! البته اگر درست متوجه منظورت شده باشم.

اگر تعداد لینکهایی که قراره به صفحه اضافه بشه مشخص بود روشی که شما گفتید بهترین روش بود