У меня есть GridView
привязанных к SqlDataSource
с умолчанию SelectCommand
определяются как например:Изменения SqlDataSource.SelectCommand во время выполнения перерывов PAGINATION
<asp:SqlDataSource ID="SqlDataSource1" runat="server" DataSourceMode="DataSet"
ConnectionString="<%$ ConnectionStrings:MyConn %>"
ProviderName="MySql.Data.MySqlClient"
SelectCommand="select * from blah blah" />
Есть случаи, когда я должен изменить этот запрос динамически во время выполнения, так что я выполните следующие действия:
SqlDataSource1.SelectCommand = sql; // 'sql' is the new query
GridView1.PageIndex = 0;
GridView1.EditIndex = -1;
GridView1.SelectedIndex = -1;
GridView1.DataBind();
updatePanel.Update();
Это прекрасно работает на самом деле, но когда я нажимаю управление нумерацией страниц, набор результатов, по умолчанию обратно в SelectCommand
, определенном в SqlDataSource1
.
В любом случае?
Спасибо, Марк
-1 Этот подход подвержен SQL-инъекции и не рекомендуется. Вы должны использовать параметры, а не конкатенацию строк. –
Майк, ты прав насчет инъекции SQL, и я заметил это в исходном ответе. Я просто пытался ответить на заданный вопрос. Я также согласен с тем, что использование хранимой процедуры с параметрами является лучшим способом. – dscarr