Merhabalar;

Asp.Net Web Form tabanlı bir sayfada User Control yardımıyla dinamik birden fazla textBox oluşturuluyor. Kullanıcı bu alanlara sayısal integer değer girmektedir. En altta toplam diye başka bir textBox var , problem şu ; kullanıcı istediği textbox a değer girebilmekte , dinamik olarak en alttaki toplam textBox'ına girilen değerlerin toplamını gösterilmesi gerekiyor? Yardımcı olursanız çok sevinirim şimdiden teşekkürler.

soruldu: 15 May '14, 10:07

rulas's gravatar image

rulas
1.2k101329
cevap kabul oranı: 0%

1

Soru sorarken birkaç satır kod da paylaşırsanız daha somut bir örnek üzerinden daha net cevaplar alabilirsiniz. Bu sordugunuz sorunun cevabı "js/jquery ile yapabilirsiniz" dir. Başka cevabı yok bu sorunun. hangi değerler post edilecek, post edilecek degerler mi dinamik olusuyor, ve ya bunların hiçbiri...

(16 May '14, 00:25) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

Eğer sayfanın Postback olması senin için sorun teşkil etmiyorsa aşağıdaki kodları kullanabilirsin.

Aspx sayfana bu kodları ekle. Burda önemli olan nokta AutoPostBack özelliğinin true olmasıdır

 Sayı1=<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" OnTextChanged="TextBox_OnTextChanged"></asp:TextBox><br/>
    Sayı2=<asp:TextBox ID="TextBox2" runat="server" AutoPostBack="True" OnTextChanged="TextBox_OnTextChanged"></asp:TextBox><br/>
    Toplam=<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>

Codebehind kısmınada bu kodu ekle.

protected void TextBox_OnTextChanged(object sender, EventArgs e)
        {
            int sayi1 = 0;
            bool sayi1Kontrol = int.TryParse(TextBox1.Text, out sayi1);

            int sayi2 = 0;
            bool sayi2Kontrol = int.TryParse(TextBox2.Text, out sayi2);

            if (sayi1Kontrol && sayi2Kontrol)
            {
                TextBox3.Text = (sayi1 + sayi2).ToString(CultureInfo.InvariantCulture);
            }
            else
            {
                TextBox3.Text = string.Format("Değerleri kontrol ediniz.");
            }
        }

Eğer sayı1 ve sayı2 integer a parse edilebiliyorsa toplama işlemi yapılır.

Eğer postback olmasın sayfan istiyor isen. jquery ile işimizi halleceğiz. Aspx sayfana aşağıdaki kodu ekle. Jquery ile değer değiştiğinde toplama işlemini yapmaya çalışacağız

Sayı1=<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br/>
    Sayı2=<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox><br/>
    Toplam=<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>

    <script type="text/javascript">
        $(document).ready(function() {
            var input1 = $("#<%=TextBox4.ClientID%>");
            var input2 = $("#<%=TextBox5.ClientID%>");
            var toplam = $("#<%=TextBox6.ClientID%>");

            input1.change(function () {
                if ($.isNumeric(input1.val()) && $.isNumeric(input2.val())) {
                    toplam.val(input1.val() + input2.val());
                }
            });

            input2.change(function () {
                if ($.isNumeric(input1.val()) && $.isNumeric(input2.val())) {
                    toplam.val(parseInt(input1.val()) + parseInt(input2.val()));
                }
            });

        });

Şimdi gelelim dinamik değerleri okuma konusuna. Eğer codebehind daki kontrole ulaşacak isen FindControl metodundan faydalanmalısın. Eğer jquery ile yapacak isen de hepsine aynı class'ı vererek değerleri yakalayabilirsin. Sorunun çözmeye çalış eğer takıldığın nokta olursa daha çok yardımcı olmaya çalışırım.

Faydalı olmuştur umarım. iyi çalışmalar.

permanent link

cevaplandı: 29 May '14, 15:48

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.7k103691
cevap kabul oranı: 28%

değiştirildi: 29 May '14, 15:53

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
×6
×3

Soruldu: 15 May '14, 10:07

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

Son güncelleme: 29 May '14, 15:53

powered by BitNami OSQA