PDA

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



jafar007
پنج شنبه 26 شهریور 1388, 17:56 عصر
سلام
من یک سری تکست باکس به صورت runtime اجرا کردم که نام این تکست باکس ها رو از دخل دیتابیس می خونه . که کد های مورد نظر برای ایجاد این تکست باکس ها رو درون pageLoad قرار دادم . که این تکست باکس ها درون یک جدول ساخته می شود. و در ردیف آخر این جدول یک دکمه قرار دادم تا محتوای این تکست باکس ها را درون دیتابیس بریزه.

حالا این تکست باکس ها که به صورت runtime اجرا می شه چطور می تونم محتویاتشونو بدست بیارم . یعنی وقتی دکمه ثبت زده شد چطور اطلاعات درون تکست باکس ها رو بدست بیارم تا درون دیتابیس ثبتشون کنم؟

Behrouz_Rad
پنج شنبه 26 شهریور 1388, 21:51 عصر
TextBox ها رو به صورت Raw HTML (تگ Input) ایجاد کن (امیدوارم که همین کار رو کرده باشی). سپس، با استفاده از Request.Forms، مقادیر رو بخون. این روش یکی از تکنیک های محبوب و بسیار پر کاربرد هست که DNN هم از اون استفاده می کنه.

موفق باشید.

jafar007
پنج شنبه 26 شهریور 1388, 23:58 عصر
من از کد زیر برای اضافه کردن تکست باکس ها استفاده کردم.


SqlConnection con = new SqlConnection("Data Source=xxx\\SQLSERVER;Initial Catalog=CMS01;Persist Security Info=True;User ID=sa;Password=xxxx");
con.Open();
SqlCommand cmd = new SqlCommand("SELECT Field1, Field2, Field3 FROM Table01",con);
SqlDataReader dreader;
dreader = cmd.ExecuteReader();
while (dreader.Read())
{
Label lblWeight = new Label();
lblWeight.ID = dreader[0].ToString();
lblWeight.Text = dreader[1].ToString();

TextBox txtWeight = new TextBox();
txtWeight.ID = dreader[2].ToString();


System.Web.UI.HtmlControls.HtmlTableRow trow = new System.Web.UI.HtmlControls.HtmlTableRow();

System.Web.UI.HtmlControls.HtmlTableCell trowtitle = new System.Web.UI.HtmlControls.HtmlTableCell();
trowtitle.Controls.Add(lblWeight);
trow.Cells.Add(trowtitle);
System.Web.UI.HtmlControls.HtmlTableCell trowTextBox = new System.Web.UI.HtmlControls.HtmlTableCell();
trowTextBox.Controls.Add(txtWeight);
trow.Cells.Add(trowTextBox);

Table1.Rows.Insert(1, trow);
}
dreader.Close();
con.Close();


این کدی بود که آقای کرامتی در کلاس های C# یاد دادند.
البته استفاده از دیتابیس را خودم ایجاد کردم.

با این روش چطور می شه محتوای تکست باکس ها رو پیدا کرد؟

Behrouz_Rad
جمعه 27 شهریور 1388, 00:07 صبح
نمی دونم پست من رو خوندی یا نه چون کاملاً واضح توضیح دادم...
به هر حال..
اضافه کردن داینامیک کنترل ها به صفحه نیاز به کمی کار داره. قبلاً در لینک ذیل مراحل کار رو توضیح دادم:
http://barnamenevis.org/forum/showthread.php?t=91389

به جای روشی که در لینک فوق توضیح داده شده، برای سهولت کار از روشی که در پست اولم گفتم استفاده کن.

موفق باشید.

jafar007
جمعه 27 شهریور 1388, 13:08 عصر
من توضیحات شما را خواندم ولی به ناون روشی که گفتید آشنا نبودم .

روشی که من به کار می برم اشتباه است ؟ یعنی کاربرد عملی ندارد؟

اگر در مورد روش خودتون یک منبع کامل معرفی کنید ممنون میشم. من الان هم دارم اون لینکی را که دادین مطالعه مکنم .
متشکرم

Behrouz_Rad
جمعه 27 شهریور 1388, 13:40 عصر
خیلی ساده ست. Input ها رو در یک متغیر رشته ای بریز و ایجاد کن. البته بهتره که از StringBuilder استفاده کنی.
و هنگام کلیک بر روی دکمه:


NameValueCollection formValues = Request.Form;

حال با یک حلقه ی for در formValues حرکت کن. خاصیت GetKey، نام کنترل هست و خاصیت Get هم مقدار کنترل رو بر میگردونه.

موفق باشید.