asp.net - 处理下拉列表中的重复值
问题描述
在我的 VB.net3.5 应用程序中,我们显示了一个带有以下值的状态下拉列表
<asp:DropDownList NAME="mailingState" id="mailingState" runat="server">
<option value="Ak">ALASKA</option>
<option value="AA">APO AA</option>
<option value="AE">APO AE</option>
<option value="AP">APO AP</option>
<option value="CA">CALIFORNIA</option>
<option value="AA">DPO AA</option>
<option value="AE">DPO AE</option>
<option value="AP">DPO AP</option>
<option value="FL">FLORIDA</option>
</asp:DropDownList>
如您所见,有一些重复的值,我必须处理。当我选择任何 DPO AA(或 AE,AP)并且出现服务器端错误和页面回发时,状态下拉列表始终显示 APO AA(或 AE,AP)而不是 DPO。我知道它首先选择重复值。我试图通过文本选择选项,它的显示 APO 而不是 DPO。有没有更好的方法来处理下拉列表中的重复项。当我检查时,在 chrome 浏览器检查元素中,它显示选择了正确的元素(DPO AA)。但是在 aspx.vb 页面中,当我检查 SelectItem 时,page_load 事件的第一行设置为 APO。任何想法如何解决这一问题。
解决方案
好吧,您仅限于 HTTP 协议功能。
GET请求返回<option selected="selected>
任何这些项目。所以你可以在生成它时看到它
对您的应用程序的POST请求得到的只是 $Your$Hierarchy$is$mailingState=AA 并且无法区分 APO/DPO。无论用户选择了什么文本。所以 .NET 会为您选择第一个 mach。SelectedIndex 不通过 HTTP 传输。
解决方案 A使用一些唯一值。像“AA-APO AA”一样加入当前的键和值。或来自数据库的一些 ID。
解决方案 B您必须自己将所选索引发布给您。这意味着在 DDL 的 onchange 事件中添加一些 javascript 以将 selectedIndex 存储到该隐藏字段。然后工作并重新设置 DDL.SelectedIndex。
推荐阅读
- python - 我的变量未缩进时显示为红色
- graphics - 如何根据它在three.js中的局部轴在3D空间中绘制一条垂直于另一条线(3D对象)的线?
- apple-push-notifications - 我的 Apple 推送通知因 Java Apns 停止工作而停止
- python - 如何修复 PyCharm 中的 Python 多处理映射内存错误
- apache - RewriteRule 表现奇怪,将查询添加到某些 url 而不是其他一些
- python - Django POST 返回空 - DRF + recaptcha
- html - 我的边距顶部没有应用于我的锚标记
- excel - Visual Basic 得到 424 对象必需错误
- wordpress - WordPress 用户角色限制插件
- javascript - 如何使用 select2 库多选重复值