基於asp.net的web頁面動態控制元件建立以及使用
摘要:
web設計中,有很多場合,頁面的控制元件要動態建立甚至只能動態建立,這樣可以增加頁面的靈活性,但是給程式設計師帶來了一些麻煩,比如要使用動態建立的控制元件,怎麼使用,都是要求解決的問題,本文基於asp.net,簡要介紹了頁面的控制元件如何動態建立,同時也介紹了怎麼使用這些動態建立的控制元件的方法。
前言:
自從Microsoft在2000年推出了.net framework以來,給基於internet程式設計的程式設計師帶來了巨大的福音,.net framework大大簡化了web頁面設計的繁雜,可見即可得的頁面效果大大簡化了頁面設計程式設計師的工作任務,code behind
1.Microsoft控制元件
目前用於瀏覽器的動態資料瀏覽方式主要有以下兩種,(1).使用java applet。(2).使用可以在瀏覽器中運用的控制元件。兩種方法各有利弊,使用
一般的,在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,有些部