Konuyu görüntüle
IUCODERS FORUM > Programlama > .NET > asp.net yardım
Yazar
engineer58


avatar

Kayıt: 16.03.2006
02.04.2009-11:45 #58556
Merhaba arkadaşlar üzerine çalıştığım proje de veritabanındaki kayıtları listeleyip her bir kayıt için bu kayıtların yanına sil ve değiştir butonu koymam lazım. Butonları dinamik olarak yerleştiriyorum ama ilgili butonun click olayında hangi kayıt için sil veya değiştir olayını çalıştıracağımı tespit edemiyorum.
Mesela bir kişi sil butonuna tıkladığında ben kod tarafında hangi kaydın silineceğini nasıl tespit edeceğim.





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
02.04.2009-12:01 #58557
Bir DataGridView 'e 'Guncelle' ve 'Sil' butonları ekledikten sonra.

Eğer her kayıt için 'ID' diye bir anahtar olduğunu varsayarsak aşağıdakine benzer şekilde güncelleme veya silme yapabilirsin.


private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {

            if (e.RowIndex < 0) return;
           
            if (dataGridView1.Columns[e.ColumnIndex] == dataGridView1.Columns["Guncelle"])
            {
                int ID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["ID"].Value.ToString().Trim());
                BaskiTakip kayit = new BaskiTakip();
                kayit.ID = ID;
                kayit.KayitAl(kayit.ID);
                
                BaskiKaydiGoruntule gor = new BaskiKaydiGoruntule(kayit);
                gor.ShowDialog();
                dataGridView1.DataSource = Baglanti.TabloSorgula(soncumle);
            }
            if (dataGridView1.Columns[e.ColumnIndex] == dataGridView1.Columns["Sil"])
            {
                int ID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["ID"].Value.ToString().Trim());
                if(MessageBox.Show(ID + " Nolu Kaydi Silmek İstediğinizde Eminmisiniz", "Eminmisiniz", MessageBoxButtons.OKCancel).ToString()=="OK")
                    BaskiTakip.sil(ID);
                dataGridView1.DataSource = Baglanti.TabloSorgula(soncumle);
            }
            
        }






The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
02.04.2009-12:03 #58558
Eğer gridview üzerinde güncelleme yapmak istersen

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex < 0) return;
            if (dataGridView1.Columns[e.ColumnIndex] == dataGridView1.Columns["Guncelle"])
            {
                int ID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["ID"].Value.ToString().Trim());
                string FirmAdi = dataGridView1.Rows[e.RowIndex].Cells["FirmaAdi"].Value.ToString().Trim();
                string Telefon = dataGridView1.Rows[e.RowIndex].Cells["Telefon"].Value.ToString().Trim();
                string Adres = dataGridView1.Rows[e.RowIndex].Cells["Adres"].Value.ToString().Trim();
                string email = dataGridView1.Rows[e.RowIndex].Cells["email"].Value.ToString().Trim();
                if(FirmAdi==string.Empty){
                    MessageBox.Show("Firma Adı Boş Geçilemez");
                    dataGridView1.DataSource = Baglanti.TabloSorgula("SELECT * FROM Musteri;");
                    dataGridView1.Columns["ID"].ReadOnly = true;
                    return;
                        
                }
                try
                {
                   Baglanti.SorguGonder("UPDATE Musteri SET FirmaAdi ='" + FirmAdi + "', Telefon = '" + Telefon +
                        "', Adres = '" + Adres + "', email = '" + email + "' WHERE ID=" + ID + ";");

                }
                catch (Exception ex)
                {
                    MessageBox.Show("İşlemde Hata Gerçekleşti." + ex.ToString());
                    return;
                }
                MessageBox.Show(FirmAdi + " Adlı Firmanın Kaydı Güncellendi.");
            }
            
        }






The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
02.04.2009-12:05 #58559
pardon bunlar c# form içinmişbiggrin. asp.net de de benzer şekildedir umarım.





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
engineer58


avatar

