Repeater içine müdehale edemiyorum.

Kodla Büyü

nereyegidiyorum

Aktif Üye
Mesajlar
128
Bir repeaterın içinde 1 label, 1 textbox, 1 buton var. ve iller tablosundan ilAdını çekiyorum. istediğim şey şu. hangi ilin yanındaki textboxa bir yazı yazıp butona tıklarsam onun yanındaki labele textboxtaki yazıyı yazsın. yani il idsini kullanarak bi işlem gerekiyor.

Hadi bakalım asp.net de usta kim var!

<asp:Repeater ID="rpDeneme" runat="server" onitemcommand="rpDeneme_ItemCommand">
<ItemTemplate>
<asp:Label ID="lblBilgi" runat="server" Text="Label"></asp:Label>
<br />
<br />
<asp:TextBox ID="txtYazi" runat="server"></asp:TextBox>
<br />
<br />
<asp:Button ID="btnEvet" CommandName="Evet" runat="server" Text="Evet" />
<%#Eval("ilAdi") %>
</ItemTemplate>
</asp:Repeater>
 
hızlıca yolunu yazacam... umarım yararlı olur...

öncelikle


<asp:Button ID="btnEvet" CommandName="Evet" runat="server" Text="Evet" CommandArgument='<%Eval("ilAdi")%>'/>

yukarda bold yazan yeri ekle...

sonra repeater'in itemcomand event 'ına

if(e.Command.Name="Evet")
{
TextBox textB = (TextBox)e.Item.FindControl("txtYazi"); // Basılan butonun yanındaki Textbox
Label lbl = (Label)e.item.FindControl("lblBilgi"); // Basılan butonun yanındaki Label
lbl.text = textB.text // veya ne yazacaksan
string il_adi = e.CommandArgument // ilin adın veya ID lazım ise

}

Yazım hatası olabilir... Netbookta VisualStudio yok kafadan yazdım.
 
protected void rpDeneme_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if(e.CommandName=="Evet")
{
TextBox textB = (TextBox)e.Item.FindControl("txtYazi"); // Basılan butonun yanındaki Textbox
Label lbl = (Label)e.Item.FindControl("lblBilgi"); // Basılan butonun yanındaki Label
lbl.Text = textB.Text; // veya ne yazacaksan
string ilAdi = e.CommandArgument.ToString(); // ilin adın veya ID lazım ise
}
}
şeklinde yaptım hata vermiyor ama çalışmıyor da. e.commandargument hata verdi. sonuna tostring ekledim hata vermedi sonra.
 
aspx. cs. vt ve ekran çıktısını yerleştirdim.
 

Ekli dosyalar

  • Adsız-11.jpg
    Adsız-11.jpg
    142.7 KB · Görüntüleme: 2,234
Hocam, çok fazla vaktim yok. hemen bahsedeceğim kısaca.

1. bir adet daha label ekle. visible=false yap. labelin adını da hiddenlbl yap mesela
2. EVAL kodunu kullanarak hiddenlbl nesnene veritabanından id değerini çek
3. butonunu şu şekilde ayarla

<asp:Button ID="guncellebtn" runat="server" Text="Güncelle" PostBackUrl="~/default.aspx?islem=guncelle" />
4. ardından kod sayfana şu kodları kendine göre düzelterek yaz:

if (Request.QueryString["islem"] == "guncelle")
{

string sorgu;

sorgu = "UPDATE tablo SET sehir=@p1 WHERE id=" + hiddenlbl.Text;
OleDbCommand guncelle = new OleDbCommand(sorgu, vt.baglanti);

guncelle.Parameters.Add("p1", OleDbType.VarChar).Value = label1.text + textbox1.Text;


int calistir = guncelle.ExecuteNonQuery();

}


kodları kendine göre ayarlayacaksın artık. kolay gelsin
 
BBNET
Geri
Üst