国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET中HiddenField隱藏域控件的使用方法

2024-07-10 13:30:15
字體:
供稿:網(wǎng)友
本文主要介紹ASP.NET中HiddenField控件的基礎(chǔ)使用方法、事件以及配合javascript的一些使用,希望能幫到大家。
 

HiddenField控件的作用簡(jiǎn)單的說是用于存儲(chǔ)需要在向服務(wù)器的發(fā)送間保持的值。它作為 <input type= "hidden"/> 元素呈現(xiàn),并且通過添加runat=”server”就可以使它成為標(biāo)準(zhǔn)的HTML服務(wù)器控件。下面列出的是ASP.NET HiddenField Web服務(wù)器控件可以使用的屬性和事件。 
  

復(fù)制代碼代碼如下:

<asp:HiddenField 
    EnableTheming="True|False" 
    EnableViewState="True|False" 
    ID="string" 
    OnDataBinding="DataBinding event handler" 
    OnDisposed="Disposed event handler" 
    OnInit="Init event handler" 
    OnLoad="Load event handler" 
    OnPreRender="PreRender event handler" 
    OnUnload="Unload event handler" 
    OnValueChanged="ValueChanged event handler" 
    runat="server" 
    SkinID="string" 
    Value="string" 
    Visible="True|False"
/>

 

因?yàn)?HiddenField 的值將呈現(xiàn)給客戶端瀏覽器,所以它不適用于存儲(chǔ)安全敏感的值。若要為 HiddenField 控件指定值,請(qǐng)使用 Value 屬性,請(qǐng)注意是Value而不是Text。事實(shí)上HiddenField并沒有Text屬性,這和DropDownList、CheckBoxList等標(biāo)準(zhǔn)按鈕的屬性命名方式一致。在標(biāo)準(zhǔn)的屬性命名方式中,Text的值是呈現(xiàn)給用戶看到的,而Value的值則是通長(zhǎng)是通過代碼進(jìn)行控制的。例如你可以讓DropDownList的Text屬性顯示用戶名而讓它的Value存儲(chǔ)用戶的編號(hào)。

一、HiddenField控件的基本使用

 

復(fù)制代碼代碼如下:
<html> 
    <head> 
        <script language="C#" runat="server"> 
        void Button1_Click(object sender, EventArgs e) 
        { 
            if (HiddenField1.Value == String.Empty) 
                HiddenField1.Value = "0"; 
            HiddenField1.Value = (Convert.ToInt32(HiddenField1.Value)+1).ToString(); 
            Label1.Text = HiddenField1.Value; 
        } 
        </script> 
    </head> 
    <body> 
        <h3><font face="Verdana">HiddenField</font></h3> 
        <form runat=server> 
            <asp:HiddenField id=HiddenField1 runat=Server /> 
            <asp:Button id=Button1 Text="單擊按鈕" onclick="Button1_Click" runat="server" /> 
            單擊 <asp:Label id=Label1 Text="0" runat=server /> 次 
        </form> 
    </body> 
</html>

 

在上面代碼中, <asp:HiddenField id=HiddenField1 runat=Server />就定義了一個(gè)隱藏控件在按鈕的單擊事件里計(jì)算用戶單擊的次數(shù),并將改次數(shù)賦值給Label1。

你可以將上面代碼中的 <asp:HiddenField id=HiddenField1 runat=Server />改為<input type=hidden id=HiddenField1 runat=Server >也是可以的 
   
在使用上面代碼里,如果你從瀏覽器里查看源代碼會(huì)得到如下的信息: 
<form name="Form1" method="post" action="Default.aspx" id="Form1"> 
這是因?yàn)镠iddenField是通過HTTP協(xié)議進(jìn)行傳遞數(shù)據(jù)的,所以如果你通過" method="get"或者鏈接打開新的窗體頁,那么HiddenField并不可用。 
另外,HiddenField并不是取代Session來維護(hù)狀態(tài)的,在上面例子里,雖然你點(diǎn)擊一次按鈕可以顯示你點(diǎn)擊的次數(shù)但是并不是說它可以記錄你的狀態(tài)信息。如果你重新打開瀏覽器那么你看到的此處仍然是0而不是3。 

二、HiddenField事件ValueChanged

HiddenField較為常用的是ValueChanged事件,該事件在Value值發(fā)生改變時(shí)觸發(fā)該事件。然而在實(shí)際使用時(shí),要知道頁面記載順序。在頁面回傳過程中,具體的頁面周期你可以到如下網(wǎng)站查看 
http://msdn2.microsoft.com/zh-cn/library/ms178472.aspx

下面的例子說明了這個(gè)問題

 

復(fù)制代碼代碼如下:

<html>
<head> 
<script runat="server" language="c#"> 
protected void Page_Load(object sender, EventArgs e) 

    Response.Write("<p>頁面的Page_Load事件觸發(fā),觸發(fā)時(shí)間是:" + DateTime.Now.ToString()); 
    if (HiddenField1.Value == String.Empty) 
    HiddenField1.Value = "0"; 

protected void Button1_Click(object sender, EventArgs e) 

    Response.Write("<p>Button1_Click為改變Hidden的值前事件觸發(fā),觸發(fā)時(shí)間是:" + DateTime.Now.ToString()); 
    HiddenField1.Value = (Convert.ToInt32(HiddenField1.Value) + 1).ToString(); 
    Label1.Text = HiddenField1.Value; 

protected void HiddenField1_ValueChanged(object sender, EventArgs e) 

    Response.Write("<p>HiddenField的 ValueChanged事件觸發(fā),觸發(fā)時(shí)間是:" + DateTime.Now.ToString()); 
}
</script> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> <asp:HiddenField ID="HiddenField1" runat="server" OnValueChanged="HiddenField1_ValueChanged" /> 
</div> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
<br /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> 
</form></body> 
</html>

 

三、用javascript把值傳給HiddenField

javascript直接改變控件的值再后臺(tái)取不到值,存在HiddenField中變相的取值,代碼如下:

 

復(fù)制代碼代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>無標(biāo)題頁</title>
    <script type="text/javascript">
    function setValue(){
        document.getElementById("<%=name.ClientID %>").value="aaaa";
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:HiddenField ID="name" runat="server" />
        <asp:Button ID="Button1" runat="server" Text="Button" 
            OnClientClick="setValue()" onclick="Button1_Click" />
    </div>
    </form>
</body>
</html>


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到ASP.NET教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 崇礼县| 合水县| 宝鸡市| 东方市| 乌鲁木齐市| 长兴县| 富锦市| 惠水县| 客服| 如东县| 西贡区| 兴业县| 深圳市| 洛南县| 建宁县| 上蔡县| 丰城市| 乌兰浩特市| 芒康县| 甘孜县| 鹿邑县| 岫岩| 天全县| 邹城市| 前郭尔| 垣曲县| 长沙市| 新晃| 渭源县| 观塘区| 崇文区| 桑日县| 巨野县| 崇义县| 射阳县| 盘锦市| 炉霍县| 广水市| 伊宁市| 新疆| 庆阳市|