none
Asp.net içinde WebUserControl nasıl tekrarlatılır? RRS feed

  • Soru

    1. WebUserControl kontrolüm var bunu webformun içinde tekrarlatmak istiyorum for dögüsü ile WebUserControl içini kontrol ederek döndürmek doğru eliyor bu konu hakkında bilgisi olan varsa yardımcı olur mu?

    enes özmert f-yazılım

    22 Haziran 2020 Pazartesi 11:21

Yanıtlar

  • Oldukça hatalı.

    uc = (UserControl)Page.LoadControl("~/KullaniciLoad/GonderiYollari/Gscroll_unit.ascx");

    bu satırdan sonra, bunun üstündeki iki satırda yaptıkların boşa gitmiş oluyor. Şöyle yapsan daha rahat olur;

    repeater1.DataSource = Enumerable.Range(0, Convert.ToInt32(Session["gönderi_indexEkle"])).Select(p => new { Index = Random.Next(listBoxGönderi.Items.Count - 1) }).ToList();
    repeater1.DataBind();

    user controlüne Bindable bir property ekle;

    [Bindable]
    public int Index { get; set; }
    daha sonra aspx tarafında;

    <asp:Repeater ID="repeater1" runat="server">
       <uc1:UserControlAdı Index='<%#Eval("Index") %>' runat="server"></uc1:UserControlAdı>
    </asp:Repeater>

    Ya da bu 20 senelik köhne tekolojiyi bir kenara bırakıp MVC falan dene bence rahat edersin.

    Not: WebForms'ta unuttuğum yerler olabilir.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com





    23 Haziran 2020 Salı 13:51
    Moderatör

Tüm Yanıtlar

  • Projeniz hakkında daha fazla bilgi, örnek ve kod paylaşırsanız belki yardımcı olabiliriz. 



    Birinin cevabı size yardımcı oldu ise, lütfen "Yanıt Olarak Öner" veya "Yanıt Olarak İşaretle" olarak işaretlemeyi ve "Oy" vermeyi unutmayınız. Burada sağlanan tüm görüşler, kişiseldir ve Microsoft'un konumunu temsil etmemektedir. Tüm bilgiler hazır olarak temin edilmektedir ve herhangi bir garanti vermemektedir.

    23 Haziran 2020 Salı 06:54
    Moderatör
  • Sevgili Mert, 

    Tam olarak ne yapmak istediğini anlamakta güçlük çekiyoruz. Döndürmek istediğin obje/model veya list bunu belirtir misin? İlgili alanın kodunu paylaşırsan daha verimli sonuç alırsın. 

    23 Haziran 2020 Salı 07:41
  • ne yapmak istediğin gayet açık ve net, anlamakta güçlük çekmiyoruz.

    Sorunun cevabı; Repeater ile tekrarlatılır.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com




    23 Haziran 2020 Salı 07:52
    Moderatör
  • 
     For indexx As Integer = 0 To Convert.ToInt32(Session("gonderi_indexekle"))
                OlusturulanSayi = RastgeleSayi.Next(0, Convert.ToInt32(listbox_gonderi.Count - 1))
                Dim uc As UserControl = New UserControl()
                uc.ID = "Pnl" & indexx & OlusturulanSayi
                uc.ClientIDMode = ClientIDMode.AutoID
                uc = CType(Page.LoadControl("~/KullaniciLoad/GonderiYollari/Gscroll_unit.ascx"), UserControl)
                uc.Attributes.Add("style", ";left:0px;height:auto;width:100%;display:block;")
                pencere.Controls.Add(uc)
                Session.Add("gonderi_indexekle", gonderi_indexekle)
    Next
    {
        for (int indexx = 0; indexx <= Convert.ToInt32(Session("gonderi_indexekle")); indexx++)
        {
            OlusturulanSayi = RastgeleSayi.Next(0, Convert.ToInt32(listbox_gonderi.Count - 1));
            UserControl uc = new UserControl();
            uc.ID = "Pnl" + indexx + OlusturulanSayi;
            uc.ClientIDMode = ClientIDMode.AutoID;
            uc = (UserControl)Page.LoadControl("~/KullaniciLoad/GonderiYollari/Gscroll_unit.ascx");
            uc.Attributes.Add("style", ";left:0px;height:auto;width:100%;display:block;");
            pencere.Controls.Add(uc);
            Session.Add("gonderi_indexekle", gonderi_indexekle);
        }
    }
    

    Bu kodlar hatalı gibi geliyor webusercontrolün içinde veritabanından bir mantık üzerinden verileri çekebiliyorum objeyi döndürmek istiyorum .

    enes özmert f-yazılım

    23 Haziran 2020 Salı 13:34
  • Oldukça hatalı.

    uc = (UserControl)Page.LoadControl("~/KullaniciLoad/GonderiYollari/Gscroll_unit.ascx");

    bu satırdan sonra, bunun üstündeki iki satırda yaptıkların boşa gitmiş oluyor. Şöyle yapsan daha rahat olur;

    repeater1.DataSource = Enumerable.Range(0, Convert.ToInt32(Session["gönderi_indexEkle"])).Select(p => new { Index = Random.Next(listBoxGönderi.Items.Count - 1) }).ToList();
    repeater1.DataBind();

    user controlüne Bindable bir property ekle;

    [Bindable]
    public int Index { get; set; }
    daha sonra aspx tarafında;

    <asp:Repeater ID="repeater1" runat="server">
       <uc1:UserControlAdı Index='<%#Eval("Index") %>' runat="server"></uc1:UserControlAdı>
    </asp:Repeater>

    Ya da bu 20 senelik köhne tekolojiyi bir kenara bırakıp MVC falan dene bence rahat edersin.

    Not: WebForms'ta unuttuğum yerler olabilir.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com





    23 Haziran 2020 Salı 13:51
    Moderatör