2013-05-05 60 views
2

我不知道该怎么做,我可能不得不使用viewstates,但我需要帮助。下拉列表SelectedItems回传不存在

我有一个下拉列表,我不是数据绑定。我会知道如果我是我应该做一个Page.IsPostBack而不是数据绑定。

<asp:DropDownList ID="ddlWeeklyWeightIn" runat="server"> 
    <asp:ListItem>1</asp:ListItem> 
    <asp:ListItem>2</asp:ListItem> 
    <asp:ListItem>3</asp:ListItem> 
    <asp:ListItem>4</asp:ListItem> 
</asp:DropDownList> 

现在在我后面的代码我有这样的:

protected void Button1_Click(object sender, EventArgs e) 
    { 
     string wwin = ""; 
     wwin = ddlWeeklyWeightIn.SelectedItem.Text; 
    } 

点击按钮始终为“1”,从来没有选择的项目。

谢谢

+0

'DropDownList'类有一个名为'SelectedItem'的属性? – 2013-05-05 16:44:06

+0

你是否在下拉列表中启用了viewstate? – diogod 2013-05-05 16:45:49

+0

是启用视图状态 – prospector 2013-05-05 16:58:15

回答

0

.aspx的侧: 添加的AutoPostBack =真到下拉属性和并使用列表项如下: 列表项文本= “4” 值= “4”>等

代码背后:串WWIN = “” ; wwin = ddlWeeklyWeightIn.SelectedValue;

0

尝试在下拉控件中添加EnableViewState =“True”。

+0

没有帮助 – prospector 2013-05-05 16:57:28

+0

当列表在页面上呈现时,“EnableViewState”不会影响它。 – Aristos 2013-05-05 17:10:19

0

回发导致重置您选择的值。要么使用if(!IsPostBack)要么使用更新面板来防止回发。

0

这只是为了确保但是你能不能尝试使用:

<asp:DropDownList ID="ddlWeeklyWeightIn" runat="server"> 
    <asp:ListItem Text="1"></asp:ListItem> 
    <asp:ListItem Text="2"></asp:ListItem> 
    <asp:ListItem Text="3"></asp:ListItem> 
    <asp:ListItem Text="4"></asp:ListItem> 
</asp:DropDownList> 

你能检查你页面的初始化过程中不只是设置选定的项目吗?

+0

我删除了页面,并用新的控件重新创建。当时它很有效,但我仍然不知道问题出在哪里,或者其他解决方法。 – prospector 2013-05-07 23:17:19