从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.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();
}