首页 > 解决方案 > 使用asp.net提交时选择标签发送空值

问题描述

我正在使用以下代码使用 asp.net 和 c# 从数据库中填充选择标签。它工作正常并正确显示数据,但是当我将表单提交到另一个页面时,我得到所选数据的空值这是我在 Collages.aspx 页面中的代码

<select class="form-control" id="uni_name" name="uni_name" runat="server">

</select>

这是填充选择标签的 Collages.aspx.cs 的代码

 protected void Page_Load(object sender, EventArgs e)
{
    SqlConnection conn = new DB_Connection().getConnection();
    SqlDataAdapter uni_adapter = new SqlDataAdapter("select uni_id,uni_name from universities", conn);
    DataSet ds = new DataSet();
    uni_adapter.Fill(ds);

    uni_name.DataSource = ds;
    uni_name.DataTextField = "uni_name";
    uni_name.DataValueField = "uni_id";
    uni_name.DataBind();
}

这是我用来获取选定值的代码

 Response.Write(Request.Form["uni_name"]);

你能帮忙解决这个问题吗?

标签: c#asp.net

解决方案


问题在于 ASP.NET 页面创建过程中的事件顺序。回发数据在OnInitOnLoad事件之间进行处理。由于您在事件发生之前不填写您的选择OnLoad,因此在处理回发中的视图数据时它确实存在。

将您的代码Page_Load移入Page_Intit其中,并且在处理视图数据时将存在带有其数据的选择。


推荐阅读