none
Gridview Kolon Değerini Değiştirmek ? RRS feed

  • Soru

  • Merhaba arkadaşlar, geliştirdiğim uygulamada kullanıcıdan rezervasyon istediği alıyor ve veritabanına kaydediyorum. yönetici kısmında ise bu rezervasyon bilgilerini bir gridview içerisinde getiriyorum, Rezervasyon_Durumu adında bir kolonum var ve bu kolona rezervasyon yapıldığında int 1 değeri yazdırıyorum. 1 = onay bekliyor 2= onaylandı 3= iptal edildi. 

    gridviewda ki bu Rezervasyon Durumunda bu değerleri nasıl gösterebilirim ?  yani kolondaki 1 değerine karşılık onay bekliyor yazsın.

    Bir diğer sorunumda, gridview a eklediğim update işleminde de 2 tane checkbox ım olsun ve yönetici onaylandı yada iptal i tick lesin ve kaydetsin. bu kontrolleri nasıl sağlayabilirim ?

    Devexpress gridview'ı kullanıyorum. Şimdiden Teşekkürler.

    28 Ekim 2012 Pazar 22:39

Yanıtlar

  •   <dxwgv:GridViewDataTextColumn FieldName="LastName" VisibleIndex="2">
    
                <DataItemTemplate>
    
                    <dxe:ASPxLabel ID="lblLastName" runat="server" Text='<%# Eval("LastName") %>'>
    
                    </dxe:ASPxLabel>
    
                    <dxe:ASPxLabel ID="lblCountry" runat="server" Text='<%# Eval("Country") %>'>
    
                    </dxe:ASPxLabel>
    
                </DataItemTemplate>
    
                <CellStyle Wrap="False">
    
                </CellStyle>
    
            </dxwgv:GridViewDataTextColumn>

    <dataitemtemplate> leri gördün mü, adam kolon içine label yerleştirmiş, aynı 1a da bahsettiğim mantığı kullan.

    Bu arada hiç devexpress kullanmadım bilmem ihtiyacım da olmadı ama standart gridview mantığını bildiğim ve devexpress te bu mantıkta komponentler çıkardığı için çevirmek kolay gibi gözüküyor. biraz zorla olmazsa yine yaz buraya.


    "Basitçe açıklayamıyorsan eğer, yeterince anlayamamışsındır." Alb. Einstein
    http://www.tiravoglu.com


    30 Ekim 2012 Salı 01:12
  • 2 checkbox yerine 1 tane dropdown kullansan daha kolay ve mantıklı değil mi,

    <dx:ASPxComboBox runat="server" ID="cmbDurum"  ValueType="System.Int32" Value='<%# Eval("Rezervasyon_Durumu") %>' >
    <Items>
    <dx:ListEditItem Text="onay bekliyor" Value="1" />
    <dx:ListEditItem Text="onaylandı" Value="2" />
    <dx:ListEditItem Text="iptal edildi" Value="3" />
    </Items>
    </dx:ASPxComboBox>


    "Basitçe açıklayamıyorsan eğer, yeterince anlayamamışsındır." Alb. Einstein
    http://www.tiravoglu.com

    • Yanıt Olarak İşaretleyen Samet Gündüz 31 Ekim 2012 Çarşamba 09:52
    31 Ekim 2012 Çarşamba 00:42

