zoukankan      html  css  js  c++  java
  • ObjectDataSourc用法之二(過濾)

    ObjectDataSourc用法之二(過濾)

    1.       准備條件

    參數:ObjectDataSource用法之一(SelectMethod來進行簡單的邦定)

    2.       在業務處理類中添加如下方法

    public DataSet FilterItems()

    {

        System.Xml.XmlTextReader xr = new XmlTextReader(_path);

        DataSet ds = new DataSet();

        ds.ReadXml(xr);

        return ds;

    }

    3.       在aspx頁面中添加內容

    <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>

    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"

        SelectMethod="FilterItems" FilterExpression="UID='{0}' or Email='{1}'" TypeName="Member">

        <FilterParameters>

            <asp:Parameter Name="UID" DefaultValue="bruce" />

            <asp:FormParameter Name="Email" FormField="txtEmail" DefaultValue="maxlimin@maxense.com" />

        </FilterParameters>

    </asp:ObjectDataSource>

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"

        DataSourceID="ObjectDataSource1">

        <Columns>

            <asp:BoundField DataField="UID" HeaderText="UID" SortExpression="UID" />

            <asp:BoundField DataField="PWD" HeaderText="PWD" SortExpression="PWD" />

            <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />

        </Columns>

    </asp:GridView>

             說明:SelectMethod這個方法就不用說了; FilterExpression的值為一個查詢表達式,格式如:

    屬性 表達式 格式化字符串

    屬性為SelectMethod返回結果集中的對應的欄位名稱(我們可以解成在表的字段名稱或對象的屬性)…

    表達式為=、>=、<=、!=等等

    格式化之符串為{0}、{1}、{2}等

    多個表過式之前使用and 或 or 來過行連接……其實說白了就跟SQL語句一樣

    至於這裏面的{0}、{1}、{2}的值怎麼來的呢……我們可以通過FilterParameters來進行指定,註意上面的asp: FormParameter的作用是表示將這個輸入參數與指定的表單進行邦定,如上我就是將電子郵件這個欄位與一個TextBox進行邦定了,那麼只要將這個TextBox的值改變時就是重新進行篩選了…當然我們還可以通過後端代碼來進行邦定了如下

    ObjectDataSource1.FilterParameters.Clear();

    ObjectDataSource1.FilterParameters.Add("UID", "henry");

    ObjectDataSource1.FilterParameters.Add("Email", "maxlimin@maxense.com");

    這裏有一點需要註冊的就是,如我將上面的代碼改改

    ObjectDataSource1.FilterParameters.Clear();

    ObjectDataSource1.FilterParameters.Add("", "henry");

    ObjectDataSource1.FilterParameters.Add("", "maxlimin@maxense.com");

    所得到的結果都是一樣了,這裏只認順序不認名稱的,也就是說{0}對應的就是集合中的第一個參數{1}對應的就是集合中的第二個參數了……所以說上面的

    <FilterParameters>

            <asp:Parameter Name="UID" DefaultValue="bruce" />

            <asp:FormParameter Name="Email" FormField="txtEmail" DefaultValue="maxlimin@maxense.com" />

        </FilterParameters>

    這個代碼,我們也要註冊它的順序了,切記不可將順序搞混了……

    這裏需要重點提一下的就是:當我們為ObjectDataSource使用了FilterExpression參數時,那麼SelectMethod參數所對應的方法的返回結果必須是DataSet或者是DataTable. 還有一點就是過濾的意思就是在DataSet或DataTable邦定到GridView時按欄位進行篩選顯示,並不是數據層次的篩選而是內存中的篩選了……

  • 相关阅读:
    关于C++中操作符重载的疑问 :四个运算符=, ->, [], ()不可以重载为全局函数(友员函数)...
    linux内核移植过程问题总结
    关于开发板用tftp下载失败分析
    阿里云ECS下安装的MySQL无法远程连接?
    uva729
    使用 Confluence 6 服务器移动应用
    Confluence 6 移动浏览查看任务
    Confluence 6 移动浏览查看通知
    Confluence 6 移动浏览查看页面,博客和评论
    Confluence 6 移动浏览搜索内容和人
  • 原文地址:https://www.cnblogs.com/OpenCoder/p/1567718.html
Copyright © 2011-2022 走看看