تولید شماره ردیف در دیتاگرید ویو
من توی دیتا گرید ویو یه ستون به نام ردیف دارم که قراره وقتی فرم لود میشه ، به ازای نام هر فردی که در دیتاگرید ویو میاد ، شماره ردیف داشته باشه(و مقدار این ستون از بانک نمیاد)(من میخوام بوسیله سی شارپ شماره های ردیف رو تولید کنم )
مثلا اولین نفر ، ردیف شماره 1 باشه ، دومی ردیف شماره 2 و ....
نقل قول: تولید شماره ردیف در دیتاگرید ویو
سلام به دیتاتیبل یک ستون دستی اضاف کنید و مقدار دهی کنید با یک حلقه.
نقل قول: تولید شماره ردیف در دیتاگرید ویو
سلام این رو ببین.
البته شما که نمی خوای از دیتابیس استفاده کنی مشکل داخل اون تاپیک برات پیش نمیاد. همچین اگر شماره هر سطر رو در rowheader قرار بدی بهتر هست
نقل قول: تولید شماره ردیف در دیتاگرید ویو
اگه بخای خودت تولید کنی باید همین که ریکی گفت رو انجام بدی وگرنه میتونی تو بانکت ردیف رو datatypesh رو autonumber کنی و بعد وقتی برنامه رو اجرا کردی یکی یکی اضافه میشه به ردیفت اما اگه بخای پاکنی مثلا ردیف 3 رو دیگه دفعه بعد برنامه رو اجرا کردی دیگه بعد از ردیف 2 ردیف 4 هست و 3 دیگه نداری .
نقل قول: تولید شماره ردیف در دیتاگرید ویو
سلام
تو CellFormatting گریدت این رو بنویس
dataGridView1.Rows[e.RowIndex].Cells[0].Value = e.RowIndex + 1;
نقل قول: تولید شماره ردیف در دیتاگرید ویو
ببینین من دقیقا این کد رو به برنامم اضافه کردم
اشکال کارم کجاست ؟
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
dataGridView1.Rows[e.RowIndex].Cells[0].Value = e.RowIndex + 1 ;
{
نقل قول: تولید شماره ردیف در دیتاگرید ویو
یه ستون اضافه کن و خاصیت AutoIncreament رو برابر True قرار بده!
http://www.c-sharpcorner.com/UploadF...Datatable.aspx
نقل قول: تولید شماره ردیف در دیتاگرید ویو
privatevoid DataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridView.Rows[e.RowIndex].HeaderCell.Value = (e.RowIndex + 1).ToString();
}
نقل قول: تولید شماره ردیف در دیتاگرید ویو
نقل قول:
نوشته شده توسط
mahnaz20
من توی دیتا گرید ویو یه ستون به نام ردیف دارم که قراره وقتی فرم لود میشه ، به ازای نام هر فردی که در دیتاگرید ویو میاد ، شماره ردیف داشته باشه(و مقدار این ستون از بانک نمیاد)(من میخوام بوسیله سی شارپ شماره های ردیف رو تولید کنم )
مثلا اولین نفر ، ردیف شماره 1 باشه ، دومی ردیف شماره 2 و ....
من سوال و مطالبی که دوستان گفتند رو خوندم
- اینکه ما یک ردیف به گرید اضافه کنیم فقط به خاطر شمارش سطر ها کار جالبی نیست!
- اینکه یک فیلد AutoNumber دیتابیس رو نمایش بدیم اصلا خوب نیست به فرض بخوای اطلاعات گرید رو فیلتر کنی اونوقت شمارهات به هم میریزه ...
راه حلی که من به نظرم درسته اینه که از Header هر سطر استفاده بشه و شماره در هدر نوشته بشه من کلاس زیر رو در پروژم مینویسم :
public void AutoNumberDataGridRows(DataGridView dgv)
{
int rowNumber = 1;
foreach (DataGridViewRow row in dgv.Rows)
{
if (row.IsNewRow) continue;
row.HeaderCell.Value = rowNumber.ToString();
rowNumber = rowNumber + 1;
}
}
و این کلاس رو در EVENT مورد نظرم صدا میزنم مثلا میتونید در زمان بایند اطلاعات به گرید شماره گزاری رو هم با کد زیر انجام بدید :
this.AutoNumberDataGridRows(dataGridViewSpesific1) ;
سوالی اگر بود در خدمتم ...
نقل قول: تولید شماره ردیف در دیتاگرید ویو
نقل قول:
نوشته شده توسط
ostovarit
من سوال و مطالبی که دوستان گفتند رو خوندم
- اینکه ما یک ردیف به گرید اضافه کنیم فقط به خاطر شمارش سطر ها کار جالبی نیست!
- اینکه یک فیلد AutoNumber دیتابیس رو نمایش بدیم اصلا خوب نیست به فرض بخوای اطلاعات گرید رو فیلتر کنی اونوقت شمارهات به هم میریزه ...
راه حلی که من به نظرم درسته اینه که از Header هر سطر استفاده بشه و شماره در هدر نوشته بشه من کلاس زیر رو در پروژم مینویسم :
public void AutoNumberDataGridRows(DataGridView dgv)
{
int rowNumber = 1;
foreach (DataGridViewRow row in dgv.Rows)
{
if (row.IsNewRow) continue;
row.HeaderCell.Value = rowNumber.ToString();
rowNumber = rowNumber + 1;
}
}
و این کلاس رو در EVENT مورد نظرم صدا میزنم مثلا میتونید در زمان بایند اطلاعات به گرید شماره گزاری رو هم با کد زیر انجام بدید :
this.AutoNumberDataGridRows(dataGridViewSpesific1) ;
سوالی اگر بود در خدمتم ...
دوست عزیز از کدی که من تو پست 8 گذاشتم استفاده کن احتیاج به این همه کدنویسی هم نیست در ضمن معلوم میشه پست ها رو خوب نخوندی:لبخند:(
موفق باشی
نقل قول: تولید شماره ردیف در دیتاگرید ویو
بابت راهنمایی های همه دوستان ممنونم .
نقل قول: تولید شماره ردیف در دیتاگرید ویو
نقل قول:
نوشته شده توسط
asefy2008
دوست عزیز از کدی که من تو پست 8 گذاشتم استفاده کن احتیاج به این همه کدنویسی هم نیست در ضمن معلوم میشه پست ها رو خوب نخوندی:لبخند:(
موفق باشی
من کد شما رو مجدد تست کردم و به مشکل بر خوردم وقتی از روشی که شما گفتید استفاده کنیم و گرید ویو تعداد ستون های زیادی داشته باشد به طوری که اسکرول بخوره ... شماره گذاری گرید پشت سر هم و تکرار شماره گذاری به صورت بینهایت انجام میگیره! و چون ردیف ها پشت سر هم شماره گذاری میشوند (در تعداد بالا) اعداد با سرعت بالا ظاهر و محو میشوند ... من در چندین فرم کلاسی که نوشته بودم رو پاک کردم و کد شما رو جایگزین کردم اما جواب نداد.
در ایونت های دیگه هم تست کردم ولی همچنان مشکل پابرجاست ... و باز دوباره کد خودم رو جایگزین کردم! ...
نقل قول: تولید شماره ردیف در دیتاگرید ویو
privateDataTable AutoNumberedTable(DataTable SourceTable)
{
DataTable ResultTable = newDataTable();
DataColumn AutoNumberColumn = newDataColumn();
AutoNumberColumn.ColumnName="S.No.";
AutoNumberColumn.DataType = typeof(int);
AutoNumberColumn.AutoIncrement = true;
AutoNumberColumn.AutoIncrementSeed = 1;
AutoNumberColumn.AutoIncrementStep = 1;
ResultTable.Columns.Add(AutoNumberColumn);
ResultTable.Merge(SourceTable);
return ResultTable;
}
نقل قول: تولید شماره ردیف در دیتاگرید ویو
سلام
من فکر کنم اگر ماکزیمم اعداد ستون رو پیدا کنیم و + 1 کنیم درست بشه
select max (field name) from tablename