按下按钮时,ASP下拉列表selecedvalue为空白

时间:2014-05-07 10:36:03

标签: c# html asp.net

您好我的下拉列表有问题。我已经骂了,但似乎没有人遇到同样的问题。我有一个updatepanel,里面有一组控件。在按钮上单击我想从控件中获取问题所在的按钮单击所选值始终为空白。

这是html

<asp:UpdatePanel runat="server" ChildrenAsTriggers="true" ID="updpnl1" EnableViewState="False">
                <ContentTemplate>
                    <asp:Panel runat="server" ID="pnlLSP" CssClass="textBox" Width="85%" Visible="False">
                        <div>
                                    <asp:DropDownList ID="ddlLSPHours" runat="server" ValidationGroup="LSP" 
                                EnableViewState="True">
                                </asp:DropDownList>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator8" runat="server" 
                                    ControlToValidate="ddlLSPHours" ErrorMessage="RequiredFieldValidator" 
                                    ValidationGroup="LSP">*</asp:RequiredFieldValidator>
                                &nbsp;<asp:DropDownList ID="ddlLSPMins" runat="server" ValidationGroup="LSP" EnableViewState="True">
                                </asp:DropDownList>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" 
                                    ControlToValidate="ddlLSPMins" ErrorMessage="RequiredFieldValidator" 
                                    ValidationGroup="LSP">*</asp:RequiredFieldValidator>
                        </div>
                        <div style="text-align: center">
                            <asp:Button ID="btnLSPDone" runat="server" CssClass="button" Text="Done" Style="margin-top: 10px"
                                Width="100px" ValidationGroup="LSP" OnClick="btnLSPDone_Click" />
                        </div>
                    </asp:Panel>
                </ContentTemplate>
                <Triggers>
                    <asp:PostBackTrigger ControlID="btnLSPDone"></asp:PostBackTrigger>
                </Triggers>
            </asp:UpdatePanel>
用于填充下拉列表的<#c#代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        //populate hours ddl
        for (int i = 0; i < 25; i++)
        {
            string number = i.ToString();

            if (i < 10)
            {
                number = "0" + i.ToString();
            }

            ddlLSPHours.Items.Add(number)
        }

        //populate mins ddl
        for (int i = 0; i < 61; i++)
        {
            string number = i.ToString();

            if (i < 10)
            {
                number = "0" + i.ToString();
            }

            ddlLSPMins.Items.Add(number);
        }
    }
}

protected void btnLSPDone_Click(object sender, EventArgs e)
{
    string timeSelected = ddlLSPHours.SelectedValue + ":" + ddlLSPMins.SelectedValue;
}

2 个答案:

答案 0 :(得分:2)

只需使EnableViewState =&#34; False&#34;您的UpdatePanel

<asp:UpdatePanel runat="server" ChildrenAsTriggers="true" ID="updpnl1" EnableViewState="False">

它会起作用。

答案 1 :(得分:2)

唯一的问题是你的

EnableViewState="False"

in

<asp:UpdatePanel runat="server" ChildrenAsTriggers="true" ID="updpnl1" EnableViewState="False">

您使用它的原因是什么? 如果删除它,将为您提供下拉列表的选定值。像这样:

 <asp:UpdatePanel runat="server" ChildrenAsTriggers="true" ID="updpnl1">

希望这会有所帮助。快乐的编码.. !!