Tüm Yanıtlar

  • Selam,

    1a-3 tane label kontrol koyarsın,

    <asp:label id="Label1" runat="server" text="onay bekliyor" visible='<%# Eval("Rezervasyon_Durumu").ToString().Equals("1") %>' />
    <asp:label id="Label2" runat="server" text="onaylandı" visible='<%# Eval("Rezervasyon_Durumu").ToString().Equals("2") %>' />
    <asp:label id="Label3" runat="server" text="iptal edildi" visible='<%# Eval("Rezervasyon_Durumu").ToString().Equals("3") %>' />

    dersin,

    veya

    1b-bu satırı kullanırsın

     <%# Eval("Rezervasyon_Durumu").ToString().Equals("1") ? "onay bekliyor" : Eval("Rezervasyon_Durumu").ToString().Equals("2") ? "onaylandı" : "iptal edildi" %>

    veya


    1c- .cs dosyanın içine bi fonksiyon yazarsın

    public string doner(string gelen)
    {
    string donecek="";
    switch (gelen)
    case "1":
    donecek="onay bekliyor";
    break;
    case "2":
    donecek="onaylandı";
    break;
    case "3":
    donecek="iptal edildi";
    break;
    default:
    donecek="hata";
    break;
    
    return donecek;
    }

    .aspx dosyana da

    <%# doner(Eval("Rezervasyon_Durumu").ToString()) %>

    yazarsın, istersen yazı yerine "<img src=... />" şeklinde resimde gösterebilirsin.

    2. update işlemini gridview üzerinden yaptırıyorsan (yani ekstra kolon ekleyip "edit" linkbutonu nu kendin eklemediysen)


    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { string onay=""; CheckBox onaylandi= (CheckBox)GridView1.Rows[id].FindControl("CheckBox1"); CheckBox iptal= (CheckBox)GridView1.Rows[id].FindControl("CheckBox2"); ... if(onaylandi.Checked) { onay="2"; }

    if(iptal.Checked)
    {
    onay="3";
    }

    ...

    cmd.Parameters.AddWithValue("@Rezervasyon_Durumu", onay);

    ...

    }

    şeklinde yapabilirsin.(checkboxlardan 1'i fazla sanki ama senin mantığın sen bilirsin.)


    "Basitçe açıklayamıyorsan eğer, yeterince anlayamamışsındır." Alb. Einstein

    http://www.tiravoglu.com




    29 Ekim 2012 Pazartesi 01:16
  • Ergin bey yardımınız için öncelikle teşekkür ederim, fakat bir sonuç alamadım. gridview'ın içinemi eklemem gerekiyor bu kodları, eğer öyleyse ayrıştırıcı hatası alıyorum, dışına yazmam gerekiyorsada, çalıştırıyor ancak sonuc doğru değil. 

    Güncelleme işleminde  de, GridView1.Rows işleminde hata veriyor, Rows diye bir değer mevcut değil.
    Nasıl yapmam gerekiyor ? Teşekkürler.

    29 Ekim 2012 Pazartesi 21:28
  • Eval'leri itemtemplate'in içine yazacaksın, hata veriyorsa ekran görüntüsünü paylaş, bakalım.


    "Basitçe açıklayamıyorsan eğer, yeterince anlayamamışsındır." Alb. Einstein
    http://www.tiravoglu.com

    29 Ekim 2012 Pazartesi 23:34
  • devexpress gridine itemtemplate nerden oluşturucam peki hocam ?
    29 Ekim 2012 Pazartesi 23:48
  •   <dxwgv:GridViewDataTextColumn FieldName="LastName" VisibleIndex="2">
    
                <DataItemTemplate>
    
                    <dxe:ASPxLabel ID="lblLastName" runat="server" Text='<%# Eval("LastName") %>'>
    
                    </dxe:ASPxLabel>
    
                    <dxe:ASPxLabel ID="lblCountry" runat="server" Text='<%# Eval("Country") %>'>
    
                    </dxe:ASPxLabel>
    
                </DataItemTemplate>
    
                <CellStyle Wrap="False">
    
                </CellStyle>
    
            </dxwgv:GridViewDataTextColumn>

    <dataitemtemplate> leri gördün mü, adam kolon içine label yerleştirmiş, aynı 1a da bahsettiğim mantığı kullan.

    Bu arada hiç devexpress kullanmadım bilmem ihtiyacım da olmadı ama standart gridview mantığını bildiğim ve devexpress te bu mantıkta komponentler çıkardığı için çevirmek kolay gibi gözüküyor. biraz zorla olmazsa yine yaz buraya.


    "Basitçe açıklayamıyorsan eğer, yeterince anlayamamışsındır." Alb. Einstein
    http://www.tiravoglu.com


    30 Ekim 2012 Salı 01:12
  • Tamamdır hocam, onay bekliyor vs. göstermeyi başardım, fakat güncelleme işleminde ki hata yine aynı. GridView1.Rows[id].FindControl satırında Rows diye bir değer yok. bunu nasıl çözebilirim acaba ?
    30 Ekim 2012 Salı 20:45
  • 2 checkbox yerine 1 tane dropdown kullansan daha kolay ve mantıklı değil mi,

    <dx:ASPxComboBox runat="server" ID="cmbDurum"  ValueType="System.Int32" Value='<%# Eval("Rezervasyon_Durumu") %>' >
    <Items>
    <dx:ListEditItem Text="onay bekliyor" Value="1" />
    <dx:ListEditItem Text="onaylandı" Value="2" />
    <dx:ListEditItem Text="iptal edildi" Value="3" />
    </Items>
    </dx:ASPxComboBox>


    "Basitçe açıklayamıyorsan eğer, yeterince anlayamamışsındır." Alb. Einstein
    http://www.tiravoglu.com

    • Yanıt Olarak İşaretleyen Samet Gündüz 31 Ekim 2012 Çarşamba 09:52
    31 Ekim 2012 Çarşamba 00:42