PDA

View Full Version : اضافه کردن سطر به gridview



hamhik
دوشنبه 09 بهمن 1385, 13:33 عصر
با سلام و عرض خسته نباشید.
من توی برنامه ام از یک gridview و textboxاستفاده می کنم حالا اگه بخوام هر چیزی که در textbox مینویسم به gridview یه سطر اضافه کرده و آنچه که در textbox نوشتم رو به سطر جدیدgridview اضافه کنم این کار با چه دستوری انجام می شود؟یعنی ایجاد یک سر به gridview با چه دستوری انجام می شود.
با سپاس فراوان

Behrouz_Rad
دوشنبه 09 بهمن 1385, 15:16 عصر
GridView حتما به یک Data Source نیاز داره.
به نظر میرسه که اطلاعات رو به صورت فیزیکی ذخیره نمی کنی؛ در این حالت:
یک کلاس ایجاد کن.
خواص مورد نظرت رو در اون قرار بده. (مثل: نام، نام خانوادگی و ...)
یک ArrayList برای کلاس ایجاد کن تا در زمان فراخوانی متدی که وظیفه ی اضافه کردن داده ها رو بر عهده داره، این داده ها رو به ArrayList اضافه کنه.
در روال Click دکمه، با یک حلقه ی For Each در سطرهای GridView حرکت کن و مقادیر هر سلول رو بازیابی و از طریق شیء ایجاد شده از کلاس مربوطه، اون رو ذخیره کن.
در پایان نیز مقدار TextBox از طریق شیء کلاس ذخیره میشه.

اگر فقط قصد نمایش اطلاعات رو داری از Repeater استفاده کن.

موفق باشید.

hamhik
سه شنبه 10 بهمن 1385, 00:58 صبح
ببنید خود شما همین سایت رو در نظر بگیرید (البته با aSP.NET می خوام بنویسمش ) می خوام وقتی کاربر سوال خودشو در یک TEXTBOX مطرح می کنه و سپس بر روی دکمه ارسال پست کلیک می کنه, خب با این کار هم می خوام اطلاعات به بانک اطلاعاتی بره و هم از اون جا می خوام روی DATAGRID نمایش داده بشه که در این صورت هر کاربر که می خواد جواب کاربری که سوال رو مطرح کرده است رو بده وقتی در قسمت TEXTBOX جواب رو تایپ می کنه و روی دکمه ارسال پست کلیک می کنه علاوه بر SAVE کردن در بانک اطلاعاتی بیاد یه سطر هم به DATAGRID مان اضافه کند تا آنچه که به عنوان جواب در TEXTBOX نوشته شده بود در این سطر اضافه شده به DATAGRID قرار بگیرد البته توجه کنید که من برای این کار هم از ATLAS استفاده می کنم.
خب احتمالا پیش خودتون بگید که اول در بانک اطلاعاتی بریز و سپس بانک اطلاعاتی رو با DATAGRID نمایش بده ولی با این کار مگه کل صفحه ی من REFRESH نمی شه؟؟ پس نتیجه می گیریم که ATLAS این جا سودی نداشته...پس راه حل چیست؟؟
با تشکر...

Behrouz_Rad
سه شنبه 10 بهمن 1385, 09:09 صبح
خب احتمالا پیش خودتون بگید که اول در بانک اطلاعاتی بریز و سپس بانک اطلاعاتی رو با DATAGRID نمایش بده ولی با این کار مگه کل صفحه ی من REFRESH نمی شه؟؟ پس نتیجه می گیریم که ATLAS این جا سدی نداشته...پس راه حل چیست؟؟
یکی از مشکلاتی که در این سایت وجود داره اینه که منظور کاربر از سوالش اصلا اون چیزی نیست که در متن سوالش میاد!
کاربری در بخش VB.NET در مورد نحوه ی نوشتن در فایل EXE سوال می پرسه و وقتی پاسخش رو دریافت می کنه میگه که من این رو می دونستم اما ....(در این قسمت چیزی مطرح می کنه که به هیچ وجه ربطی به سوال اولیش نداره!!!)
و اما....
شما از ClientCallbacks استفاده کن و یا اگر از NET 1.1. استفاده می کنی به شکل کلاسیک از آژاکس استفاده کن (XML HTTP) و پس از ارسال مقادیر TextBox به سرور، یک فلگ (نماد موفقیت یا عدم موفقیت) از سرور دریافت کن. اگر عمل ثبت در دیتابیس با موفقیت انجام شده بود، با استفاده از جاوا اسکریپت و به صورت پویا، یک سطر به جدول اضافه کن!
می تونی از کدهای تاپیک "AJAX را بدون AJAX تجربه کنید!" کمک بگیری.

موفق باشید.

shahriar.rostami
سه شنبه 17 بهمن 1385, 09:49 صبح
GridView1.RowCreated += new GridViewRowEventHandler(GridView1_RowCreated);

GridView1.DataBind();


void GridView1_RowCreated(object sender, GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.DataRow) {
e.Row.Cells[0].Text = string.Format("{0:#,###}", e.Row.DataItemIndex + 1);
}
//throw new Exception("The method or operation is not implemented.");

}