返回首頁
當前位置: 主頁 > 網絡編程 > .Net實例教程 >

ASP.NET-數據綁定

時間:2020-01-16 15:31來源:知行網www.wzliqi.com 編輯:麥田守望者

 每個ASP.NET Web表單控件都從其父Control類繼承DataBind方法,這使它具有將數據綁定到其至少一個屬性的固有能力。這稱為簡單數據綁定內聯數據綁定。

簡單的數據綁定涉及將實現IEnumerable接口的任何集合(項目集合)或DataSet和DataTable類附加到控件的DataSource屬性。

另一方面,某些控件可以通過DataSource控件將記錄,列表或數據列綁定到其結構中。這些控件派生自BaseDataBoundControl類。這稱為聲明性數據綁定。

數據源控件可幫助數據綁定控件實現功能,例如排序,分頁和編輯數據集合。

BaseDataBoundControl是一個抽象類,它被另外兩個抽象類繼承:

  • 數據綁定控件
  • HierarchicalDataBoundControl

抽象類DataBoundControl再次由另外兩個抽象類繼承:

  • 列表控件
  • CompositeDataBoundControl

能夠進行簡單數據綁定的控件是從ListControl抽象類派生的,這些控件是:

  • 項目符號列表
  • 復選框列表
  • 下拉列表
  • 列表框
  • 單選按鈕列表

能夠聲明性數據綁定(更復雜的數據綁定)的控件是從抽象類CompositeDataBoundControl派生的。這些控件是:

  • 詳細查看
  • 表格瀏覽
  • 網格視圖
  • 記錄清單

簡單數據綁定

簡單數據綁定涉及只讀選擇列表。這些控件可以綁定到數據庫中的數組列表或字段。選擇列表從數據庫或數據源中獲取兩個值;一個值由列表顯示,另一個值視為與顯示相對應的值。

讓我們舉一個小例子來理解這個概念。創建一個帶有項目符號列表和SqlDataSource控件的網站。配置數據源控件以從數據庫中檢索兩個值(我們使用與上一章相同的DotNetReferences表)。

為項目符號列表控件選擇數據源包括:

  • 選擇數據源控件
  • 選擇要顯示的字段,稱為數據字段
  • 選擇值的字段

選擇數據源

執行該應用程序后,檢查整個標題列是否已綁定到項目符號列表并顯示。

選擇數據源2

聲明式數據綁定

在上一個教程中,我們已經使用GridView控件使用了聲明式數據綁定。能夠以表格形式顯示和處理數據的其他復合數據綁定控件是DetailsView,FormView和RecordList控件。

在下一個教程中,我們將研究用于處理數據庫的技術,即ADO.NET。

但是,數據綁定涉及以下對象:

  • 一個數據集,用于存儲從數據庫檢索到的數據。

  • 數據提供程序,該命令通過連接上的命令從數據庫中檢索數據。

  • 發出存儲在命令對象中的select語句的數據適配器;它也可以通過發出Insert,Delete和Update語句來更新數據庫中的數據。

數據綁定對象之間的關系:

聲明式數據綁定

讓我們采取以下步驟:

步驟(1):創建一個新網站。右鍵單擊解決方案資源管理器中的解決方案名稱,然后從“添加項目”對話框中選擇項目“類”,以添加一個名為booklist的類。將其命名為booklist.cs。

using System; using System.Data; using System.Configuration; using System.Linq;  using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts;  using System.Xml.Linq;  namespace databinding {    public class booklist    {       protected String bookname;       protected String authorname;       public booklist(String bname, String aname)       {          this.bookname = bname;          this.authorname = aname;        }              public String Book       {          get          {             return this.bookname;          }          set          {             this.bookname = value;          }       }              public String Author       {          get          {             return this.authorname;          }          set          {             this.authorname = value;          }       }    } }

步驟(2):在頁面上添加四個列表控件:一個列表框控件,一個單選按鈕列表,一個復選框列表,一個下拉列表以及四個標簽以及這些列表控件。該頁面在設計視圖中應如下所示:

列表框控件

源文件應如下所示:

