Asp.net 4.5 WebForms ModelBinding не позволяет устанавливать выбранное значение в выпадающем списке
Я использую привязку модели Asp.net 4.5. У меня есть выпадающий список, который имеет метод выбора, который возвращает IEnumerable список продуктов. Все работает как положено. Однако, когда я попадаю на страницу, мне нужно проверить строку запроса и изменить выбранное значение в раскрывающемся списке (который связан с помощью метода SelectMethod.
Обычно я бы просто использовал...
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddlProducts.SelectedValue = Request.QueryString["productid"];
}
}
Это, однако, не работает, когда выпадающий список привязан к SelectMethod (новая привязка модели asp.net 4.5). Итак, как я могу установить выбранное значение раскрывающегося списка через строку запроса, когда я попадаю на страницу?
ASPX (обычный выпадающий список, но с SelectMethod):
<asp:DropDownList ID="ddlProducts" runat="server" DataTextField="Description" DataValueField="ProductId" AppendDataBoundItems="True" SelectMethod="GetProducts"></asp:DropDownList>
CS
public static IEnumerable<Product> GetProducts()
{
using (var db = new AppDb())
{
return db.Products.OrderBy(x => x.Description).ToList().AsEnumerable();
}
}
1 ответ
Я не эксперт, поэтому ваш пробег может отличаться. Но я думаю, что все, что вам нужно сделать, это изменить свое определение getProducts: с
public static IEnumerable<Product> GetProducts()
в
public static IEnumerable<Product> GetProducts([QueryString("somequerystringvariablename")] string param)
а затем используйте "param" для фильтрации вашего запроса