c# - 使用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"]);
你能帮忙解决这个问题吗?
解决方案
问题在于 ASP.NET 页面创建过程中的事件顺序。回发数据在OnInit
和OnLoad
事件之间进行处理。由于您在事件发生之前不填写您的选择OnLoad
,因此在处理回发中的视图数据时它确实存在。
将您的代码Page_Load
移入Page_Intit
其中,并且在处理视图数据时将存在带有其数据的选择。
推荐阅读
- angular - Angular 7:使用 mat-select:动态获取 mat-option 的选项会创建一个永无止境的循环
- postgresql - 有没有办法更新 PostgreSQL 表中所有值为 0 的空值
- amazon-s3 - alpakka:来自 s3 存储桶的流对象
- windows - 在运行显示绘图的脚本时隐藏主 Octave 窗口
- scala - Scala中带花括号的函数的奇怪定义和调用(函数作为函数的参数)
- javascript - Tempus Dominus 不显示 HTML 值标签
- azure - Azure 函数 v3 - Twilio 输出绑定不起作用
- vert.x - Vert.x WriteStream setWriteQueueMaxSize
- c# - 如何用相关数据播种实体框架核心数据
- android - Android Gradle Plugin 3.6 & 4.0 R8 没有用 src / test 代替 src / main