1. 程式人生 > >基於asp.net的web頁面動態控制元件建立以及使用

基於asp.net的web頁面動態控制元件建立以及使用

摘要:

    web設計中,有很多場合,頁面的控制元件要動態建立甚至只能動態建立,這樣可以增加頁面的靈活性,但是給程式設計師帶來了一些麻煩,比如要使用動態建立的控制元件,怎麼使用,都是要求解決的問題,本文基於asp.net,簡要介紹了頁面的控制元件如何動態建立,同時也介紹了怎麼使用這些動態建立的控制元件的方法。

前言:

    自從Microsoft2000年推出了.net framework以來,給基於internet程式設計的程式設計師帶來了巨大的福音,.net framework大大簡化了web頁面設計的繁雜,可見即可得的頁面效果大大簡化了頁面設計程式設計師的工作任務,code behind

技術將頁面與程式碼分離,減少了web頁面的無序狀態,其中大量可以複用的控制元件可以無縫的被瀏覽器使用,由於網際網路上95%的瀏覽器均是MicrosoftInternet Explorer,程式設計師大可以放心的使用這些控制元件而不用擔心瀏覽器的相容性,本文從Microsoft.netcom控制元件開始,給出具體例子說明如何在頁面上動態建立控制元件,以及怎麼來使用這些動態建立的控制元件。其中具體使用的語言是vb.net

