asp:CheckBox:
<asp:CheckBox id="MyControl" name="MyControl" Text="MyControl" runat="server"/>
asp:RadioButton:
<asp:RadioButton id="MyControl" Text="My RadioButton" GroupName="aaa" runat="server"/>
注:屬性GroupName與htmlinputRadioButton控件的name屬性等同!!
asp:HyperLink:
<asp:HyperLink id="MyControl" Text="My HyperLink" NavigateUrl="asp_hyperlink.aspx"
runat="server"/>
注:1 此控件的NavigateUrl和Target屬性的區別???
2 另可以添加name屬性例:
<asp:HyperLink id="MyControl" Text="Paragraph One" name="para1" runat="server"/>
接著在該頁面其它部位利用下面html元素到達Paragraph:
<a href="thepage.aspx#para1">Go to Paragraph</a>
實現創建一個"錨".
3 使用Attributes屬性:
進行設置和修改:
MyAnchor.Attributes("name") = strNewName ;'
訪問:
strNewName = MyAnchor.Attributes("name");
因此,即使沒有Name屬性也可以用此法添上一個name屬性.當想要為一個元素添加非標準的屬性時,這種方
法很有用.
4 還可以應用ImageUrl屬性實現使用圖像作為超連接.
asp:LinkButton:
<asp:LinkButton id="MyControl" Text="My LinkButton" runat="server"/>
注:默認下將使用AutoPostBack功能,點擊后表單將會被返回到生成Click事件的服務器中.(估計這就是命
名為LinkButton的原因吧!類似于button)
此外,不能選擇使用圖像而只能使用文本.
asp:Image:(用于需要在頁面中顯示圖像,并且在服務端代碼中對該控件進行訪問)
<asp:Image id="MyControl" ImageUrl="bokk.gif" runat="server"/>
asp:Panel:(創建格式化<div>元素的一種途徑)
<asp:Panel id="mycontrol" Text="aaa" runat="server">
some text inside the Panel control!
</asp:Panel>
注:對于任何服務器控件,可以使用Style集合添加自己額外的樣式屬性:
MyControl.Style("slector-name")="value";
asp:Label:
<asp:Label id="MyControl" Text="My label" runat="server"/>
注:此控件能客服<asp:Panel>控件自動換行的問題,能將其中的內容與其它元素和文本排列在一行中!
asp:Button:
<asp:Button id="aa" Text="value" runat="server"/>
asp:ImageButton:
<asp:ImageButton id="s" ImageUrl="bool.gif" runat="server"/>
asp:TextBox:
<asp:TextBox id="aa" Text="ss" runat="Server"/>
注:使用TextMode屬性可以設置單行,多行和密碼模式
asp:Table:
<asp:Table id="aa" runat="server"/>
注:(附服務端處理程序)
int intRows = Convert.ToInt32(selRows.Value);
int intCols = Convert.ToInt32(selCols.Value);
int intRowCount;
int intColCount;
TableRow objRow;
TableCell objCell;
for (intRowCount = 0; intRowCount <= intRows - 1; intRowCount++)
{
objRow = new TableRow();
for (intColCount = 0; intColCount <= intCols - 1; ++intColCount)
{
objCell = new TableCell();
objCell.Controls.Add(new LiteralControl("R" + intRowCount.ToString() + "C" +
intColCount.ToString()));
objRow.Cells.Add(objCell);
}
MyControl.Rows.Add(objRow);
}
//此處asp:Table與htmlTable的區別是:
asp:Table:
objCell.Controls.Add(new LiteralControl("R" + intRowCount.ToString() + "C" +
intColCount.ToString()));
而htmlTable:
objCell.InnerHtml = "R"+intRowCount+"c"+intColCount;
原因在于htmlTable控件的objCell是HtmlTableCell對象,而asp:Table中objCell則是TableCell對象
asp:Literal:(構著函數:new LiteralControl("String");)
<asp:Literal Text="Some" runat="server"/>
注:此控件只有一個Text屬性,它不會產生其他的輸出(例如不會生成html元素)因此當所需的工作是將一
些文本放到頁面中的時候很有用.
例:
<asp:Literal Text="<gloop>A custom element</gloop>" runat="server"/>
產生輸出:
<gloop>A custom element</gloop>
asp:PlaceHolder:
<asp:PlaceHolder id="mycontrol" runat="server"/>
<script runat="server">
private void Page_Load()
{
int intLoop;
TextBox obj;
for(intLoop=0;intLoop<3;intLoop++)
{
obj = new TextBox();
mycontrol.Controls.Add(obj);
}
}
</script>
注:如果希望在頁面中動態的創建控件,而不是在頁面源代碼中對控件進行顯示聲明時可以用此控件.
下面討論事件相應:(click事件和change事件)
<%@Page Language="C#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- #include file="style.inc" -->
</head>
<body>
<!--------------------------------------------------------------------------->
<span class="heading">The ASP Web Forms Control Events</span><p />
<form runat="server">
<table border="0" cellpadding="10"><tr><td nowrap="nowrap" colspan="2">
<asp:TextBox id="MyText" Text="OriginalValue" runat="server"
OnTextChanged="MyChangeCode" AutoPostBack="True" />
//事件:OnTextChanged="MyChangeCode"
<span class="cite">Press 'Tab' to submit Textbox value automatically</span>
</td></tr><tr><td nowrap="nowrap">
<asp:CheckBox id="MyCheckbox" Text="My CheckBox" runat="server"
OnCheckedChanged="MyChangeCode" AutoPostBack="True" />
//事件:OnCheckedChanged="MyChangeCode"
</td><td nowrap="nowrap">
<asp:DropDownList id="MyDropDownList" runat="server"
OnSelectedIndexChanged="MyListChangeCode" AutoPostBack="true">
//事件:OnSelectedIndexChanged="MyListChangeCode"
<asp:ListItem Text="Option 1" Value="Value 1" />
<asp:ListItem Text="Option 2" Value="Value 2" />
<asp:ListItem Text="Option 3" Value="Value 3" />
</asp:DropDownList>
</td></tr><tr><td nowrap="nowrap">
<asp:RadioButtonList id="MyRadioList" runat="server"
OnSelectedIndexChanged="MyListChangeCode" AutoPostBack="true">
//事件:OnSelectedIndexChanged="MyListChangeCode"
<asp:ListItem Text="Option 1" Value="Value 1" />
<asp:ListItem Text="Option 2" Value="Value 2" />
<asp:ListItem Text="Option 3" Value="Value 3" />
</asp:RadioButtonList>
</td><td nowrap="nowrap">
<asp:ImageButton id="MyImageButton" ImageUrl="ClickmeButton.gif" runat="server"
ImageAlign="absbottom" OnClick="MyImageCode" /><p />
//事件:OnClick="MyImageCode"
<asp:Button id="MyButton" Text="Submit" runat="server"
OnClick="MyClickCode" />
//事件:OnClick="MyClickCode"
</table>
</form>
<div id="divResult" runat="server" EnableViewState="False" />
<script runat="server">
//事件處理函數:
void MyChangeCode(Object objSender, EventArgs objArgs)
{
Control c = (Control)objSender;
divResult.InnerHtml += "Change event detected for control '"
+ c.ID + "'<br />";
}
void MyListChangeCode(Object objSender, EventArgs objArgs)
{
ListControl c = (ListControl)objSender;
divResult.InnerHtml += "Change event detected for control '"
+ c.ID + "'<br />SelectedIndex is '"
+ c.SelectedIndex
+ "', selected item text is '"
+ c.SelectedItem.Text
+ "', selected item value is '"
+ c.SelectedItem.Value + "'<br />";
}
void MyClickCode(Object objSender, EventArgs objArgs)
{
Button c = (Button)objSender;
divResult.InnerHtml += "Click event detected for control '"
+ c.ID + "'<br />";
}
void MyImageCode(Object objSender, ImageClickEventArgs objArgs)
{
ImageButton c = (ImageButton)objSender;
divResult.InnerHtml += "Click event detected in control '"
+ c.ID + "' at X=" + objArgs.X
+ " Y=" + objArgs.Y + "<br />";
}
</script>
接著是命令控件:
Button,ImageButton,LinkButton有屬性CommandName和CommandArgument,當按鈕被點擊后,在服務端生成
一個可被響應的Command事件,例:
<asp:Button id="MyButton" OnCommand="MyCommandCode"
Text="Run Command" runat="server"
ToolTip="This is a Button control" />
<asp:ImageButton id="MyImageButton" OnCommand="MyCommandCode"
ImageUrl="ClickmeButton.gif" runat="server" ImageAlign="absbottom"
ToolTip="This is an ImageButton control" />
<asp:LinkButton id="MyLinkButton" OnCommand="MyCommandCode"
Text="Run Command" runat="server"
ToolTip="This is a LinkButton control" />
//事件處理函數:
void MyCommandCode(Object objSender, CommandEventArgs objArgs)
{
Control c = (Control)objSender;
divResult.InnerHtml += "Command event detected for control '"
+ c.ID + "'<br />"
+ "CommandName is '"
+ objArgs.CommandName
+ "', CommandArgument is '"
+ objArgs.CommandArgument + "'";
}
優點:
1 當一個表單上有多個按鈕控件時可以利用它來檢測是單擊哪個按鈕來提交表單.
以前版本中是通過對Request.Form集合進行查詢(若表單的method設置為get那么就需要對
Request.QueryString檢查)以確定單擊了哪個按鈕.
2 對復雜的控件如datagrid進行處理時通過對CommandName屬性設置預先定義好的值,那么當在datagrid
控件中對數據進行編輯的時候就可以利用這些按鈕來完成專有控件的任務.
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
