繁体   English   中英

我如何从Asp.Net(selectedIndexChange)中的用户获取DropDownList选定的值

[英]How do I get DropDownList selected value from user in Asp.Net(selectedIndexChange)

如何使用带有更新面板的selectedIndexChanged从asp.Net中的DropDownList获取选定的值? 我已经尝试过,但是当我将AutoPostBack添加到我的DropDownList时,它使我进入错误页面,提示它找不到资源。(甚至都没有击中我的“ selected_IndexChanged”)我为hiddenField分配了所选值。

这是我的DropDownList:

<asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:UpdatePanel runat="server" ID="UpdatePanel1">
        <ContentTemplate>
            <asp:DropDownList runat="server" ID="ddlCaseFilesNew" DataSourceID="dsCaseFiles"
                DataTextField="Display" DataValueField="FileID" OnPreRender="ddl_PreRender" Width="300px"
                AutoPostBack="true" OnSelectedIndexChanged="ddlCaseFilesNew_SelectedIndexChanged" Visible="False">
                <asp:ListItem>Item 1</asp:ListItem>
            </asp:DropDownList>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="ddlCaseFilesNew" EventName="SelectedIndexChanged" />
        </Triggers>
    </asp:UpdatePanel>

当我单击DropDownList内的值时,它会将我发送到“找不到资源”页面。 我不知道为什么。 它甚至都没有触及我的“ onSelectedIndexChanged”

  <script runat="server">
    protected void ddlCaseFilesNew_SelectedIndexChanged(object sender, EventArgs e)
    {
        hidNewCaseFile.Value = ddlCaseFilesNew.SelectedItem.Value;
    }
</script>

在您的SelectedIndex函数中,使用

string sValue = ((DropDownList)sender).SelectedValue;

由于它位于更新面板中,因此您可能无法通过设计器(this.DdlId)对其进行访问。

根据您在OP中的评论,这可能是您需要的:

protected void ddlCaseFilesNew_SelectedIndexChanged(object sender, EventArgs e)
{
    hidNewCaseFile.Value = ((DropDownList)sender).SelectedValue;
}

您还需要将隐藏字段移动到ContentTemplate中。

采用:

protected void myDropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
    var res = this.myDropDownList.SelectedValue;
}

要么:

protected void myDropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
    var ddl = sender as DropDownList;
    var res = ddl.SelectedValue;
}

编辑1

您需要了解,部分页面呈现发生UpdatePanel内的所有控件上 ,在您的情况下,您试图设置hidNewCaseFile控件的Value属性,该属性似乎不在UpdatePanel内,因此,其值永远不会更新

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM