когда запускается обновление gridView? - PullRequest
1 голос
/ 19 августа 2011

Я задал вопрос Gridview не отображается при использовании хранимой процедуры в SQLDatasource , которую я хочу разрешить. Исходя из моего старого вопроса, я не уверен, когда именно произойдет обновление gridView. Я под впечатлением

  • Обновление Gridview запускается автоматически при загрузке страницы , если , вы используете оператор SQL в SQLDatasource

  • GridView необходимо привязать вручную, используя функцию sqldatasource.databind () для обновления данных , если вы используете хранимую процедуру.

Но даже тогда второй случай не работает для меня. Я знаю, что эта реализация несколько ошибочна. Может ли кто-нибудь подсказать мне, когда это произойдет, когда обновится Gridview и, возможно, пролить свет на мой оригинальный вопрос?

Спасибо!


Обновление : После дальнейших исследований я обнаружил, что свойство databind () не , необходимое для обновления gridView. Что нужно, так это постбэк. Поэтому, если вы добавите кнопку без кода внутри, она обновит gridView просто потому, что страница была повторно размещена и (возможно) значения текстового поля также изменились.

Я до сих пор не получил никакого результата. То, что я сделал, введено "не найдены данные" в пустом шаблоне для сетки. Так что теперь я получаю «Данные не найдены» вместо ничего. Что означает, что SP запущен, но возвращает 0 результата.

Еще одна вещь, которую я обнаружил: если вы связываете текстовое поле с SQLDataSource, по умолчанию оно изменяет значение пустого текстового поля на NULL. Это глупо, зачем вам нужны значения NULL? Это приведет к 0 записям, так как мы явно не храним null в базе данных. (Null означает ничего, кроме Microsoft, хотя в другом смысле). Чтобы это исправить, перейдите к списку параметров в источнике данных SQL и выберите параметр. Нажмите на ссылку «Показать дополнительные свойства». Там измените свойство «ConvertEmptyStringToNull» с true на false. Хотя это еще не решило мою проблему (но исправило ее где-то еще).

Я думаю, что я использую 4 параметра в sqlprocedure, и один из них вызывает проблемы? Но запрос не подходит при тестировании в SQLDatasource.

Ответы [ 2 ]

0 голосов
/ 20 августа 2011

После моих исследований я обнаружил, что GridView автоматически обновляется при загрузке страницы. Это та же самая ситуация, когда в SQLDataSource используется оператор SQL или хранимая процедура. Также SDQDatasource.Databind () не требуется, но может потребоваться в специальных сценариях.

Что запускает обновление GridView - это загрузка страницы. Если вы создаете кнопку и добавляете событие щелчка, то простое нажатие на эту кнопку автоматически приведет к обновлению gridview, а щелчок - к перезагрузке страницы.

Надеюсь, это поможет

0 голосов
/ 19 августа 2011

Есть ли причина, по которой вы должны использовать событие обновления GridView?Почему бы просто не добавить код для привязки GridView во время события Page_Load или чего-то еще?Вы хотя бы пытались сузить причины ошибочного поведения?

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
         SqlDataSource1.DataBind();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...