<form id="form1" runat="server">    <div>           <table style="width: 559px">          <tr>             <td style="width: 228px; height: 157px;">                <asp:ListBox ID="ListBox1" runat="server" AutoPostBack="True"                    OnSelectedIndexChanged="ListBox1_SelectedIndexChanged">                </asp:ListBox>             </td>              <td style="height: 157px">                <asp:DropDownList ID="DropDownList1" runat="server"                    AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">                </asp:DropDownList>             </td>                       </tr>           <tr>             <td style="width: 228px; height: 40px;">                <asp:Label ID="lbllistbox" runat="server"></asp:Label>             </td>              <td style="height: 40px">                <asp:Label ID="lbldrpdown" runat="server">                </asp:Label>             </td>          </tr>           <tr>             <td style="width: 228px; height: 21px">             </td>              <td style="height: 21px">             </td>                        </tr>           <tr>             <td style="width: 228px; height: 21px">                <asp:RadioButtonList ID="RadioButtonList1" runat="server"                   AutoPostBack="True"  OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">                </asp:RadioButtonList>             </td>              <td style="height: 21px">                <asp:CheckBoxList ID="CheckBoxList1" runat="server"                    AutoPostBack="True" OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged">                </asp:CheckBoxList>             </td>                          </tr>           <tr>             <td style="width: 228px; height: 21px">                <asp:Label ID="lblrdlist" runat="server">                </asp:Label>             </td>              <td style="height: 21px">                <asp:Label ID="lblchklist" runat="server">                </asp:Label>             </td>                     </tr>       </table>                 </div> </form>

步驟(3):最后,在應用程序的例程后面編寫以下代碼:

public partial class _Default : System.Web.UI.Page {    protected void Page_Load(object sender, EventArgs e)    {       IList bklist = createbooklist();              if (!this.IsPostBack)       {          this.ListBox1.DataSource = bklist;          this.ListBox1.DataTextField = "Book";          this.ListBox1.DataValueField = "Author";                    this.DropDownList1.DataSource = bklist;          this.DropDownList1.DataTextField = "Book";          this.DropDownList1.DataValueField = "Author";                    this.RadioButtonList1.DataSource = bklist;          this.RadioButtonList1.DataTextField = "Book";          this.RadioButtonList1.DataValueField = "Author";                    this.CheckBoxList1.DataSource = bklist;          this.CheckBoxList1.DataTextField = "Book";          this.CheckBoxList1.DataValueField = "Author";                    this.DataBind();       }    }        protected IList createbooklist()    {       ArrayList allbooks = new ArrayList();       booklist bl;              bl = new booklist("UNIX CONCEPTS", "SUMITABHA DAS");       allbooks.Add(bl);              bl = new booklist("PROGRAMMING IN C", "RICHI KERNIGHAN");       allbooks.Add(bl);              bl = new booklist("DATA STRUCTURE", "TANENBAUM");       allbooks.Add(bl);              bl = new booklist("NETWORKING CONCEPTS", "FOROUZAN");       allbooks.Add(bl);              bl = new booklist("PROGRAMMING IN C++", "B. STROUSTROUP");       allbooks.Add(bl);              bl = new booklist("ADVANCED JAVA", "SUMITABHA DAS");       allbooks.Add(bl);              return allbooks;    }        protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)    {       this.lbllistbox.Text = this.ListBox1.SelectedValue;    }        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)    {       this.lbldrpdown.Text = this.DropDownList1.SelectedValue;    }        protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)    {       this.lblrdlist.Text = this.RadioButtonList1.SelectedValue;    }        protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)    {       this.lblchklist.Text = this.CheckBoxList1.SelectedValue;    } }

請注意以下幾點:

  • booklist類具有兩個屬性:bookname和authorname。

  • createbooklist方法是用戶定義的方法,它創建一個名為allbooks的書目對象數組。

  • Page_Load事件處理程序可確保創建書籍列表。該列表為IList類型,該列表實現IEnumerable接口,并能夠綁定到列表控件。頁面加載事件處理程序將IList對象“ bklist”與列表控件綁定。將顯示bookname屬性,并將authorname屬性視為值。

  • 當頁面運行時,如果用戶選擇一本書,則其名稱將由列表控件選擇并顯示,而相應的標簽將顯示作者名稱,這是列表控件所選索引的對應值。

數據綁定結果

 
------分隔線----------------------------
標簽(Tag):
------分隔線----------------------------
推薦內容
  • ASP.NET-自定義控件

    ASP.NET允許用戶創建控件。 這些用戶定義的控件分為以下幾類: 用戶控件 自定義控件 ...

  • ASP.NET-數據綁定

    每個ASP.NET Web表單控件都從其父Control類繼承DataBind方法,這使它具有將數據綁定到...

  • ASP.NET-數據源

    數據源控件與數據綁定控件進行交互,并隱藏復雜的數據綁定過程。 這些工具可將數據提...

  • ASP.NET-Ajax控件

    AJAX代表異步JavaScript和XML。 這是一種跨平臺技術,可加快響應時間。 AJAX服務器控...

  • ASP.NET-面板控件

    面板控件用作頁面上其他控件的容器。 它控制其包含的控件的外觀和可見性。 它還允許以...

  • ASP.NET-多視圖

    MultiView和View控件使您可以將頁面的內容分為不同的組,一次僅顯示一個組。 每個View...

猜你感興趣
久久99久久99精品免视看