C# 从多个下拉列表中获取所有值

C# 从多个下拉列表中获取所有值,c#,asp.net,json,C#,Asp.net,Json,我是.NET新手,我正在尝试从第一个和第二个下拉列表中获取这两个值。比如说,两个下拉列表都没有ID,我无法控制它们的数量 我有以下aspx代码: <%@ Page Language="C#"%> <!DOCTYPE html> <html> <head> <script runat="server"> protected void btnClick_Click(object sender, EventAr

我是.NET新手,我正在尝试从第一个和第二个下拉列表中获取这两个值。比如说,两个下拉列表都没有ID,我无法控制它们的数量

我有以下aspx代码:

<%@ Page Language="C#"%>
<!DOCTYPE html>
<html>
    <head>
    <script runat="server">
        protected void btnClick_Click(object sender, EventArgs e){
            lblResult.InnerHtml = "asd";
        }
    </script>
    </head>

    <body>
        <form runat="server">
            <asp:dropdownlist runat="server">
                <asp:listitem value="A">A</asp:listitem>
                <asp:listitem value="B">B</asp:listitem>
            </asp:dropdownlist>

            <asp:dropdownlist runat="server" multiple>
                <asp:listitem value="C">C</asp:listitem>
                <asp:listitem value="D">D</asp:listitem>
                <asp:listitem value="E">E</asp:listitem>
                <asp:listitem value="F">E</asp:listitem>
                <asp:listitem value="G">E</asp:listitem>
            </asp:dropdownlist>

            <asp:button id="btnClick" runat="server" onclick="btnClick_Click" text="Click"></asp:button>

            <span id="lblResult" runat="server"></span>
        </form>
    </body>
</html>
编辑1:参见上面的完整代码。
编辑2:在没有AJAX的情况下查找两个输出
编辑3:将“动态附加下拉列表”改为“我无法控制要添加多少下拉列表”,以避免混淆。
编辑4:这几乎与以下问题相同:……但是,接受的答案仅从多个
元素中选择最后选择的值


谢谢大家!

我不确定您所说的动态是什么意思,因为服务器会在页面被浏览器看到之前预先呈现您的控件。因为您不需要Ajax,所以被迫进入称为页面加载事件的意大利面。基本上,您正在尝试创建、验证、存储和输出。这种可怕的做法将是:

var output = String.Empty;
if(!string.IsNullOrEmpty(dropdownA.SelectedValue))
     if(!string.IsNullOrEmpty(dropdownB.SelectedValue))
          output = $"{dropdownA.SelectedValue} {dropdownB.SelectedValue}";

这将出现在页面加载中,因此每次执行回发操作时,都会进行检查。此外,值的更改应该在
HttpContext
中。您还需要确保告诉控件重新加载,以便控件在每次发生更改时都执行服务器事件。显然,你会有很多屏幕闪烁

我担心你的问题太宽泛了,因为有很多方法可以做到这一点:AJAX、常规回发、有模型、没有模型等等。你需要向我们展示你的代码背后的代码,这样我们就可以看到你在做什么以及如何做。另外,这将表明你已经在自己做这件事上付出了一些努力。@Codingyosi我正试图在没有js的情况下实现这一点。这只是一个单页程序。我只是想知道如何迭代在select元素中选择的值。您所需要做的就是给出您的下拉列表ID。也许我误解了,但“两个下拉列表都没有ID,因为它们将被动态附加。”这与asp.net的工作原理相矛盾。如果您给他们ID,那么您将能够访问服务器端的选定值。动态附加是什么意思?@Miko您的页面不应该编译,您需要id来运行由DaniDev表示的控件。
var output = String.Empty;
if(!string.IsNullOrEmpty(dropdownA.SelectedValue))
     if(!string.IsNullOrEmpty(dropdownB.SelectedValue))
          output = $"{dropdownA.SelectedValue} {dropdownB.SelectedValue}";