在ASP.NET中使用ObjectDataSource資料控制項和GridView顯示資料(2)

來源:互聯網
上載者:User

接上回書說,我們實現了基本的顯示和排序.那麼今天就來做做查詢和分頁.

首先先做通過傳遞普通參數的形式來實現條件查詢的.這裡僅僅做個示範.

我們要通條件查詢那就需要修改我們原來的查詢方法了.

        [DataObjectMethod(DataObjectMethodType.Select)]        public static List<UserInfo> GetUserInfoList(string name, string sort)        {           ........        }

我們這裡加了一個參數用來傳入要查詢的使用者名稱稱.

但是這裡一定要注意.當你修改了後面的方法後一定要做一件事情.

那就是配置資料來源

因為我們修改後面的方法參數所以這裡也變化了如果不重新設定資料來源就會報一個錯誤那就是

當你重新設定資料來源的時候就可以給你的參數設定值的來源了

這裡我給name參數設定了值的來源為控制項類型.控制項名為txt_name,這樣你就可以通過傳遞的值來改變你返回集合的內容了.而且這裡因為我們指定資料來源是txt_name所以當你點擊查詢按鈕的時候,他會自動重新綁定GridView控制項.也就是你不必再執行GridView的DataBind方法了

上面已經實現了一點點效果了那最後就實現我們這次要最終想要的結果吧.

在傳遞值的時候會發現如果傳遞多個查詢條件的時候參數還是比較多的.而且我們本來是有那個UserInfo類的,那我們乾脆把要查詢的條件內容放到一個對象裡傳過來好了,那樣還能通過他的屬性Set方法來驗證一下.

public static List<UserInfo> GetUserInfoList(UserInfo info,int start,int max, string sort){......}

那麼我們捎帶的就把分頁也做了吧.

根據我們的要求就把原來的方法改寫成↑這樣的了.傳遞了一個對象和分頁的兩個參數

在這裡我們可以和上次說到的排序那樣來在ObjectDataSource中設定這兩個參數他們分別是

StartRowParameterName和MaximumRowsParamterName

但是我這裡使用通過在ObjectDataSource的Selecting事件中給這個賦值,這樣就直接可以使用第三方的分頁控制項了

        protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)        {            Models.UserInfo info = new Models.UserInfo();            info.uname = txt_name.Text;            e.InputParameters["info"] = info;            e.InputParameters["start"]=傳入的值;            e.InputParameters["max"]=傳入的值;        }

這樣我們就可以將你自己賦值的info對象和從分頁控制項得來的start和max值傳入到BLL中的Select方法中了.

這裡講述了如何通過事件給已訂好的方法動態傳遞你的值.

這裡需要注意:因為現在的參數是後期才賦值的所以你必須在你的查詢按鈕中添加一句話

        protected void btn_query_Click(object sender, EventArgs e)        {            GridView1.DataBind();//這裡必須重新綁定一下GridView        }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.