PDA

View Full Version : DataGridView



m0rteza
جمعه 23 شهریور 1386, 14:22 عصر
با سلام
من یک فرم به شکل زیر دارم. وقتی دکمه های در کادر قرمز رو میزنم میتونم بین رکورد هام در textbox ها حرکت کنم. حالا چه کار کنم این حرکت هم زمان در datagridview انجام بشه. به صورتی که علامت در کادر بنفش نشان دهنده رکوردی باشد که در textbox هم هست.
و سوال دیگه ایم که چکار کنم که وقتی روی یک سلول در datagridview کلیک میکنم . محتوایات رکورد آن سلول در textbox ها قرار گیرد . خیلی ممنون.
http://www.arpapic.com/Images/negj.jpg

PC2st
جمعه 23 شهریور 1386, 17:16 عصر
حالا چه کار کنم این حرکت هم زمان در datagridview انجام بشه
اگر دیتاگریدویو رو به یک دیتاست یا دیتاتیبل، وصل کرده اید، text box ها را به همان دیتاست یا دیتاتیبل وصل کنید، تا درصورت تغییر Position (توسط BindingManagerBase)، هم دیتاگریدویو و هم text box ها، به یک رکورد واحد، منتقل شوند.



و سوال دیگه ایم که چکار کنم که وقتی روی یک سلول در datagridview کلیک میکنم . محتوایات رکورد آن سلول در textbox ها قرار گیرد
در اینصورت، بازهم مثل قبل باید عمل کنید، یعنی اینکه دیتاگریدویو و text box ها، به یک منبع داده مشترک، متصل شده باشند.

در مورد متصل کردن (bind شدن) text box ها جستجو کنید، مطالبی پیدا خواهید کرد.

m0rteza
جمعه 23 شهریور 1386, 17:29 عصر
من data grid رو به منبعی وصل نکردم بلکه بعد از هر add/del/edit با قرار دادن dataset جدید در mydatagridview.datasource تونستم datagridview رو در به روز کنم .
خیلی گشتم. ولی چیزی پیدا نکردم. لطفا بیشتر راهنمایی کنید

hdv212
شنبه 24 شهریور 1386, 11:00 صبح
شما میتونی به جای Button گذاشتن و کارای دیگه، از BindingNavigator استفاده کنی و خاصیت DataSource اون رو به DataSet یا DataTable خودت بایند کنی، مثل این :

this.dataNavigator1.DataSource = this.dt;
با فرض اینکه dt آبجکتی از نوع DataTable هست.
کنترل هاتم میتونی به همین آبجکت بایند کنی، اونوقت وقتی به وسیله ی BindingNavigator در میان رکوردها، پیمایش میکنی هم رکوردهای دیتاگریدویو به روز میشه و هم کنترل هات (و هر چیزی که خاصیت مقداری شو به اون آبجکتت بایند کرده باشی)
نمونه ای از بایند کردن خاصیت Text کنترل TextBox به آبجکت dt :

this.txt_writer.DataBindings.Add("Text", this.dt, "writer");
توی این کد، خاصیت Text به فیلد Writer در آبجکت dt بایند میشه و اون رو نشون میده، راستی این کد ها رو میتونی در رویداد load فرمت بنویسی.

سار
شنبه 24 شهریور 1386, 11:08 صبح
آقا حالا که بحث GridView هست یه سوال هم من دارم اگر لطف کنید و جواب بدید ممنون میشم. تو وب یعنی GridViewیی که تو وب استفاده میشه ما یک پراپرتی
DataKeys داریم که معمولن کلید اصلی رو توش مینویسم و با انتخاب هر رکورد در GridView اون هم عوض میشه، من متاسفانه نتونستم چنین چیزی در Windows Form پیدا کنم. ممکنه کمک کنید.

babak23
یک شنبه 25 شهریور 1386, 09:33 صبح
و سوال دیگه ایم که چکار کنم که وقتی روی یک سلول در datagridview کلیک میکنم . محتوایات رکورد آن سلول در textbox ها قرار گیرد . خیلی ممنون.




//SqlConnection objConnection = new SqlConnection("Data Source=IRAN;Initial Catalog=MOJAVEZ;Integrated Security=True");
SqlDataAdapter objDataAdapter = newSqlDataAdapter();
DataSet objDataSet = newDataSet();
CurrencyManager objCurrencyManager;
DataView objDataView;
int @c_admin = int.Parse(this.grdAuthorTitles.CurrentRow.Cells[0].Value.ToString());
//SqlConnection objConnection = new SqlConnection("Data Source=IRAN;Initial Catalog=MOJAVEZ;Integrated Security=True");
objDataAdapter.SelectCommand = newSqlCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.SelectCommand.CommandText = "SELECT * FROM s_admin ";
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
// Open the database connection...
objConnection.Open();
// Fill the DataSet object with data...
objDataAdapter.Fill(objDataSet, "s_admin");
objDataView = newDataView(objDataSet.Tables["s_admin"]);
// textBox1.DataBindings.Add("Text", objDataView, "ac");
// textBox2.DataBindings.Add("Text", objDataView, "re");
objCurrencyManager = (CurrencyManager)(this.BindingContext[objDataView]);
objDataView.Sort = "c_admin";
int intPosition = objDataView.Find(@c_admin);

if (intPosition == -1)
{
// Display a message
// that the record was not found...
// ToolStripStatusLabel1.Text = "Record Not Found";
MessageBox.Show("رکورد مورد نظر پیدا نشد");
}
else
{
// Otherwise display a message that the record
// was found and reposition the CurrencyManager
// to that record...
//ToolStripStatusLabel1.Text = "Record Found";
// MessageBox.Show("record fond");
objCurrencyManager.Position = intPosition;

maskedTextBox1.DataBindings.Add("Text", objDataView, "c_admin"); ;
textBox2.DataBindings.Add("Text", objDataView, "n_admin");
textBox3.DataBindings.Add("Text", objDataView, "f_admin");
textBox4.DataBindings.Add("Text", objDataView, "p_admin");
maskedTextBox1.DataBindings.Clear();
textBox2.DataBindings.Clear();
textBox3.DataBindings.Clear();
textBox4.DataBindings.Clear();

}
objConnection.Close();






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