在HTML中设置选定的值下拉列表

时间:2011-08-03 08:11:16

标签: c# asp.net html

我的aspx页面中有一个下拉列表,我在后面的代码中给出了一个数据源。我正在尝试设置所选的值,但它没有显示我将其设置为的选项。对不起垃圾解释。我将尝试使用我一直在使用的代码。

所以这是前端部分:

        <select id="OffenceClassificationDropDown" runat="server" style="white-space:pre;"
                onchange="StoreCrimeChange(internalCrimeReference, 'OffenceClassification', this.value)">
        </select>

这是我绑定数据并尝试设置所选值的部分背后的代码:

            this.OffenceClassificationDropDown.DataSource = ManageLookups.GetOffenceClassifications(Session, false);
            this.OffenceClassificationDropDown.DataTextField = "Description";
            this.OffenceClassificationDropDown.DataValueField = "Id";
            this.OffenceClassificationDropDown.DataBind();

            if (!String.IsNullOrEmpty(this.crime.OffenceClassification.Description))
            {
                this.OffenceClassificationDropDown.Items.FindByValue(this.crime.OffenceClassification.Id.ToString()).Selected = true;
            }

将值更改为所选值的原因是因为我有两个用户在其间切换的面板。可以返回到原始页面,然后返回到原始页面,这应保留他们选择的值。

希望有人可以告诉我为什么这不起作用,因为它让我疯狂! :)

提前谢谢大家!

2 个答案:

答案 0 :(得分:0)

为什么不使用asp:DropDownList它有一个内置的selectedvalue属性,基本上它将渲染到你在这里相同的东西

答案 1 :(得分:0)

您的代码看起来没问题,但您可能还需要检查以确保FindByValue()在设置其Selected属性之前不返回null以避免获取ORNS异常。

如果触发此事件并且FindByValue找到该项并且另一段代码没有再将其更改为其他内容,则所选选项肯定会更改。

此代码属于哪个事件?当面板切换时,您是否正在启动回发?

您可能希望在 crime.OffenceClassification.Description 设置断点,并尝试在调试器中逐步执行代码以确保 crime.OffenceClassification.Description 始终设置为您期望的结果。此外,这将帮助您确保代码实际被命中。