从ASP获取/设置文本中的选择框.净后台代码

本文关键字:选择 后台 代码 获取 ASP 置文本 | 更新日期: 2023-09-27 18:05:34

我将下面的代码添加到我的表单中的文字中。如何在代码后面,我抓住获取/设置数据从select = name="populationSelect"....?

 protected void PopulatePopulation()
{
    StringBuilder sb = new StringBuilder();
    StringBuilder sql = new StringBuilder();
    // Define sql
    sql.Append("SELECT pid, population ");
    sql.Append("FROM populations ");
    sql.Append("ORDER BY pid ASC ");
    using (IDataReader reader = SqlHelper.GetDataReader(sql.ToString()))
    {
        sb.AppendLine("<div class='"narrowRes'">Poulation</div><select name='"populationSelect'" class='"narrowResSelect'"><option value='"0'">All populations</option>");
        while (reader.Read())
        {
            int pid = reader.IsDBNull(0) ? -1 : reader.GetInt32(0);
            string population = reader.IsDBNull(1) ? string.Empty : reader.GetString(1);
            population = population.Trim();
            sb.AppendLine(string.Format("<option value='"{0}'">{1}</option>", pid, population));
        }
    }
    sb.AppendLine("</select>");
    ltrlExplorePopulation.Text = sb.ToString();
}

从ASP获取/设置文本中的选择框.净后台代码

不容易。由于您使用的是文字而不是asp.net控件(如下拉列表),因此asp.net不会创建控件供您在后面的代码中使用。

也就是说,您应该能够通过Request参数访问该值。

var value = Request["populationSelect"];

一个更好的解决方案是在页面上创建一个下拉列表控件并绑定到它。

if (!IsPostBack)
{
    List<ListItem> data = new List<ListItem>();
    using (IDataReader reader = SqlHelper.GetDataReader(sql.ToString()))
    {
        //sb.AppendLine("<div class='"narrowRes'">Poulation</div><select name='"populationSelect'" class='"narrowResSelect'"><option value='"0'">All populations</option>");
        while (reader.Read())
        {
            int pid = reader.IsDBNull(0) ? -1 : reader.GetInt32(0);
            string population = reader.IsDBNull(1) ? string.Empty : reader.GetString(1);
            population = population.Trim();
            data.Add(new ListItem(population, pid.ToString()));
            //sb.AppendLine(string.Format("<option value='"{0}'">{1}</option>", pid, population));
        }
    }
    DropDownList1.DataSource = data;
    DropDownList1.DataBind();
}