Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# dropdownlist获取他人的价值_C#_Asp.net_Drop Down Menu_Query String - Fatal编程技术网

C# dropdownlist获取他人的价值

C# dropdownlist获取他人的价值,c#,asp.net,drop-down-menu,query-string,C#,Asp.net,Drop Down Menu,Query String,我的页面上有两个下拉列表,ddlMin和ddlMax 在页面加载时,我让它选择request.querystring的值。调试时,它将获取所选值,直到到达下一行,然后获取所选值 我已经检查了.cs.designer,以确保它没有继承一些愚蠢的东西,但看起来一切正常 提前为帮助干杯 在创建我的dropdownlist时,我是这样创建我的项目的 foreach (string item in ConfigurationManager.AppSettings["Budget"]

我的页面上有两个下拉列表,ddlMin和ddlMax

在页面加载时,我让它选择request.querystring的值。调试时,它将获取所选值,直到到达下一行,然后获取所选值

我已经检查了.cs.designer,以确保它没有继承一些愚蠢的东西,但看起来一切正常


提前为帮助干杯

在创建我的dropdownlist时,我是这样创建我的项目的

            foreach (string item in ConfigurationManager.AppSettings["Budget"].Split(','))
            {
                items = item.ToLower() == "any"
                            ? new ListItem(item, "0")
                            : item.Contains("+")
                                  ? new ListItem(String.Format("{0:0,0}+", Convert.ToInt32(item.Replace("+", ""))),
                                                 "999999999")
                                  : new ListItem(String.Format("{0:0,0}", Convert.ToInt32(item)), item);
                ddlMin.Items.Add(items);
                ddlMax.Items.Add(items);
            }
这意味着,尽管我不清楚为什么它会有这么大的影响,但listitem是作为一个单数项附加到两个DropDownList的。因此,即使ddlMin得到了正确的值并在ddlMax返回为0时选择了它,它也会在两个列表中选择相同的listitem。。。为了解决这个问题,您只需将添加到ddlMin和ddlMax的操作分开

            foreach (string item in ConfigurationManager.AppSettings["Budget"].Split(','))
            {
                items = item.ToLower() == "any"
                            ? new ListItem(item, "0")
                            : item.Contains("+")
                                  ? new ListItem(String.Format("{0:0,0}+", Convert.ToInt32(item.Replace("+", ""))),
                                                 "999999999")
                                  : new ListItem(String.Format("{0:0,0}", Convert.ToInt32(item)), item);
                ddlMin.Items.Add(items);
            }


            foreach (string item in ConfigurationManager.AppSettings["Budget"].Split(','))
            {
                items = item.ToLower() == "any"
                            ? new ListItem(item, "0")
                            : item.Contains("+")
                                  ? new ListItem(String.Format("{0:0,0}+", Convert.ToInt32(item.Replace("+", ""))),
                                                 "999999999")
                                  : new ListItem(String.Format("{0:0,0}", Convert.ToInt32(item)), item);

                ddlMax.Items.Add(items);
            }

恼人但显然必须

publicstaticboolsnothingstringstringtotest{returnstring.IsNullOrEmptystringToTest;}您能提供一些代码吗?而指向本地主机的链接对我们没有帮助。本地主机链接只是为了显示我从中提取的查询字符串。不确定在调试ddlMin时是否需要更多的代码,直到下一行取该值,然后将其释放。您还需要查看哪些其他代码?现在,您提供的代码片段更清晰了。尝试强制ddlMin状态并使用ddlMin.DataBind;就在设置selectedValue之后。不幸的是,这也没有做任何事情。我已经在.Net代码中开发了8年多了,以前从未见过类似的东西。你说强迫国家是什么意思?正如我之前所说,在添加ddlMin.DataBind之后,它接受值;但是仍然在ddlMax.selectedValue上更改它会失去它的值吗?
            foreach (string item in ConfigurationManager.AppSettings["Budget"].Split(','))
            {
                items = item.ToLower() == "any"
                            ? new ListItem(item, "0")
                            : item.Contains("+")
                                  ? new ListItem(String.Format("{0:0,0}+", Convert.ToInt32(item.Replace("+", ""))),
                                                 "999999999")
                                  : new ListItem(String.Format("{0:0,0}", Convert.ToInt32(item)), item);
                ddlMin.Items.Add(items);
            }


            foreach (string item in ConfigurationManager.AppSettings["Budget"].Split(','))
            {
                items = item.ToLower() == "any"
                            ? new ListItem(item, "0")
                            : item.Contains("+")
                                  ? new ListItem(String.Format("{0:0,0}+", Convert.ToInt32(item.Replace("+", ""))),
                                                 "999999999")
                                  : new ListItem(String.Format("{0:0,0}", Convert.ToInt32(item)), item);

                ddlMax.Items.Add(items);
            }