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時按欄位進行篩選顯示,並不是數據層次的篩選而是內存中的篩選了……

  • 相关阅读:
    Flutter竟然发布了1.5版本!!!!
    微软最爽命令行工具发布!
    被忽略的CSS规则
    代码精进之路读后感(六-结束篇)
    深入解析QML引擎, 第4部分: 自定义解析器
    深入解析QML引擎, 第3部分: 绑定类型
    深入解析QML引擎, 第2部分: 绑定(Bindings)
    编译V8过程全纪录
    面试总结
    Qt网络编程
  • 原文地址:https://www.cnblogs.com/OpenCoder/p/1567718.html
Copyright © 2011-2022 走看看