如果已在.aspx页上指定了Select语句,然后根据某些事件驱动的逻辑在后面的代码中对其进行了更改,则可以使用一种方法将select语句还原为最初在.aspx页上的内容。 aspx页面?
ASP代码:
<asp:SqlDataSource ID="ds_Users" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>"
SelectCommand="SELECT * FROM [Users]" >
</asp:SqlDataSource>
在后面的代码中:
ds_Users.SelectStatement += " WHERE [UserType] LIKE '" + LocalVariable + "'";
让我们假设上述事件绑定到一个以UserTypes
作为项目的过滤器组合框中。
如果该列表中包含“查看全部”选项,我如何将SelectStatement
还原为原始查询,而又不将Select语句(SELECT * FROM [Users]
)作为另一个字符串存储在后面的代码中。那有可能吗?
答案 0 :(得分:0)
您必须始终在每次加载页面或回发时修复SQL Select命令。您确实要绑定一个,然后仅在单击更改SQL命令的按钮时再绑定一次。
这里是一个示例,请注意gvMyLista
是使用数据的GridView。
protected void Page_Load(object sender, EventArgs e)
{
FixTheSelectCommand();
}
void FixTheSelectCommand()
{
// this is an example - make your test here to know if there is a valid variable
if(LocalVariable != null)
ds_Users.SelectCommand = "SELECT * FROM [Users] WHERE [UserType] LIKE '" + LocalVariable + "'";
else
ds_Users.SelectCommand = "SELECT * FROM [Users]";
if (!IsPostBack)
gvMyLista.DataBind();
}
// when a search button clicked that change the search text
protected void btnSearchFor_Click(object sender, System.EventArgs e)
{
gvMyLista.DataBind();
}