ورود

View Full Version : سوال: مشکل paging در دیتاگرید با داشتن ستون از نوع template



c#_web
جمعه 14 تیر 1387, 00:36 صبح
در برنامه ام در دیتاگرید نیاز دارم که یک یا چند ستون آن از نوع templateباشند.
حالا اگر به این دیتاگرید حالت pagingبدهم ،در بایند کردن دیتاگرید باید ستونهای از نوع template را هم دستی ست کنم.
که در زیر آنها را مینویسم.
حالا اگر مثلاpagesize=5 و حالا در جدولی که این دیتاگرید از آن بایند میشود 6 رکورد وجودداشته باشد، وقتی صفحه لود شده و دیتاگرید بایند میشود ، دیتاگرید 2 صفحه دارد.
اگر روی page2 کلیک کنیم محتویات آخرین رکورد یا رکورد شماره 6 را در صفحه دوم میبینیم.
اما مشکل من اینست که اگر این سطر از دیتاگرید را انتخاب کرده و آنرا حذف کنم ، حذف انجام شده ولی بعد از آن خطای زیر را میدهد.
اما اگر روی لینک دیگری رفته و دوباره وارد این فرم شویم دیگر مشکلی ندارد .
لطفا مرا راهنمایی کنین چه کار کنم؟
dg_pageindex Chang


dg.currentpageindex=e.newpageindex;
session["i"]=e.newpageindex*dg.pagesize
fillgrid();

در داخل fillgrid()


ds=............................;
dg.datasource=ds.tables[0];
dg.databind();
int i=int.parse(session["i"].tostring());
foreach (datagriditem item in dg.items)
{
((linkbutton)item.findcontrol("Id")).text=int.parse(ds.tables[0].rows[i]["id"].tostring()).tostring();
i++;
}

حالا هنگام اجرای برنامه وقتی دکمه delete را میزنیم و در صفحه دوم هستیم ، pageindex=1 است و pagesize=5 و ds.tables[0].rows.count=6
اما به i=6 که میرسد خطای زیر را میدهد.
there is no row in position 6
حالا برای رفع مشکل چه کار کنم؟

c#_web
شنبه 15 تیر 1387, 13:10 عصر
کسی میتونه مرا راهنمایی کنه؟؟ چه شرطی را باید چک کنم؟؟
چون وقتی یک مورد را حذف کنم ، باید به صفحه قبل برود و 5 عنصر داشته باشد و حالا نمیدانم چرا 6 عنصر دارددر دیتاگرید و میخواهد عنصر ششم را پیدا کند.و چون عنصر 6 در دتابیس ندارد پس خطا میدهد.
لطفا مرا راهنمایی کنین چه کار کنم؟؟؟؟
خیلی گیر کرده ام ؟؟؟ احتیاج فوری دارم..