![](/img/trans.png)
[英]How can I get a DropDownList selected value and send it to the controller in ASP.NET MVC 4 and using JavaScript?
[英]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;
}
您需要了解,部分页面呈现发生在UpdatePanel
内的所有控件上 ,在您的情况下,您试图设置hidNewCaseFile
控件的Value
属性,该属性似乎不在UpdatePanel
内,因此,其值永远不会更新
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.