Kayıt: 16.03.2006
02.04.2009-12:11 #58560
İlgilendiğin için teşekkür ederim ama ben gridview fln kullanmadım keşke önce aklıma gelseydi. Ben data readera aldım verileri sonra her kayıt için table a row ekledim daha sonra her kayıtın sütun değerleri için cell ekledikten sonra ilgili kaydın yanına sil ve değiştir butonu koydum. inş en baştan data sete fln dönmeme gerek kalmaz





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
02.04.2009-12:18 #58562
engineer58 yazdi
 
İlgilendiğin için teşekkür ederim ama ben gridview fln kullanmadım keşke önce aklıma gelseydi. Ben data readera aldım verileri sonra her kayıt için table a row ekledim daha sonra her kayıtın sütun değerleri için cell ekledikten sonra ilgili kaydın yanına sil ve değiştir butonu koydum. inş en baştan data sete fln dönmeme gerek kalmaz


buton seni bir sayfaya yönlendirse. Sonra o sayfaya verileri parametre olarak göndersen ve orada güncelleme yapıp geri dönsen olabilir belki ama büyük güvenlik açığı bence.





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
hazakli


avatar
Istanbul
Kayıt: 19.01.2007
02.04.2009-14:03 #58563
Ben de gridview nesnesini kullanmayı tavsiye ederim. Aşağıda örnek bir kod yazdım. Buna benzer şekilde istediğin komutları çalıştırabilirsin.

HTML içinde:
<asp:GridView .... >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" Text="Sil" CommandName="KOMUTADI" CommandArgument='<%#Eval("ID").ToString() %>' ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

Kod içinde:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName = "KOMUTADI")
{
string id = e.CommandArgument.ToString();
.....
.....
}
}






Yazar
engineer58


avatar

Kayıt: 16.03.2006
02.04.2009-15:21 #58564
Hepinize teşekkür ederim arkadaşlar sorunu çözdüm butonun click eventini kullanmak yerine oncommand kullandım ayrıca sil ve güncelle işlemlerinin ikisi için aynı eventi çağırıyorum artık çok güzel oldu hugshugshugs





Yazar
watthana


avatar
uzayli
Kayıt: 02.02.2007
03.04.2009-01:39 #58585
Benim de buna benzer bir sorum var,ayrı baslık acmak ıstemedım...

Veri tabanında cektigim kayıtların türüne göre yanına otomatik olarak radiobuton ve ya checkbox ve ya baska bir yapı eklemek istiyorum.
yani tür=1 ise radiobuton,tür=2 ise checkbox koysun misal olarak.
nasıl yapabilirim bunu?

roseroserose





ASIKSAN YARE,
ALDANMA AGYARE...

Yazar
watthana


avatar
uzayli
Kayıt: 02.02.2007
03.04.2009-17:12 #58595
yoq mu yaw bir yardım eli...cryingcryingcrying





ASIKSAN YARE,
ALDANMA AGYARE...

Yazar
hazakli


avatar
Istanbul
Kayıt: 19.01.2007
03.04.2009-17:54 #58596
watthana yazdi
 
Benim de buna benzer bir sorum var,ayrı baslık acmak ıstemedım...

Veri tabanında cektigim kayıtların türüne göre yanına otomatik olarak radiobuton ve ya checkbox ve ya baska bir yapı eklemek istiyorum.
yani tür=1 ise radiobuton,tür=2 ise checkbox koysun misal olarak.
nasıl yapabilirim bunu?

roseroserose




gridview nesnesi ile yapabilirsin bu işlemi.

HTML kısmında:
<asp:GridView .... >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%FONKSIYONADI(Eval("ALAN_ADI").ToString())%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

Kod kısmında da:
yukardaki fonksiyonun içerğini yazacaksın.

public string FONKSIYONADI(string PARAMETRE)
{
switch (PARAMETRE)
{
case "1": return ..... break;
case "2": return ..... break;
case "3": return ..... break;
.....
}
}







Yazar
watthana


avatar
uzayli
Kayıt: 02.02.2007
03.04.2009-18:04 #58597
benim dondurmek istediğim orda direk RadioButon ve checkbox ve ya ne gelcekse o yapı.
bir int ve ya string deger degil...





ASIKSAN YARE,
ALDANMA AGYARE...

Yazar
offman


avatar
Kayseri
Kayıt: 20.01.2006
03.04.2009-18:48 #58598
aspx sayfası
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:GridView ID="grdItems" runat="server" AutoGenerateColumns="False" 
            OnRowDataBound="grdItems_RowDataBound" CellPadding="4" ForeColor="#333333" 
            GridLines="None">
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#EFF3FB" />
            <Columns>
            <asp:TemplateField HeaderText="Type">
                    <ItemTemplate>
                     
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Data">
                    <ItemTemplate>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        <asp:Label ID="lblName" runat="server"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <EditRowStyle BackColor="#2461BF" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>
    
    </div>
    </form>
</body>
</html>


aspx.cs sayfası
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page 
{
    private enum Type  { Type1 = 0, Type2 = 1};
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
            this.Load_Data();
    }

    private void Load_Data()
    {
        List<MyTable> arrList = new List<MyTable>();
        for (int i = 0; i < 10; i++)
        {
            MyTable oItem = new MyTable(i%2, "İucoders v1 ne durumda?");
            arrList.Add(oItem);
        }
        this.grdItems.DataSource = arrList;
        this.grdItems.DataBind();
    }
    protected void grdItems_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            MyTable oItem = (MyTable)e.Row.DataItem;
            Label lblName = e.Row.FindControl("lblName") as Label;
            lblName.Text = oItem.Name;
            if (oItem.Type == Convert.ToInt32(Type.Type1))
            {
                Literal chcBox = new Literal();
                chcBox.ID = "chcBox";
                chcBox.Text = String.Format("<input id={0}Radio1{1}{0}  name={0}R1{0} type={0}radio{0} value={0}{2}{0} />", """, e.Row.RowIndex, oItem.Name.Substring(0, 8));
                e.Row.Cells[0].Controls.Add(chcBox);
            }
            else 
            {
                CheckBox chcBox = new CheckBox();
                chcBox.ID = "chcBox";
                chcBox.Text = oItem.Name.Substring(0,8);
                e.Row.Cells[0].Controls.Add(chcBox);
            }
        }
    }
}
public class MyTable
{
    public MyTable(int _type, string _name)
    {
        Type = _type;
        Name = _name;
    }
    public int Type;
    public string Name;
}


Ufak bir senaryo geliştirdim seninkine yakın veriyi database den cekmiyorda random uretior olayı gorebilmen için. Sonra gride bind ediorus ve gridin rowdatabound eventinden istediğimis type değişkeninin duurumuna gore sayfaya checkbox veya radiobutton koyuyoruz.
Checkbox da sorun yok ama eğer orada asp.net RadioButton classının bir instance'ını GroupName attributune ne verirsen ver (Sabit olması kaydı ile bile)alıp gride eklersen grid render edilirken RadioButton un GroupName attributu render aşamasında random generic edilio. Bu da onu RadiButton lıkdan çıkartıyor bunu aşmak için orada html radibutton'ı kullanrak bir işlem gerçekleştirdim.

Muhtemelen o radioButton ın check olup olmadığını nasıl belirlerim asp.net tarafında die soruyrosun.
this.grdItems.Rows[n].FindControl("chcBox");
Bu sana bir literal dondercek bunun textinde eğer checked="checked" die bir text varsa o radio check olmus demektir.İyi çalışamlar.





331. KSD
*.NET DEVELOPER




Yazar
offman


avatar
Kayseri
Kayıt: 20.01.2006
03.04.2009-18:50 #58599
""" bu kısım asp.cs de iucoders in textleri gosterirken yapdığı işlemler sonucu bu hale gelmiş aslında burası bosluklu yascam bakalım yiyecekmi " " seklinde olması gerekior aradaki bosluklar yok.





331. KSD
*.NET DEVELOPER




Yazar
offman


avatar
Kayseri
Kayıt: 20.01.2006
03.04.2009-18:52 #58600
offman yazdi
 
""" bu kısım asp.cs de iucoders in textleri gosterirken yapdığı işlemler sonucu bu hale gelmiş aslında burası bosluklu yascam bakalım yiyecekmi " " seklinde olması gerekior aradaki bosluklar yok.


O da yemedi "" karakterleri arasında ters slash olcak .





331. KSD
*.NET DEVELOPER




1 2
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb