Şimdi Ara

Datalist Icinde TextChanged Kullanimi ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir (1 Mobil) - 2 Masaüstü1 Mobil
5 sn
3
Cevap
0
Favori
387
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaslar. Yapmakta oldugum bir okul yonetim sisteminde, guncelleme yapmak isterken hata aliyorum.

    DataList1 icinde DataList2 kullanarak textchanged ile guncelleme yapmak istiyorum. Fakat su hatayi aliyorum

    Collection was modified; enumeration operation may not execute.

    Bu islem icin kullandigim kod soyle :

    <asp:DataList ID="DataList2" runat="server" RepeatDirection="Horizontal">
    <ItemTemplate>

    <asp:LinkButton ID="Label7" runat="server" Text='<%# Eval("ExamID") %>' ForeColor="Black" Visible="False"></asp:LinkButton>

    <asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("Exam") %>' Width="18px" AutoPostBack="True" ontextchanged="TextBox2_TextChanged"></asp:TextBox>

    </ItemTemplate>
    </asp:DataList>

    Burdaki DataList2, DataList1'in icinde yer aliyor.

    protected void TextBox2_TextChanged(object sender, EventArgs e)
    {
    foreach (DataListItem dli in DataList1.Items)
    {
    DataList DataList2 = (DataList)dli.FindControl("DataList2");

    TextBox TextBox2 = (TextBox)DataList2.FindControl("TextBox2");
    LinkButton Label7 = (LinkButton)DataList2.FindControl("Label7");

    SqlCommand cmdupdate = DBTools.Komut("update Exams set Exam=@Exam where ExamID=@ExamID");

    cmdupdate.Parameters.AddWithValue("@Exam", Convert.ToInt32(TextBox2));
    cmdupdate.Parameters.AddWithValue("@ExamID", Convert.ToInt32(Label7));

    try
    {
    cmdupdate.Connection.Open();
    cmdupdate.ExecuteNonQuery();
    ExamDoldur();
    cmdupdate.Connection.Close();
    }
    catch (Exception)
    {

    throw;
    }
    }
    }


    veritabani ise
    ExamID int
    Exam smallint

    Yardimci olabilerseniz buyuk bir bolumu bitmis olacak. Tesekkur ederim.



    < Bu mesaj bu kişi tarafından değiştirildi stylemania -- 14 Eylül 2015; 15:47:29 >







  • Foreachle icinde dondugunuz nesneyi modify edemezsiniz. For dongusu kullanin

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Kaygerya ilgilendigin icin tesekkur ederim. Farkli bir sekilde sorunu cozdum.
    O hatanin sebebi method mus. ExamDoldur(); u parantezin disina atarak sorunu cozdum.

    Ilgilenenler icin :

    foreach (DataListItem dl1 in DataList1.Items)
    {
    if (dl1.ItemType == ListItemType.Item || dl1.ItemType == ListItemType.AlternatingItem)
    {
    DataList DataList2 = (DataList)dl1.FindControl("DataList2");
    if (DataList2 != null)
    {
    foreach (DataListItem dl2i in DataList2.Items)
    {

    TextBox txtbox = (TextBox)dl2i.FindControl("TextBox2");
    Label rbl = (Label)dl2i.FindControl("Label7");

    SqlCommand cmdupdate = DBTools.Komut("update Exams set Exam=@Exam where ExamID=@ExamID");

    cmdupdate.Parameters.AddWithValue("@Exam", SqlDbType.SmallInt).Value = (txtbox == null ? string.Empty : txtbox.Text);
    cmdupdate.Parameters.AddWithValue("@ExamID", rbl.Text);

    try
    {
    cmdupdate.Connection.Open();
    cmdupdate.ExecuteNonQuery();
    cmdupdate.Connection.Close();
    }
    catch (Exception)
    {

    throw;
    }
    }
    }
    }
    } ExamDoldur();




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.