Получение / настройка выбора поля в буквальном из ASP.Net Code-Behind - PullRequest
1 голос
/ 16 августа 2011

У меня есть код ниже, который добавляется к литералу в моей форме. Как в коде, чтобы захватить получить / установить данные из select = name = "населениеSelect" ....?

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

1 Ответ

2 голосов
/ 16 августа 2011

не легко. Поскольку вы используете литерал вместо элемента управления asp.net (например, раскрывающегося списка), asp.net не создает элемент управления для использования в коде.

При этом вы должны иметь возможность доступа к значению через параметры запроса.

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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...