1.Microsoft控制元件

    目前用於瀏覽器的動態資料瀏覽方式主要有以下兩種,(1.使用java applet(2).使用可以在瀏覽器中運用的控制元件。兩種方法各有利弊,使用

java applet,頁面執行較慢,程式設計複雜,可複用性不大,這種方式現在使用較少;越來越多的程式設計師較傾向於使用控制元件。其中我們在web中大多數時候是使用到.net web controlhtml control以及一些資料操作控制元件。

    一般的,在web設計中,通常使用拖拽的方式,將空間放置到頁面,然後設定屬性就可以了,然後再後臺程式中程式設計使用就可以了。這種方式操作起來很方便,可見即可得,同時引用這些放置好的控制元件也很方便,但是在有些情況下,我們卻不得不要動態建立控制元件,比如對一一個數據庫中的某一些欄位,對於不同身份的使用者,見到的欄位數目是不一樣的;還有就是對於不同身份的使用者對於某一控制元件的使能狀態是不一樣的,我們不能再頁面設計時採用一個標準,最好的方式就是動態建立控制元件,對於不同的情況,通過程式來控制,放置在頁面上的控制元件的數目也通過程式來控制。然後通過程式來引用這些建立好的控制元件。

2.建立控制元件

    對於程式設計師來說,用例子說話是最好的方式來提供解決方案,我將在頁面上動態的放置一些標籤(label)和文字框(textbox,這些文字框裡頭放置的是從dataset取到的資料,同時我把這些文字框放置到一個表格的相應單元格里,可以實現有序的放置,首先在頁面新增一個table。然後根據需要建立不同的列數和行數,如下為動態建立這些文字框的程式碼:

Dim i As Integer<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

For i = 0 To IntRowCount - 1

Dim r As TableRow = New TableRow()

Dim c1 As TableCell = New TableCell()

Dim myLabel1 As Label = New Label()

這裡設定該label的ID,對於不同的label,必須設定成不同的ID,我這裡設定成字首lbl1加欄位名的組合,例如lbl1xlmc等。

myLabel1.ID = "Lbl1" & Trim(OleDsField.Tables("Field").Rows(i).Item("column_name")).ToString()

下面的條件語句是為了判斷資料庫中在欄位的值是否為空,根據條件賦予label不同的文字。

If OleDsField.Tables("Field").Rows(i).Item("column_title").GetType.ToString = "System.DBNull" Then

myLabel1.Text = ""

Else

myLabel1.Text = Trim(OleDsField.Tables("Field").Rows(i).Item("column_title"))

End If

c1.Controls.Add(myLabel1)

r.Cells.Add(c1)

Dim c2 As TableCell = New TableCell()

Dim mytextbox As TextBox = New TextBox()

mytextbox.ID = "Txt" & Trim(OleDsField.Tables("Field").Rows(i).Item("column_name")).ToString()

If OleDsResult.Tables("Result").Rows(0).Item(i).GetType.ToString = "System.DBNull" Then

mytextbox.Text = ""

Else

mytextbox.Text = Trim(OleDsResult.Tables("Result").Rows(0).Item(i))

End If

If Trim(OleDsField.Tables("Field").Rows(i).Item("column_enable")) = "是" Then

mytextbox.Enabled = True

Else

mytextbox.Enabled = False

End If

c2.Controls.Add(mytextbox)

r.Cells.Add(c2)

Table3.Rows.Add(r)

Next

    這樣就成功地添加了兩列到表裡,至於行數由變數IntRowCount決定,其中IntRowCount為取資料庫時得到的記錄的行數

 

3.使用動態建立的控制元件

    使用這些控制元件時,首先必須要知道這些控制元件的ID,對於上文所說的這些控制元件,由於ID名稱不定,使用時必須也要根據條件來使用。比如我要找到相應的文字框的ID,就用以下程式碼可以實現:

Dim txt As TextBox

txt = Me.FindControl("txt" & OleDsField.Tables("Field").Rows(i).Item_

("column_name"))

   這樣就找到了要使用的文字框的這個控制元件,然後就可以使用相應功能。

 

4.小結

   使用動態建立控制元件時,難點在於怎麼來操作這些動態建立的控制元件。本文給出了程式碼,本文例子在.net 2002+windows 2000下除錯通過。同時也給出了web設計的一個方法,和我聯絡,歡迎批評指正。

相關推薦

基於asp.net的web頁面動態控制元件建立以及使用

摘要:     web設計中,有很多場合,頁面的控制元件要動態建立甚至只能動態建立,這樣可以增加頁面的靈活性,但是給程式設計師帶來了一些麻煩,比如要使用動態建立的控制元件,怎麼使用,都是要求解決的問題,

ASP.net頁面控制元件

ASP.NET 是一個使用 HTML、CSS、JavaScript 和伺服器指令碼建立網頁和網站的開發框架。 ASP.NET 支援三種不同的開發模式: Web Pages(Web 頁面)、MVC(Model View Controller 模型-檢視-控制器)

ASP.NET Web 伺服器控制元件事件模型

ASP.NET 中有一個重要功能,允許您通過與客戶端應用程式中類似的、基於事件的模型來對網頁進行程式設計。舉一個簡單的例子,例如,可以向 ASP.NET 網頁中新增一個按鈕,然後為該按鈕的 Click 事件編寫事件處理程式。儘管這種情況在僅使用客戶端指令碼(在動態 HTML 中處理按鈕的 oncli

ASP.NET中驗證控制元件的使用

目錄 1.RequireFiledValidation  2.RangeValidation  3.CompareValidator  4.RegularExpressionValidator(正則表示式線上編輯器:http://tools.jb51.n

Webview頁面控制元件元素定位

前言 現在有很多App都是Hybrid的,即有原生的頁面又有Webview的頁面,元素的可以通過uiautomatorviewer工具 進行控制元件元素的定位,Webview頁面的則無法通過此方式定位,而是需要Chrome瀏覽器來協助定位。 Webview控制元件元素定位 1、在手機中開啟當前ap

unity 編輯器----編輯器視窗控制元件建立和UI佈局

unity編輯器視窗控制元件通過EditorGUILayout、EditorGUI、GUILayout和GUI來建立控制元件和實現佈局。 EditorGUILayout、EditorGUI這兩個是unity編輯器使用。 而GUILayout和GUI執行時遊戲中和編輯器中都可以使用,但是這兩個

ASP.NET Atlas簡單控制元件介紹——Sys.Component基類與Sys.UI.Control基類

本系列有三篇文章: ASP.NET Atlas簡單控制元件介紹——Sys.Component基類與Sys.UI.Control基類 ASP.NET Atlas簡單控制元件介紹——InputControl,TextBox,Button和CheckBox ASP.N

ASP.NET】——複合控制元件之TreeView控制元件

在ASP.NET中常用的複合控制元件有:TreeView控制元件,MultiView控制元件,JavaScript方式的選項卡,WiZard控制元件。 今天先來學習TreeView控制元件。 在開發過程中經常會遇到一些有樹形層次關係的資料,比如顯示無限極分類和顯示某個檔案下的所有檔案及資

VS程式設計,WPF中,通過telerik控制元件建立顏色選擇器,顏色拾取器,調色盤的一種方法

 這裡展示使用telerik控制元件時,呼叫顏色調色盤,顏色選擇器,顏色拾取器的一種方法 1、增加引用 2、前臺定義引用 xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"

_065_Android_BaseAdapter的convertView回收機制與動態控制元件響應

轉自http://blog.csdn.net/harvic880925/article/details/25335957,感謝作者的無私分享。  對於listView的BaseAdapter的派生,難度比較大。最難理解的莫過於getView(int position, View con

c#學習筆記三 如何訪問另一個頁面控制元件資料

      在Vs2005中新建一個Web專案,新增兩個Web窗體(Default、Default2),在Default窗體上新增兩個標準控制元件,一個TextBox(TextBox1)、一個Button(Button1),設定Button1的PostBackUrl屬性指向D

C++利用WebBrowser控制元件建立自己的瀏覽器

  是不是很早就想擁有一個很有個性的瀏覽器?本文將介紹如何利用MicroSoft的     WebBrowser控制元件在VC中建立一個屬於自己的瀏覽器。過程如下:   ①新建一個基於對話方塊的工程,命名為test,然後在對話方塊上單擊右鍵,選擇     Insert ActiveX Control…在彈出

Asp.net_使用FileUpload控制元件上傳檔案通用方法分享

FileUpload控制元件是.net自帶的控制元件,相信大家上傳檔案的時候在不借助第三方控制元件時還是非常方便的,現在博主就拿實際專案中總結的通用方法給大家分享一下,相信對初學者還是很有幫助的(ls_man)。 /// <summary>使用FileUplo

ASP.NET MVC 常用控制元件的使用方法總結

1:action 重定向       (a).return RedirectToAction("Index");//可跳本controller中的action       (b).return RedirectToRoute(new {controller="Home",a

C# ASP.NET上傳控制元件fileupload的使用

程式碼實現了簡單的圖片上傳功能(改一下也可以上傳其他的),沒有做圖片大小和格式的判斷,主要是熟悉fileupload控制元件 介面程式碼: <%@ Page Language="C#" Aut

ABAP OO 控制元件建立步驟簡單介紹

作為 一個ABAPER,必須得熟悉OO 控制元件的使用,如OO ALV、TEXTEDIT、TREE、PICTURE等等。 可使用事務程式碼BIBS-使用者介面設計的範例進行學習,裡面有很全的OO控制元件例子。 下面簡單介紹OO 建立步驟: 1、在自定義螢幕上建立一個自定義控

asp.net 資料驗證控制元件的使用例項

操作題1 請為Zootopia 的居民,設計一個身份認證網站,使每位居民擁有合法身份。要求註冊頁面如下中至少包含下圖中的相關資訊,並實現相應的驗證功能。 [要求]: 1. 網站包含登入頁面Login.aspx和註冊頁面Register.aspx; 2. 登入頁面,自行設計;

Asp.net中用FileUpload控制元件上傳檔案

後臺程式碼:protected void Button1_Click(object sender, EventArgs e)        {string upTempFileBasePath = this.MapPath(@"~/Member/UserUpLoad/Temp

ASP.NET的FileUpload控制元件實現帶對話方塊的FTP檔案上傳功能

      最近不得已開始做網頁,一個ASP.NET的專案,需要實現FTP上傳功能,於是上網廣搜程式碼,發現FTP上傳的程式碼到處都是,隨手拈來,可是一般來說客戶端上傳檔案都需要一個檔案選擇對話方塊,正好自帶的FileUpload控制元件能夠實現。但是網上搜到FileUpl

BaseAdapter——convertView回收機制與動態控制元件響應

前言:對於listView的BaseAdapter的派生,難度比較大。最難理解的莫過於getView(int position, View convertView, ViewGroup parent)這個函式是如何產生每條記錄的,有些部落格中利用holderView,有些部