Как я могу предотвратить сброс условия LinqDataSource Where при обратной передаче? - PullRequest
3 голосов
/ 13 января 2010

Я пытаюсь установить предложение where для объекта LinqDataSource, привязанного к GridView программным путем при нажатии кнопки, но когда GridView повторно связывает данные (например, когда пользователь сортирует), предложение Where сбрасывается обратно в пустую строку , Есть ли способ предотвратить это, или есть лучший способ отфильтровать мои результаты?

1 Ответ

3 голосов
/ 14 января 2010

Возможно, вы просто добавляете свойство ViewState на свою страницу / пользовательский элемент управления, а затем извлекаете его для всех постов обратно?

public string MyLinqSourceWhere 
{
    get { return (string)this.ViewState["MyLinqSourceWhere"]; }
    set { this.ViewState["MyLinqSourceWhere"] = value; }
}

public void Page_Load(object sender, EventArgs e) 
{
    this.myLinqSource.Where = this.MyLinqSourceWhere;
}

public void Button1_Click(object sender, EventArgs e) 
{
    this.MyLinqSourceWhere = " .... ";
    this.myLinqSource.Where = this.MyLinqSourceWhere;
}

Если это не сработает, то, возможно, связать событие LinqDataSource.Selecting со свойством fetch из viewstate в ваше предложение where ?? Все зависит

...