2014-09-30 70 views
0

我在asp.net和它的工具方面經驗豐富,我總是使用gridview來填充數據庫中的數據,我通常在.aspx代碼中編輯它,很少在.cs代碼中編輯它,但是我很喜歡windows窗體gridview,它是如何實現的與asp.net的gridview不同。它沒有代碼,它只能從嚮導和屬性等編輯或以任何其他方式編輯?Windows窗體Gridview與asp.net gridview不同?

+1

你是什麼意思*它沒有代碼*?你在說什麼gridview? 'DataGridView'或? – 2014-09-30 06:16:30

+0

Windows窗體對控制操作的本地聲明性能力非常有限,因此,除了一些簡單的綁定方案之外,您將不得不使用大量的代碼隱藏來獲得所需的外觀和行爲。而現在這個問題有點不明確,而且過於寬泛。你能否澄清問題的另一部分:不同之處 - 互動,模板,行爲......? – 2014-09-30 06:27:28

+0

liker它只有.cs代碼和即時通訊談論C#.net DataGridview,winforms – 2014-09-30 06:28:38

回答

2

ASP.NET數據綁定中控件類與WinForms相對應的主要區別在於對象生命週期和用戶交互。

你可以看到,DataGridView包含更多的方法,然後GridView。

DataGridView Methods - 400

GridView Methods - 147

這是由於這樣的事實,WinForms控件處理過程中的用戶交互,並負責處理鼠標事件,鍵盤事件和動態佈局操作。 ASP.NET控件通常僅限於可以使用呈現的HTML實現的內容。作爲一項基本功能,只有在WebForms功能絕對需要時才使用Javascript,例如回發和部分更新面板。在DataGridView中考慮以下方法:AutoResizeRow(Int32)。 ASP.NET的GridView沒有這種方法,因爲這種方法需要JavaScript操作,這與瀏覽器中的HTML渲染引擎有很大關係。這同樣適用於鼠標和鍵盤事件。

至於數據操作方法,ASP.NET數據綁定控件包含幾乎相同的一組功能。這裏的區別是數據必須在進程外進行操作,並且控制狀態必須是序列化的,以便在處理服務器端的回發事件之前可以恢復它。

ASP.NET每次發生服務器端事件時都需要重新創建控件實例。 這就是爲什麼ASP.NET GridView包含{Load,Save} {ViewState,ControlState}方法的原因。

在WinForms中,相反,只有一個控件實例需要相同的視圖部分。國家生活在進程中,不需要序列化。

至於設計師支持和代碼隱藏 - 它的工作方式幾乎相同。