PDA

View Full Version : بدست اوردن آي دي سطر قبلي و بعدي در گريدويو



SAMARE
دوشنبه 11 مرداد 1389, 15:09 عصر
سلام دوستان من ميخواستم ببينم چطور ميشه اي دي سطر قبلي و سطر بعدي سطر جاري در گريدويو رو بدست اورد ؟؟؟

MoslemMaleki
دوشنبه 11 مرداد 1389, 15:48 عصر
سلام عزیزم
در گریدویو شما برای بدسن آوردن اطلاعات داخلی از کد زیر باید استفاده کنید:


Dim NAME As TYPE = TryCast(GRID.Rows(Index).FindControl("NAMEOF"), TYPE)


در کد بالا، NAME نامی که برای متغییر شیء درنظر گرفته میشه. GRID نام شیء گریدویو و TYPE نوع شیء است(نوع شئء مانند Label یا Textbox)
NAMEOF نام کنترل در گریدویو هست.

Mostafa_Dindar
دوشنبه 11 مرداد 1389, 19:10 عصر
سلام دوستان من ميخواستم ببينم چطور ميشه اي دي سطر قبلي و سطر بعدي سطر جاري در گريدويو رو بدست اورد ؟؟؟

سوال شما گنگ هست .
کجا میخواین دسترسی داشته باشید ؟ چون غیر از DetailsView و FormView همه کنترل های نمایش داده در هر لحظه چند رکورد رو نشون میدن .

اگر در Row_Command میخواهید دسترسی داشته باشید . همانجا که Index رو بدست میارید , یکی به اون اضافه کنید , ردیف Index + 1 رو بازیابی کنید .


موفق باشید

SAMARE
دوشنبه 11 مرداد 1389, 23:12 عصر
ببینید دوست عزیز من یه گرید دارم که اطلاعاتم رو نشون میده در هر سطر گرید من دو دکمه وجود داره up و down
که با زدن دکمه up باید سطری که انتخاب شده بالای سطر قبلی و با زدن دکمه down سطر جاری باید پایین سطر بعدی قرار بگیره که البته این جابجایی توسط فیلد ای دی در دیتابیس صورت میگیره برای همین من باید آی دی سطر قبلی و بعدی سطر جاری رو بدست بیارم !!!

SAMARE
سه شنبه 12 مرداد 1389, 00:07 صبح
سوال شما گنگ هست .
کجا میخواین دسترسی داشته باشید ؟ چون غیر از DetailsView و FormView همه کنترل های نمایش داده در هر لحظه چند رکورد رو نشون میدن .

اگر در Row_Command میخواهید دسترسی داشته باشید . همانجا که Index رو بدست میارید , یکی به اون اضافه کنید , ردیف Index + 1 رو بازیابی کنید .


موفق باشید

مشکل همین جاست !!!
این راه حل شما زمانی جواب میده که هیچ رکوردی از دیتابیس حذف نشده باشه ولی باید این رو در نظر گرفت که ممکنه اطلاعاتی از دیتابیس حذف شده باشن اونوقت قاعدتا آی دی های رکورد ها دیگه پشت سر هم نیستند !!!

Mostafa_Dindar
سه شنبه 12 مرداد 1389, 09:29 صبح
مشکل همین جاست !!!
این راه حل شما زمانی جواب میده که هیچ رکوردی از دیتابیس حذف نشده باشه ولی باید این رو در نظر گرفت که ممکنه اطلاعاتی از دیتابیس حذف شده باشن اونوقت قاعدتا آی دی های رکورد ها دیگه پشت سر هم نیستند !!!

عزیز من , Index یعنی شماره اندیس رکورد جاری در صفحه جاری ولی شناسه جدول باDataKeys[index].Value بدست میاد .

که این دو مورد با هم متفاوتند . پس هیچ مشکلی بوجود نمیاد . اگر هنوز ملتفت نشدی این قطعه کد رو با دقت مطالعه کن :

//In GridView RowCommand Evens:
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridView1.Rows[index];
//If we have more than one DataKeys ( ItemId is the field that is visbile = false and myGridView.DatakeyName = Itemid)
int ItemId = Convert.ToInt32(GridView1.DataKeys[index].Values["ItemId"]);
//else
int ItemId = Convert.ToInt32(GridView1.DataKeys[index].Value);

موفق باشی

SAMARE
سه شنبه 12 مرداد 1389, 10:12 صبح
دوست عزيز روي اين قسمت ( Dim index As Integer = Convert.ToInt32(e.CommandArgument))ارور زير رو ميده :Input string was not in a correct format.من كد شما رو به vb تبديل كردم!!!

SAMARE
سه شنبه 12 مرداد 1389, 10:14 صبح
دوست عزيز من نميدونم CommandArgument دكمه ها رو برابر با چي بايد قرار بدم؟؟؟

Mostafa_Dindar
سه شنبه 12 مرداد 1389, 10:21 صبح
دوست عزيز روي اين قسمت ( Dim index As Integer = Convert.ToInt32(e.CommandArgument))ارور زير رو ميده :Input string was not in a correct format.من كد شما رو به vb تبديل كردم!!!


دوست عزيز من نميدونم CommandArgument دكمه ها رو برابر با چي بايد قرار بدم؟؟؟

اگر حتی یک ذره هم دقت میکردی دوباره پست نمیدادی . پست شماره 6 من رو با دقت بیشتری مطالعه کن

SAMARE
سه شنبه 12 مرداد 1389, 10:45 صبح
Dim btn As Button = CType(e.CommandSource, Button)
Dim gvRow As GridViewRow = btn.BindingContainer 'Getting current row to get index
Dim ID as Integer =GShowSinger.DataKeys(gvRow.RowIndex)(0) 'Getting current row to get ID



من از اين كد استفاده كردم !!!