PDA

View Full Version : اشاره دیتاگرید به سطری که تازه درج شده است



niloofar norouzi
چهارشنبه 27 آذر 1387, 00:14 صبح
با سلام
من این عنوان را جستجو کردم ولی آن را پیدا نکردم. شاید در پستی عنوان شده باشد.

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

این کا را می توان با حلقه انجام داد ولی آیا راه دیگری برای این کار وجود دارد؟
با تشکر

smt_414
چهارشنبه 27 آذر 1387, 12:47 عصر
سلام


بعد از عمل درج رکورد


من از دیتاگرید استفاده می کنم نه از دیتا گرید ویودلیل خاصی دارید که از دیتاگرید ویو استفاده نمی کنید


این کد رو ببینید


DataGridTableStyle dg = new DataGridTableStyle();
dg.MappingName = "tablename";
dataGrid1.TableStyles.Add(dg);
//
dg.DataGrid.CurrentRowIndex = i;
موفق باشید

niloofar norouzi
چهارشنبه 27 آذر 1387, 23:40 عصر
با سلام
من از ابتدا با دیتاگرید کار کردم و تمامی کدها راجع به دیتا گرید است

من با استفاده از شیوه ای که شما ذکر کردید، دیتاگرید رو پُر نمی کنم. البته این مطلب مهم نیست.
من با استفاده از حلقه
for
به سطری که تازه درج شده دسترسی پیدا می کنم ولی مطمئناً باید یک راه ساده تر و بهینه تری وجود داشته باشد.
مثل شمارش تعداد سطرهای دیتاگرید که هم می شه با حلقه ها این کار رو انجام داد و هم با استفاده از دو خط کد.

smt_414
پنج شنبه 28 آذر 1387, 14:16 عصر
سلام


من از ابتدا با دیتاگرید کار کردم و تمامی کدها راجع به دیتا گرید است

تغییر به دیتاگرید ویو همونطور که در بخش هم جستجو کردید ، مورد خاصی نداره


من با استفاده از شیوه ای که شما ذکر کردید، دیتاگرید رو پُر نمی کنم
اگه منظورتون اون کد پست دوم
اون تنها تعریف map برای دسترسی به خصوصیات دیتاگرید
مثل تکست هدر ستون ها ، عرض اونها و غیره


من با استفاده از حلقه
for
به سطری که تازه درج شده دسترسی پیدا می کنم
میشه کدی که نوشتید اینجا بزارید

در خط چهارم کد، متغییر i اندیس سطر مورد نظر می باشد

موفق باشید

niloofar norouzi
پنج شنبه 28 آذر 1387, 22:59 عصر
سلام

راستش اصل برنامه به جای راهگشایی گیج کننده است چون باید قسمت هاشو توضیح بدهم و این هم وقت شما رو می گیره و هم مشکلی رو حل نمی کنه

من با حلقه

for

به دنبال سلولی از دیتاگرید می گردم که داده تازه درج شده اونجاست. حالا می تونم به شماره سطر دیتاگرید دسترسی پیدا کنم و اشاره گر رو درست ببرم روی همون سطر. این یک راه حل ساده است ولی کارآ نیست. می خواهم بدانم که نمی شود با یک خط یا دو خط به این جواب رسید.

فرض کنیم که دیتاگرید برنامه من به جای سه ستون که همان فیلدهای جدول هستند داری 10 ستون باشد، آن وقت کار واقعاً با این حلقه های تو در او مشکل می شود.



پیدا کردن تعداد سطرهای دیتاگرید نیز با حلقها امکان پذیر است ولی دو خط کد این مشکل را حل می کند. حتماً برای سوال من هم راه حلی وجود دارد که از شر حلقه ها خلاصی پیدا شود.

smt_414
جمعه 29 آذر 1387, 22:24 عصر
سلام


به دنبال سلولی از دیتاگرید می گردم که داده تازه درج شده اونجاست

فرض کنیم که دیتاگرید برنامه من به جای سه ستون که همان فیلدهای جدول هستند داری 10 ستون باشد

جستجو به صورت سلول به سلول در هر رکورد انجام میشه؟!
آیا سلول خاصی در هر رکورد وجود نداره که جستجو تنها بر اساس اون سلول انجام شه؟!

البته سوییچ کردن به دیتاگرید ویو نباید مسئله ساز بشه
موفق باشید

niloofar norouzi
یک شنبه 01 دی 1387, 11:20 صبح
با سلام


جستجو به صورت سلول به سلول در هر رکورد انجام میشه؟!

برای اینکه هر سه ستون با سه ورودی کاربر مطابقت داشته باشه، بله حتماً باید تمامی این سه سلول در هر ردیف مورد بازبینی قرار بگیرد



آیا سلول خاصی در هر رکورد وجود نداره که جستجو تنها بر اساس اون سلول انجام شه؟!

نه. سلول خاصی وجود نداره.



البته سوییچ کردن به دیتاگرید ویو نباید مسئله ساز بشه



خدایش اینقدر بدبختی کشیدم توی این راه که از تغییر فعلاً استقبال نمی کنم. البته فعلاً.

