Merhabalar,

Dropdownlist' den seçilenleri Gridview' e kaydetmek istiyorum. Bunu veri tabanına kaydetmeden yaptırmam lazım. Yani kullanıcı sadece görecek, En son kaydet dediğim zaman Gridview' e ne kadar veri kaydedilmişse for döngüsü içinde kaydedeceğim.

Bunu yapmamın nedeni, kullanıcı drop'tan seçiyor seçiyor ekliyor. ama sonradan kaydet demeden sayfayı kapatıyor veya çıkıyor. ama veritabanına kaydetmiş oluyorum, bu yüzden kaydet butonuna basmadan kayıt olmasın ama droptan seçip eklediklerinide görebilsin.

Bunu nasıl yapabilirim. Tşk.

http://imageshack.us/photo/my-images/825/imagevjv.jpg/

soruldu: 28 Oca '13, 03:47

hakandikmen's gravatar image

hakandikmen
46458
cevap kabul oranı: 0%

değiştirildi: 28 Oca '13, 04:01

CemIkta's gravatar image

CemIkta ♦
19.9k29125190


Daha iyi bir çözüm olabilir, benim önerim static bir liste belirlemek ve buna her defasında secilen elemanı eklemek ve bu listeyi gridview e datasource olarak vermek. Boylece sayfa postback olsa bile listedeki elemanlar uygulama çalıştıgı surece listede kalır. Zaten önizleme yapmak içinde bu yaşam döngüsü yeterlidir.

Default.aspx

<asp:DropDownList ID="DropDownList1" runat="server" 
    onselectedindexchanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true">
    <asp:ListItem Text="deneme1">
    </asp:ListItem>
    <asp:ListItem Text="deneme2">
    </asp:ListItem>
    <asp:ListItem Text="deneme3">
    </asp:ListItem>
    <asp:ListItem Text="deneme4">
    </asp:ListItem>
    <asp:ListItem Text="deneme5">
    </asp:ListItem>
</asp:DropDownList>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>

Default.aspx.cs

public partial class _Default : System.Web.UI.Page
{
    private static List<string> list = new List<string>();

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    // dropdownlist değiştiginde tetiklenen fonksiyon
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        // secilen elemanı al...
        string text = DropDownList1.SelectedItem.Text;
        // secilen elemanı static listeye at
        list.Add(text);
        // listeyi gridview in datasource una ata.
        FillGrid(list);
    }

    private void FillGrid(List<string> list)
    {
        GridView1.DataSource = list;
        GridView1.DataBind();
    }
}

Daha sonrasında da zaten kaydetmek istediginiz zaman grid in datasource unu alarak veri tabanına kayıt yaparsınız.

Not: Kodu test ettim.

permanent link

cevaplandı: 28 Oca '13, 04:12

AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

AliRıza Adıyahşi ♦
7.9k146288
cevap kabul oranı: 44%

değiştirildi: 29 Oca '13, 02:58

ben olsam bir string değer belirler stringbuilder ile ekledikçe apend ile döngüye sokar tüm değerleri bu string değere alırdım, sonra kaydet butonuna bastığında ise tekrar foreach döngüsü ve split kısmı ile kese kese okur ve değerdeki kaydederdim. :)

permanent link

cevaplandı: 28 Oca '13, 03:55

ercet00ilk's gravatar image

ercet00ilk
994435662
cevap kabul oranı: 11%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×158

Soruldu: 28 Oca '13, 03:47

Görüntüleme: 1,961 kez

Son güncelleme: 29 Oca '13, 02:58

powered by BitNami OSQA