ASP.NET AutoPostback无法正常运行

时间:2013-06-07 09:01:15

标签: asp.net drop-down-menu

我在申请中遇到div问题。

我创建了一个名为divUpload的div,只有当下拉菜单中的选定值为“IN”时,才需要它才可见。 我第一次打开页面时一切正常(可能是因为Dropdown中的第一个值(默认情况下)是IN)。 当我改变这个值时,一切都运行正常,所以div消失了。

问题是,当我再次将其更改为IN时,现在div不再出现了:(

我该怎么办?

代码如下:

    <div style="height: 25px">
            <div style="float: left; width: 200px">
                <b>Protocol type:</b>
            </div>
            <div style="margin-left: 205px">
                <asp:DropDownList runat="server" ID="cboProtocolType" AutoPostBack="true" 
                 OnSelectedIndexChanged="cboSelectedProtocolType_IndexChanged">
                </asp:DropDownList>
            </div>
        </div>

<div id="divUpload" runat="server">
    <div style="height: 25px">
        <div style="float: left; width: 200px">
            <b>Upload document:</b>
        </div>
        <div style="margin-left: 205px">
            <asp:FileUpload ID="FileUploadProtocolDocs" runat="server"  ToolTip="Upload" />
        </div>
    </div>
    </div>

后面的代码是:

protected void cboSelectedProtocolType_IndexChanged(object sender, EventArgs e)
        {
            if (cboProtocolType.SelectedValue.Equals("IN"))
            {
                divUpload.Visible = true;
            }
            else
            {
                divUpload.Visible = false;
            }
        }

2 个答案:

答案 0 :(得分:1)

您如何填充下拉列表?我对这样的项目进行了硬编码,并且工作正常:

<asp:DropDownList runat="server" ID="cboProtocolType" AutoPostBack="true" OnSelectedIndexChanged="cboSelectedProtocolType_IndexChanged">
                <asp:ListItem>IN</asp:ListItem>
                <asp:ListItem>OUT</asp:ListItem>
            </asp:DropDownList>

当选择“IN”时,DIV出现。选择“OUT”时,DIV消失。您是否尝试使用这两个控件创建一个空白页面,以查看页面上是否有其他代码干扰它?

答案 1 :(得分:0)

您所要做的就是更换:

if (cboProtocolType.SelectedValue.Equals("IN"))

with:

if (cboProtocolType.SelectedItem.ToString()=="IN")

并且工作正常:)

谢谢odinel:)