【问题标题】:unable to preserve DropDownList.SelectedValue after disabling/re-enabling禁用/重新启用后无法保留 DropDownList.SelectedValue
【发布时间】:2016-10-06 14:35:11
【问题描述】:

我的 aspx 页面上有以下 ASP:DropDownList

<label>OT Code No.</label>
<asp:DropDownList runat="server" ID="ddlOvertimeCode" class="form-control" TabIndex="1"></asp:DropDownList>

在 HTML 中呈现如下:

<select name="ctl00$MainContentPlaceHolder$ddlOvertimeCode" id="MainContentPlaceHolder_ddlOvertimeCode" tabindex="1" class="form-control">
    <option selected="selected" value="0">-Select-</option>
    <option value="1">1 - 10B PLES</option>
    <option value="2">2 - Investigation</option>
    <option value="3">3 - Arrest</option>
    <option value="4">4 - Misc</option>
    <option value="5">5 - EWW</option>
    <option value="6">6 - Holiday</option>
    <option value="7">7 - In-Lieu Holiday</option>
</select>

提交表单后,我在 .cs 文件中使用以下代码禁用 DropDownList

ddlOvertimeCode.Attributes.Add("disabled", null);

我尝试了其他禁用dropdownlist 的方法,但是所有这些方法要么覆盖列表的引导样式,要么使下拉列表能够被更改,尽管它是灰色和只读的。添加disabled 属性是我能找到的唯一方法,可以在保持其样式不变的同时将框变灰。

当用户撤回表单,使其再次可编辑时出现问题,代码使用相同的方法重新启用dropdownlist

ddlOvertimeCode.Attributes.Remove("disabled");

删除 disabled 属性会重置 dropdownlist 并让我无法从代码隐藏中更改 DropDownList.SelectedValue

我需要一种将 DropDownList 灰显并从代码隐藏中禁用它而不覆盖引导样式的方法,然后将其返回到可编辑状态,同时保留原始选定值。

【问题讨论】:

    标签: c# html asp.net twitter-bootstrap


    【解决方案1】:

    检查 AutoPostBack="True"

    代码 谢谢

    【讨论】:

    • 我想,这应该是评论而不是答案?
    • 我没有为 AutoPostBack 指定一个值,这意味着它将默认为 false。改变它会达到预期的结果吗?如果是这样,我需要将其添加到 aspx 页面中,还是需要在代码中的不同位置在代码隐藏中将 AutoPostBack 设置为“True”?
    • 默认 AutoPostBack 为 false 。您必须将其更改为 true 。您可以通过其他方式做到这一点:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 2023-03-16
    • 2019-04-29
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多