Forum

c# da datagridviewt...
 
Bildirimler
Hepsini Temizle

c# da datagridviewtextbox kolonuna dinamik button ekleme

4 Yazılar
2 Üyeler
0 Reactions
1,766 Görüntüleme
(@inanodabasi)
Gönderiler: 130
Estimable Member
Konu başlatıcı
 

iyi gunler....problemim i datagridtextbox hucresinin text alaninin sag kismina gelecek sekilde yerlestirdigim buttonun dinamik olarak
,alt satirlara otomatikmen yerlesme sorunu….alt satirlardada o butonun ayni
sekilde yerlesmesini nasil saglarim?simdiden ilginize
tskler..

 

 
Gönderildi : 17/10/2011 14:00

(@HuseyinYildirim)
Gönderiler: 19
Eminent Member
 

Tablo yapını bilmiyorum ama bunu 2 yolla yaparsın.

1- datagrid'in autogenerateclomuns değerini false yaparsın ve colonları tek tek <columns> etiketi altına yazarsın. buton için aşağıdaki kodları yazarsın.

 <asp:ButtonField HeaderText="Kolon adı" DataTextField="sdsd" CommandName="olaylar" />

bu buton için eventini kullanmak içinse datagrid'in rowcommand eventini kullanabilirsin.

2-  dinamik oluşturmak için datagridin rowdatabound eventi kullanarak aşağıdaki gibi örnek gibi yapabilirsin.

    protected void kayitlar_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow) // hücrenin tipini sorgulamak için headere buton koymamak için
        {
            Button butoncuk = new Button(); //dinamik olarak yarattık
            butoncuk.Text = "Buton yazısı"//buton üstündeki yazı
            butoncuk.CommandName = "sil"//datagrid rowcommandda kullanacağın commandname
            butoncuk.CommandArgument = "deneme"//commandname değeri
            e.Row.Cells[1].Controls.Add(butoncuk); // burada ise o hücreye bu kontrolü ekliyorsun
        }
    }

 

 

 
Gönderildi : 19/10/2011 15:04

(@inanodabasi)
Gönderiler: 130
Estimable Member
Konu başlatıcı
 

sorunu su sekilde cozdum arkadaslar,eminimki cogunuzun bu koda ihtiyaci olacak gunun birinde ...cunku bu kodlari nedense hic kimse paylasmiyor......hepinize kolay gelsin....

 private void cellButton_Click(object sender, EventArgs e)

        {

            frmselectitems frmselect1 = new frmselectitems(this, "select [MALZEMEID],[MALZEMEKOD]", " [ITEMSCARD]", "[MALZEMEKOD]");

            frmselect1.ShowDialog();

            int satirsayisi = dgvsatisfatura.Rows.Count;

            //

            //{

            // dgvsatisfatura.Rows.Add();

            for (int i = 0; i < satirsayisi-1; i++)

            {

                

                    dgvsatisfatura.Rows[i].Cells[0].Tag = Selectitemsid;

                    if (dgvsatisfatura.CurrentCell.Tag == dgvsatisfatura.Rows[i].Cells[0].Tag)

                   {

                    dgvsatisfatura.Rows[i].Cells[0].Value = Selectitemvalue;

                    dgvsatisfatura.Rows[i].Cells[1].Value = Selectitemvalue1;

                   

                    dgvsatisfatura.Rows[i].Cells[3].Value = Convert.ToString(Selectitemvalue2);

                    dgvsatisfatura.Rows[i].Cells[4].Value = Convert.ToInt32(dgvsatisfatura.Rows[i].Cells[3].Value) * Convert.ToInt32(dgvsatisfatura.Rows[i].Cells[2].Value);

                   }

                    

                   

            }

        }

      

        private void dgvsatisfatura_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)

        {

          

            if (e.ColumnIndex == 0)

            {  

               

                    System.Windows.Forms.Button cellButton = new System.Windows.Forms.Button();

                   

                    cellButton.Tag = e.RowIndex;

                    cellButton.Text = "...";

                    cellButton.Width = 22;

                    cellButton.Click += new EventHandler(cellButton_Click);

                    dgvsatisfatura.Controls.Add(cellButton);

              

                    Rectangle cell = this.dgvsatisfatura.GetCellDisplayRectangle(0, e.RowIndex, true);

               

                    cellButton.Location = new Point(cell.Right - cellButton.Width, cell.Top);

                

            }

              

                  

              

               

        } 

 
Gönderildi : 01/11/2011 17:49

(@inanodabasi)
Gönderiler: 130
Estimable Member
Konu başlatıcı
 

not:datagridview hucresine manuel button yerlestirmenize gerek yok...bu kod zaten o buttonu olusturuyor...sadece hangi kolonun satirlarinda olmasi lazim,onu belirtmeniz lazim ben ilk kolona yerlestirdim.....

 
Gönderildi : 01/11/2011 17:54

Paylaş: