2016-06-08 129 views
2

我是ASP.NET的新手,我想使用連接到數據庫的WebForms編寫簡單的WebApplication,並在Grid(帶分頁)中顯示一些數據。我使用Visual Studio 2015ASP.NET GridView模型綁定

爲了顯示數據,我使用了GridView和ObjectDataSource。

我使用的EntityFramework和方法GETCUSTOMER()返回所有的客戶從database.I使用該方法SelectMethod

我的問題是:
這兩個控件,GridView的一個ObjectDataSource,有Paging and SelectMethod

參數

如果我想使用Model Binding,應該使用Paging和SelectMethod的哪個控制參數?

目前我使用的是這樣的:

GridView :<br> 

AllowPaging  = true<br> 
PageSize = 10<br> 
SelectMethod = ""<br> 
DataSourceID = dsCustomers<br> 


ObjectDataSource:<br> 
ID     = dsCustomers<br> 
EnablePaging  = false<br> 
SelectMethod  = GetCustomers()<br> 
MaximumRowParameterName = ""<br> 
StartRowIndexParameterName = ""<br> 


這些設置工作,將數據持續顯示和分頁工作。
但我不確定這是否是正確的方法。

如果我更改設置Paging and SelectMethod像這樣

GridView: <br> 
AllowPaging  = false<br> 
PageSize  = ""<br> 
SelectMethod = GetCustomers()<br> 
DataSourceID = dsCustomers<br> 


ObjectDataSource:<br> 
ID     = dsCustomers<br> 
EnablePaging    = true<br> 
SelectMethod    = <br> 
MaximumRowParameterName  = ""<br> 
StartRowIndexParameterName = ""<br> 

我得到一個錯誤:

的DataSource或DataSourceID的不能上定義的「gridViewCustomers」時,它使用模型綁定 。

如果我在GridView刪除的DataSourceID然後我得到

「名爲‘GetCustomers的’公共方法找不到或 有名稱相同的多個方法」

回答

0

你在第一個例子中的做法是正確的。

  1. 尋呼 - 應在GridView的級別設置,指定無論是允許與否和多少行顯示(PageSize)。
  2. CRUD方法 - SelectMethodInsertMethodDeleteMethodUpdateMethod應在ObjectDataSource指定。如果你改變這SqlDataSource你需要改變它的SqlDataSource水平,但隨後的屬性名稱略有不同e.g SelectCommandInsertCommand E.T.ç

注:ObjectDataSourceEnablePaging財產可以最肯定被配置爲允許在GridView分頁但它是更爲複雜,在所有這些年來我已經與GridView控制我從來沒有見過任何人做工作就這樣。儘管如此,如果你很好奇如何做到這一點,請看this MSDN article

+0

thx爲您的答案 但我看到了很多例子在網上把SelectMethod在GridView ,例如http://www.dotnetjalps.com/2013/03/SelectMethod-in-asp-net-45-Model -binding.html 這是什麼混淆了我...有沒有關於如何實現模型綁定與GridView和數據源的最佳做法? – Spacewalker

+0

這一切都取決於你的要求是什麼。如果你只需要綁定一些數據到gridview然後繼續並使用SelectMethod.But如果你有一大堆網格和其他控件應該使用相同的數據源然後使用一個ObjectDataSource或一個SqlDataSource並設置它們的select方法。沒有正確或錯誤的方法來做到這一點,這一切都取決於你的要求 –