Как добавить выбранное значение DropDownList внутри Repeater в элемент управления списком в ASP.Net - PullRequest
0 голосов
/ 18 июня 2020

Как мне получить значение выбранного элемента внутри объекта репитера, который я заполнил из базы данных, снова в объекте раскрывающегося списка, который я заполнил из базы данных?

Как я могу передать значения элементов, которые я выбрал из этих объектов раскрывающегося списка, в список?

Например, в репитере есть 3 раскрывающихся списка. Я хочу перенести значения, выбранные из этих раскрывающихся списков, в список, когда я нажимаю кнопку.

Спасибо ...

Ilan.aspx

<asp:Repeater ID="rptNitelikler" runat="server" OnItemDataBound="rptNitelikler_ItemDataBound">
     <ItemTemplate>
          <div class="control-group form-group">
               <label class="form-label text-dark"><%#Eval("nitelik") %></label>
               <asp:Label ID="id" runat="server" Visible="false" Text='<%#Eval("nid") %>'></asp:Label>
               <asp:Label ID="lblItem" Visible="false" runat="server" Text="Label"></asp:Label>
               <asp:DropDownList ID="ddl" CssClass="form-control select2-show-search" data-placehodler="Seç" Width="100%" runat="server">
               </asp:DropDownList>
          </div>
     </ItemTemplate>
</asp:Repeater>

Ilan.aspx.cs

    private void NitelikGetir()
    {
        int ana, alt, kat;
        ana = int.Parse(Session["AnaId"].ToString());
        alt = int.Parse(Session["AltId"].ToString());
        kat = int.Parse(Session["KatId"].ToString());
        using (BayUniEntities ent = new BayUniEntities())
        {
            var birlestir = (from nk in ent.NITELIKKATEGORI
                             join an in ent.ANANITELIKLER
                             on nk.AnaNitelikId equals an.AnaNitelikId
                             where nk.AnaKategoriId==ana && nk.AltKategoriId==alt && nk.IlanKategoriId==kat
                             select new { nitelik=an.AnaNitelik, nid=an.AnaNitelikId }).ToList();


            rptNitelikler.DataSource = birlestir;
            rptNitelikler.DataBind();
        }
    }

    protected void rptNitelikler_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        int id = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "nid"));
        DropDownList selectList = e.Item.FindControl("ddl") as DropDownList;
        if (e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
        {
            using (BayUniEntities ent = new BayUniEntities())
            {
                var birlestir = (from an in ent.ALTNITELIKLER
                                 where an.AnaNitelikId == id
                                 select an).ToList();

                selectList.DataSource = birlestir;
                selectList.DataTextField = "AltNitelik";
                selectList.DataValueField = "AltNitelikId";
                selectList.DataBind();
            }
        }
    }

1 Ответ

0 голосов
/ 18 июня 2020

Чтобы получить выбранные значения из выпадающих списков, вам нужно перебирать элементы в репитере. В вашем коде обработчика кнопок сделайте что-то вроде этого:


foreach (RepeaterItem repeaterItem in rptNitelikler.Items)
{
    DropDownList ddl = (DropDownList)repeaterItem.FindControl("ddl");
    if (ddl != null)
    {
        string selectedValue = ddl.SelectedValue;
        // insert code to add value to listbox here.

        string selectedText = ddl.SelectedItem.Text;
        // Insert code to add Text to listbox here.
    }
}

...