asp.net – 在运行时更改SqlDataSource.SelectCommand会破坏分页
|
我有一个绑定到SqlDataSource的GridView,默认的SelectCommand定义如下: <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(); 实际上这很好用,但是当我单击分页控件时,结果集默认返回到SqlDataSource1中定义的SelectCommand. 有什么方法吗? 谢谢, 解决方法这里的问题是当页面加载由寻呼机链接发出的提交时,会重新创建SqlDataSource.没有什么可以告诉它加载动态设置的内容.如果您要使用带参数的存储过程,则ASP会将参数保存到ViewState,并在加载页面时重新运行SqlDataSource中的select.所以你要做的就是告诉SqlDataSource它在上次正确加载时对SQL有什么用处. 最简单的方法是在设置SqlDataSource的SelectCommand时将View存储在ViewState中,然后在Page_Load事件中再次检索它并将其重新设置. 例如:假设您有一些标准的TextBox和一个搜索按钮.当用户在TextBox中输入一些文本,然后单击“搜索”按钮时,您希望它构建一些SQL(顺便说一下,这会让您大量接触SQL注入攻击.确保您擦除了标准好.)然后设置SqlDataSource的SelectCommand属性.在这一点上,您可能希望保存SQL.然后在Page_Load事件中,您需要检索它并将SelectCommand属性设置为该值. 在Click of your按钮中,您可以存储SQL: Dim sSQL as String
sSQL = "SELECT somefields FROM sometable WHERE somefield = '" & Me.txtCriteria.Text & "'"
SqlDataSource1.SelectCommand = sSQL
ViewState("MySQL") = sSQL
然后在Page_Load事件中,您可以检索SQL并设置SelectCommand属性: Dim sSQL as String
If Me.IsPostBack() Then
sSQL = ViewState("MySQL")
SqlDataSource1.SelectCommand = sSQL
End If (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 需要有关选择数据访问方法的建议
- asp.net – 为什么在此RegEx中订购事项需要更改?
- asp.net-mvc-4 – Autofac和ASP .Net MVC 4 Web API
- asp.net-mvc – asp.net mvc输入/模型验证多语言
- asp.net – 为什么当使用ADO.NET实体数据模型映射数据库表时
- asp.net成员资格 – 在Application_AuthenticationRequest设
- asp.net-web-api – 如何配置Web API 2和结构图
- asp.net-mvc-3 – 如何添加整数列表到路由
- .net – ApiController与ODataController在露出DTO时
- asp.net – 这个LINQ statment是否容易受SQL注入攻击?
- asp.net – 升级到.net 4.0后无法加载文件或程序
- 如何配置IIS 7以使用子目录作为默认文档?
- asp.net-mvc – 如何继承ASP.NET MVC控制器并仅更
- asp.net – 我可以使用Chrome DevTools在客户端查
- asp.net – 如何将javascript文件的服务限制为仅
- AllowOnlyAlphanumericUserNames – 如何设置?
- asp.net-mvc – ASP.NET MVC和Unity 1.2容器问题
- asp.net代码中修改web.config节点的具体方法
- asp.net – 如何转换上传的视频并从此文件中获取
- asp.net – DBContext.Entry做什么?
