PDA

View Full Version : سطر اول ديتاگريد را مي خوام read only بكنم



csharpprogramer88
شنبه 11 اردیبهشت 1389, 13:48 عصر
سلام دوستان چطوري بايد سطر اول گريد را read only كنم بطوري كه ويرايش و حذف روي اين سطر اعمال نشود.
كدي كه خودم نوشتم ولي جواب نداد


dataGridViewX1.Rows[0].ReadOnly = true;

spring69
دوشنبه 13 اردیبهشت 1389, 23:05 عصر
سلام دوستان چطوري بايد سطر اول گريد را read only كنم بطوري كه ويرايش و حذف روي اين سطر اعمال نشود.
كدي كه خودم نوشتم ولي جواب نداد


dataGridViewX1.Rows[0].ReadOnly = true;

سلام.
دوست عزیز من کدتون رو امتحان کردم و برای جلوگیری از ویرایش جواب داد ولی برای حذف، در رویداد UserDeletingRow مربوط به DataGridView این کد رو بنویس:

if (e.Row.Index == 0)
e.Cancel = true;

اگرم برای edit از کد خودت جواب نگرفتی توی رویداد CellBeginEdit این کد رو بنویس:

if (e.Row.Index == 0)
e.Cancel = true;

csharpprogramer88
سه شنبه 14 اردیبهشت 1389, 11:10 صبح
سلام.
دوست عزیز من کدتون رو امتحان کردم و برای جلوگیری از ویرایش جواب داد ولی برای حذف، در رویداد UserDeletingRow مربوط به DataGridView این کد رو بنویس:

if (e.Row.Index == 0)
e.Cancel = true;

اگرم برای edit از کد خودت جواب نگرفتی توی رویداد CellBeginEdit این کد رو بنویس:

if (e.Row.Index == 0)
e.Cancel = true;



دوست من به اين e.Row ايراد ميگيره شما تستش كردي؟

spring69
سه شنبه 14 اردیبهشت 1389, 11:28 صبح
بله تست كردم.
الان به VS دسترسي ندارم.

csharpprogramer88
سه شنبه 14 اردیبهشت 1389, 11:32 صبح
من چطور بايد اجراش كنم روي سيستم من به e.Row گير ميده

spring69
سه شنبه 14 اردیبهشت 1389, 11:36 صبح
كد رو توي رويداد UserDeletingRow نوشتي؟

elahe1364
سه شنبه 14 اردیبهشت 1389, 11:38 صبح
کد درسته
شاید توی UserDeletedRow نوشتید؟

armiin
سه شنبه 14 اردیبهشت 1389, 11:39 صبح
بنده هم امتحان کردم ،جواب میده !
شما از GridView خاصی استفاده نمیکنید ؟

csharpprogramer88
سه شنبه 14 اردیبهشت 1389, 12:14 عصر
از گريد دات نت بار استفاده مي كنم UserDeletingRow يعني چي چيكار بايد بكنم

اَرژنگ
سه شنبه 14 اردیبهشت 1389, 12:15 عصر
چرا به جایه اینکار که کاربر را گیج کنه ردیف اول را به شکل جدا که معلوم باشد برایه تغییر نیست نشان نمیدید؟
اینکه کاربر باید با امتحان به اینکه ردیف اول با بقیه ردیفها به یک جادویی فرق دارد وادار میشه کار یک برنامه‌نویس نیست.
باید صراحتاً اینکه چه خبره برایه کاربر مفهوم باشد.

armiin
سه شنبه 14 اردیبهشت 1389, 12:26 عصر
از گريد دات نت بار استفاده مي كنم UserDeletingRow يعني چي چيكار بايد بكنم
Event (رویداد) دیگه ! تو Properties , GridView !

csharpprogramer88
سه شنبه 14 اردیبهشت 1389, 12:35 عصر
چرا به جایه اینکار که کاربر را گیج کنه ردیف اول را به شکل جدا که معلوم باشد برایه تغییر نیست نشان نمیدید؟
اینکه کاربر باید با امتحان به اینکه ردیف اول با بقیه ردیفها به یک جادویی فرق دارد وادار میشه کار یک برنامه‌نویس نیست.
باید صراحتاً اینکه چه خبره برایه کاربر مفهوم باشد.

دوست من لطف كردي جواب دادي
ولي من برنامه نويس قوي نيستم جرياني كه بخاطر آن اين سوال را پرسيدم از اين قراره :
من چند تكست باكس دارم و پس از اينكه همه آنها در يك گريد ويو نشان داده ميشه و يك كد آرشيو كه كليد اصلي منه كه با هر بار insert كردن يكي به آخرين آي دي اضافه مي كنم و در تكست باكس كد آرشيو مي ريزم.
حالا زماني كه ميخوام اطلاعات را حذف يا ويرايش كنم مجبورم روي گريد كليك كنم كه با اين كار سطر اول گريد (كه اطلاعات دارد)خالي نشون ميده (درحاليكه اطلاعات كد يك در اونجا هست) و كدجديدي كه ميخوام اضافه كنم در سطر اول قرار ميگيره و مقدار اون در ستون اول حالا مشكل خيلي خيلي اساسي من اينه كه سطر اول را نه مي تونم حذف كنم نه ويرايش چون كد جديد جاي اونو مي گيره .ميخوام كد صفر را وارد كنم كه بعنوان سطر اول قرار بگيره حالا اگر حالت بالاكه گفتم پيش اومد مسئله اي ايجاد نكنه
دوست من شايد از نحوه برنامه نويسي من ايراد بگيريد ولي خواهشا كمك كنييد