و اما درخواست من:
من علاوه بر اینکه دوست دارم سر از راز سوال خودم در بیاورم، مایلم کدهایی که در این زمینه راجع به دیتاگرید ویو وجود دارد را نیز بدانم.
ممنون می شوم اگر کدهای مربوط به دیتاگرید ویو را نیز قرر دهید و نحوه تغییر کار از دیتاگرید به دیتاگرید ویو را ذکر کنید. شاید آنقدر هم ترسناک نباشد.

راستی اگر در
codeproject
بخواهم راجع به این موضوع جستجو کنم ، با چه عنوانی این کار را انجام دهم.
با تشکر

smt_414
دوشنبه 02 دی 1387, 23:09 عصر
سلام


مایلم کدهایی که در این زمینه راجع به دیتاگرید ویو وجود دارد را نیز بدانم.

این لینک (http://barnamenevis.org/forum/showthread.php?t=129103) رو ببینید

حقیقتش رو بخواهید تا زمانی که توضیح اجمالی در مورد برنامه ندید پاسخگویی صحیح به مطالب شما مشکل
شاید دلیل شرکت نکردن دوستان در بحث هم همین باشه



راستی اگر در
codeproject
بخواهم راجع به این موضوع جستجو کنم ، با چه عنوانی این کار را انجام دهم.

در حال حاضر ADSL ندارم و با این dial up مسخره هم ،آدم به جایی نمی رسه(خودم اول جستجو کنم و بعد نتیجش رو بگم)
شاید ترکیب این کلمات focus row datagrid یا select row datagrid یا display row datagrid
یا یه چیزی شبیه به این بتونه کمکی کنه

موفق باشید

niloofar norouzi
چهارشنبه 04 دی 1387, 21:29 عصر
سلام

برای پیدا کردن جواب بهتر است سوال مطرح کنیم.
مثلاً:
بعد از عمل درج یا حذف یا ویرایش در بانک آیا رخدادی صدا زده می شود؟
آیا دستوری وجود دارد که محل ویرایش شده را نشان دهد؟
objcommand.ExecuteNonQuery();
چه چیز هایی را بر می گرداند؟

niloofar norouzi
چهارشنبه 04 دی 1387, 21:35 عصر
با سلام
اصل موضوع از این قرار است.
من برای عمل درج از وب سرویس استفاده می کنم.
برای نشان دادن سطرهای این جدول که بر اساس یکی از فیلدهایش به صورت صعودی مرتب است از دیتا گرید استفاده می کنم.
از دیتاگرید ویو استفاده نمی کنم.
فرض کنید کاربر دکمه درج را فشار می دهد . عمل درج انجام می شود. ممکن است سطر تازه درج شده در آخر جدول درج شود، ممکن است در اول جدول درج شود و ممکن است بین سطرهای دیگر جدول درج شود. چون یکی از فیلدهای جدول به صورت صعودی مرتب است.
من برای پیدا کردن سطر تازه درج شده توسط دستورات دیتا گرید به جایی نرسیدم .
حالا می خواهم با استفاده از روشی دیگر این کار را انجام دهم.
می خواهم این تعداد سطر را با دستورات اس کیو ال به دست آورم و همراه دیتا ست برای مشتری بفرستم.
با دانستن شماره سطر یک راست اشاره گر دیتا گرید را ببرم روی این سطر تازه درج شده.
نام این جدولEmployeeTerritiriesاست که متعلق به پایگاه دادهNorthwindاست

smt_414
جمعه 06 دی 1387, 09:52 صبح
سلام

با این توضیحات مسئله واضحتر شد

ببینید درسته؟
"کاربر اطلاعاتی(رکورد) را وارد می کند و اگر کاربر دوباره وارد برنامه شود و درخواست دیدن اطلاعات کند ، اطلاعات واکشی شده در دیتاگرید نشون داده بشه و آخرین رکورد اضافه شده به صورت پیش فرض بعنوان رکوردی که فوکوس روی اون هست انتخاب شه "


نام این جدولEmployeeTerritiriesاست که متعلق به پایگاه دادهNorthwindاست
من این دیتابیس رو ندارم

دو مطلب
جستجو بر اساس چه فیلد و یا فیلدهایی انجام میشه تا رکورد مورد نظر انتخاب شه؟
اگر رکورد مورد نظر در انتهای دیتابیس اضافه شده باشد باید در همان موقعیت(در دیتاگرید) نشون داده شود و یا جای اون فرقی نمی کند؟


احتمالا برای راحتی کار بهتر ه به دیتاگرید ویو چنج کنید
موفق باشید

niloofar norouzi
شنبه 07 دی 1387, 20:09 عصر
سلام
اولا : نام این جدول جزو جدول های پایه اس کیو ال هست. من از اس کیو ال 2000 استفاده می کنم.
ثانیاً: من یک نمونه از سوالم را برایتان در ضمیمه قرار می دهم. در این مثال با یک حلقه به سطر تازه درج شده می رسم. مسلماً حلقه ها کارایی ندارند و من می خواهم از دست این حلقه ها راحتی پیدا کنم.
ثالثاً: اگر شما این جدول را در پایگاه داده تون ندارید با نگاه به کد برنامه من حتماً موضوع سوال من و کاری رو که من انجام دادم رو به دست می آورید.

ممنون