我在ASPX文件中有以下标记/代码块。ddl 的绑定是在代码隐藏文件中Page_Load事件之后触发的。如果我使用这样的流,这会导致我无法获得下拉列表的选定值。
但是出于某种目的,我需要它以这种方式工作。知道在触发回发时如何获取下拉列表选定值(单击按钮)吗?
Page URL: page.aspx?para1=0¶2=value
ASPX 页
<%
if (Convert.ToInt32(Request.QueryString["para1"]) == 0)
{
ddl.DataValueField = "value";
ddl.DataTextField = "text";
ddl.DataSource = ds; //ds is valid, exact code not shown
ddl.DataBind();
} else {
//write in this area
Response.Write("Not 0");
}
%>
<form runat="server" id="user_form" class="form-horizontal">
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<asp:UpdatePanel ID="updPanel" runat="server">
<ContentTemplate>
<asp:DropDownList runat="server" ID="ddl">
</asp:DropDownList>
<%-- this button will call btnSave_Click to get the ddl's value--%>
<asp:Button runat="server" ID="btn" Text="Button" OnClick="btn_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</form>
代码隐藏
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//do my stuff
}
}
protected void btn_Click(object sender, EventArgs e)
{
int intValue = Convert.ToInt32(ddl.SelectedValue);
//do my stuff
}
ASPX 页面代码块将在 Page_Load/页面的生命周期之后运行,然后将根据 url 参数确定要执行的操作。提前感谢!
您始终可以抛出一个隐藏对象并使用jquery根据某个操作将值复制到隐藏值,而无需回发,并且会在客户端执行,就像听起来像您想要的那样