اَرژنگ
سه شنبه 14 اردیبهشت 1389, 14:06 عصر
دوست من لطف كردي جواب دادي
ولي من برنامه نويس قوي نيستم جرياني كه بخاطر آن اين سوال را پرسيدم از اين قراره :
من چند تكست باكس دارم و پس از اينكه همه آنها در يك گريد ويو نشان داده ميشه و يك كد آرشيو كه كليد اصلي منه كه با هر بار insert كردن يكي به آخرين آي دي اضافه مي كنم و در تكست باكس كد آرشيو مي ريزم.
حالا زماني كه ميخوام اطلاعات را حذف يا ويرايش كنم مجبورم روي گريد كليك كنم كه با اين كار سطر اول گريد (كه اطلاعات دارد)خالي نشون ميده (درحاليكه اطلاعات كد يك در اونجا هست) و كدجديدي كه ميخوام اضافه كنم در سطر اول قرار ميگيره و مقدار اون در ستون اول حالا مشكل خيلي خيلي اساسي من اينه كه سطر اول را نه مي تونم حذف كنم نه ويرايش چون كد جديد جاي اونو مي گيره .ميخوام كد صفر را وارد كنم كه بعنوان سطر اول قرار بگيره حالا اگر حالت بالاكه گفتم پيش اومد مسئله اي ايجاد نكنه
دوست من شايد از نحوه برنامه نويسي من ايراد بگيريد ولي خواهشا كمك كنييد
مثل همیشه ایراد به روش است، روش خوب و بد مال شما و یا من نیست.
همیشه هرکی میتونه روشش را عوض کنه، گفتن اینکه روش درست نیست ایراد به کار کسی نیست، فقط اینکه اشکالی وجود دارد به نظر آوردن است که از روشهایه بهتر استفاده کنند.به شما هیچ ایرادی نیست، فقط همینکه متوجه بشید و به دنبال روش درست برید هدف اصلی بود.


تنها چیزی که قوی بودن برنامه نویس را نشان میده این است که کار پیچیده را ساده میکنه و پیاده میکنه.

چیزی که توضیح دادید روشی است که برایه حل یک مسعله بخصوص استفاده میکنید.حالا وجود داتاگرید، تکست باکس و خرده ریزیها را فراموش کنید. به اصل موضوع توجه کنید، مشکل اصلی وابستگی منطق کار به به این است که در سطر اول گرید ویو چیه. اگر روش کار را یک جوری تغییر بدید که این وابستگی وجود نداشته باشد برنامه درگیر اینکه به سطر اول گرید ویو چی هست و یا نیست نمیرقصه.
نمایش و ویرایش داده‌ها را از روشی که ذخیره‌شان میکنه سوا کنید (اسماً به این برنامه‌نویسیه لایه‌ای گفته میشه).

در کوتاه مدت حتی اگر کارتان با ثابت کردن رو اول داتاگرید راه بیافته برایه دراز مدت حتماً به روشهایی که نمایش و منطق ذخیره کردن داد‌ه‌ها را به شکل لایه‌ای پیاهد میکنند نگاه بندازید.

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

اَرژنگ
سه شنبه 14 اردیبهشت 1389, 15:22 عصر
حداقل برایه برایه شروع، یک مثال ساده است که فقط ایده را برسانه :
http://barnamenevis.org/forum/showpost.php?p=952137&postcount=32

spring69
سه شنبه 14 اردیبهشت 1389, 16:06 عصر
حداقل برایه برایه شروع، یک مثال ساده است که فقط ایده را برسانه :
http://barnamenevis.org/forum/showpost.php?p=952137&postcount=32
به نظر میرسه لینک برنامتون توی اون پست از کار افتاده.
دانلود نمیشه.

اَرژنگ
چهارشنبه 15 اردیبهشت 1389, 17:27 عصر
به نظر میرسه لینک برنامتون توی اون پست از کار افتاده.
دانلود نمیشه.

یکبار دیگر امتحان کنید، اگر نشد همینجا دوباره پستش کنم (برایه من جواب داد ولی نمیخوام بدانه دلیل همه جا پخشش کنم).

spring69
چهارشنبه 15 اردیبهشت 1389, 17:31 عصر
یکبار دیگر امتحان کنید، اگر نشد همینجا دوباره پستش کنم (برایه من جواب داد ولی نمیخوام بدانه دلیل همه جا پخشش کنم).
بله الان دانلود شد.
ممنون.