ASP.Net DropDownList选中的值

时间:2011-08-05 14:17:04

标签: asp.net drop-down-menu selectedvalue

我有一种感觉我错过了一些非常明显的东西,我无法捕捉DropDownList的选定值;该值将重新启动列表中的第一个项目。我已将DropListList autopostback 属性设置为 true 。我有一个粘贴在下面的SelectedIndexChangedEvent。这不在母版页上。

protected void ddlRestCity_SelectedIndexChanged(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        r_city = ddlRestCity.SelectedValue.ToString();
    }
}

这是DropDownList控件:

<asp:DropDownList ID="ddlRestCity" runat="server" 
        Width="100px" AutoPostBack="True" 
        onselectedindexchanged="ddlRestCity_SelectedIndexChanged">
</asp:DropDownList>

Thanx提前帮助你!

3 个答案:

答案 0 :(得分:12)

我的袖口猜测是你可能会重新填充帖子后面的列表,这会导致所选索引重置。

答案 1 :(得分:8)

您的DataBind()电话在哪里?你在通话前检查!IsPostBack了吗?例如:

protected void Page_Load(object sender, EventArgs e) {
    if (!IsPostBack) {
        ddlRestCity.DataSource = ...;
        ddlRestCity.DataBind();
    }
}

说明:如果您在!IsPostBack之前未检查DataBind(),则该列表将在 SelectedIndexChanged之前重新填充被触发(因为Page.Load子事件(例如SelectedIndexChanged)之前触发。当SelectedIndexChanged被触发时,“选定项目”现在是新填充列表中的第一个项目。

答案 2 :(得分:0)

什么是r_city?

如果是文本框,则需要执行r_city.text = ...

之类的操作

另外 - 您可以考虑删除回发检查。通常,这在page.onload事件中最有用,通常,您正在检查if NOT ispostback ...