• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于.net的用戶定義驗(yàn)證控件的應(yīng)用分析

    2020-11-30 08:54:09曾凡秩
    中文信息 2020年10期
    關(guān)鍵詞:用戶名控件代碼

    曾凡秩

    摘?要:在應(yīng)用.net和c#進(jìn)行應(yīng)用系統(tǒng)開發(fā)時(shí)經(jīng)常會(huì)用到驗(yàn)證控件,其中的CustomValidator驗(yàn)證控件,除了配置好基本的參數(shù)外,還要配置特殊的參數(shù),同時(shí)還要自己編程實(shí)現(xiàn)驗(yàn)證的功能。本文就如何用此驗(yàn)證控件實(shí)現(xiàn)用戶自己的特殊驗(yàn)證(比如在注冊(cè)時(shí)用戶名已存在的驗(yàn)證)進(jìn)行了探討。

    關(guān)鍵詞:.net?自定義驗(yàn)證控件?CustomValidator

    中圖分類號(hào):G202?文獻(xiàn)標(biāo)識(shí)碼:A?文章編號(hào):1003-9082(2020)10-00-01

    在應(yīng)用.net和c#進(jìn)行應(yīng)用系統(tǒng)開發(fā)時(shí)經(jīng)常會(huì)用到Required Field Validator等驗(yàn)證控件,除Custom Validator的其他控件,只要設(shè)置好相關(guān)參數(shù)后,一般都能起到正常驗(yàn)證數(shù)據(jù)的作用。而Custom Validator驗(yàn)證控件,除了配置好基本的參數(shù)外,還要配置特殊的參數(shù),同時(shí)還要自己編程實(shí)現(xiàn)驗(yàn)證的功能。對(duì)CustomValidator控件如何引用、如何設(shè)置相關(guān)參數(shù)以及編程實(shí)現(xiàn)驗(yàn)證,同時(shí)達(dá)到和常規(guī)驗(yàn)證控件相似的效果等進(jìn)行探討和驗(yàn)證。

    一、在TextBox數(shù)據(jù)控件后添加驗(yàn)證控件

    如下圖在該網(wǎng)頁(yè)實(shí)現(xiàn)通過調(diào)用數(shù)據(jù)庫(kù)來實(shí)現(xiàn)用戶功能,在用戶名的右邊加入用戶驗(yàn)證控件,用來判斷要注冊(cè)的用戶名是否存在,若存在,則不能注冊(cè)。

    1.在注冊(cè)頁(yè)面中與自定義驗(yàn)證控件相關(guān)的頁(yè)面代碼如下:

    用戶名:

    ontextchanged=”txtName_TextChanged”>

    ControlToValidate=”txtName” onservervalidate=”CustomValidator1_ServerValidate”>

    2.該驗(yàn)證控件的后臺(tái)代碼如下:

    protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)

    {String connStr = ConfigurationManager.ConnectionStrings[“l(fā)ink2”].ToString();

    SqlConnection conn = new SqlConnection(connStr);?conn.Open();

    string sqlStr = “select count(*) from manage where userName=” + txtName.Text + “”;

    SqlCommand sc = new SqlCommand(sqlStr, conn);

    int num = int.Parse(sc.ExecuteScalar().ToString());

    conn.Close();?args.IsValid = true;

    if (num > 0) args.IsValid = false; }

    3.在用戶名數(shù)據(jù)框中輸入名字時(shí)要以上能夠驗(yàn)證用戶名是否存在,則要給該數(shù)據(jù)控件添加一個(gè)事件txtName_TextChanged,該事件引發(fā)驗(yàn)證,代碼如下:

    protected void txtName_TextChanged(object sender, EventArgs e)

    {具體驗(yàn)證代碼同上面斜體字部分。

    CustomValidator1.IsValid = true;

    if (num > 0) CustomValidator1.IsValid = false; }

    4.注冊(cè)功能代碼:

    protected void btnRegister_Click(object sender, EventArgs e)

    {if (Page.IsValid == true)

    { //把數(shù)據(jù)寫入數(shù)據(jù)庫(kù)}}

    二、在實(shí)現(xiàn)自定義驗(yàn)證控件時(shí)要注意的幾個(gè)事項(xiàng):

    1.要實(shí)現(xiàn)對(duì)用戶名的存在性驗(yàn)證,不能用普通驗(yàn)證控件,只能用自定義驗(yàn)證控件CustomValidator。

    2.實(shí)現(xiàn)馬上驗(yàn)證,只有給被驗(yàn)證的用戶名框引入文本改變事件txt Name_Text Changed,而且被驗(yàn)證的文本框要設(shè)置屬性Auto Post Back="True",服務(wù)器在這個(gè)文本發(fā)生改變時(shí)立馬可以進(jìn)行數(shù)據(jù)庫(kù)查詢驗(yàn)證。

    3.一定要明確驗(yàn)證控件的錯(cuò)誤信息,是在其屬性args.IsValid值為false時(shí)才顯示出來。在txtName_TextChanged事件中進(jìn)行驗(yàn)證時(shí)要用驗(yàn)證控件的名字來引用,如CustomValidator1.IsValid。

    4.在注冊(cè)時(shí),在把用戶名插入到數(shù)據(jù)庫(kù)前一定要判斷頁(yè)面的有效性,即if (Page.IsValid == true){注冊(cè)代碼},否則會(huì)執(zhí)行注冊(cè)代碼,同名的用戶也會(huì)再次寫入數(shù)據(jù)庫(kù)。

    結(jié)語

    驗(yàn)證控件是錄入數(shù)據(jù)的第一道安全屏障,而自定義驗(yàn)證控件是解決普通驗(yàn)證控件無法實(shí)現(xiàn)的驗(yàn)證任務(wù),用.net和C#開發(fā)應(yīng)用系統(tǒng)中經(jīng)常要用到的。就本文而言,有助于初次開發(fā)者自定義驗(yàn)證控件CustomValidator編程的基本思路,掌握它的基本用法,從而為開發(fā)出一個(gè)安全穩(wěn)定的系統(tǒng)打下堅(jiān)實(shí)的基礎(chǔ)。要用到的關(guān)鍵屬性和事件有:AutoPostBack="True",CustomValidator1.IsValid=”True”, args.IsValid, Page.IsValid, txtName_TextChanged。

    參考文獻(xiàn)

    [1]陳巧莉,楊亨東,吳夢(mèng)蘭. ASP.NET項(xiàng)目開發(fā)一體化教程[M].上海:上海交通大學(xué)出版社,2017.

    [2]張領(lǐng).ASP NET項(xiàng)目開發(fā)全程實(shí)錄[M].北京:清華大學(xué)出版社,2018.

    [3]Daniel Cazzulino等.C#Web應(yīng)用程序入門經(jīng)典[M].北京:清華大學(xué)出版社,2003.

    猜你喜歡
    用戶名控件代碼
    《護(hù)士進(jìn)修雜志》投稿程序
    創(chuàng)世代碼
    創(chuàng)世代碼
    創(chuàng)世代碼
    創(chuàng)世代碼
    關(guān)于.net控件數(shù)組的探討
    軟件(2018年7期)2018-08-13 09:44:42
    機(jī)智的快遞員
    就這樣玩會(huì)VBA中常見的自定義控件
    電腦迷(2012年24期)2012-04-29 00:44:03
    ESET NOD32專家答疑等
    輕輕松松……在線制作電子書
    柯坪县| 封开县| 周宁县| 石首市| 怀仁县| 香河县| 泰来县| 昌乐县| 望城县| 乃东县| 城固县| 吕梁市| 新巴尔虎右旗| 尚志市| 常州市| 双鸭山市| 阳原县| 海城市| 北辰区| 彭阳县| 思南县| 咸宁市| 嘉定区| 榆社县| 镇安县| 个旧市| 阳东县| 吴江市| 内丘县| 合阳县| 铅山县| 赞皇县| 阳春市| 弥勒县| 皮山县| 宣化县| 双鸭山市| 凯里市| 绥芬河市| 长泰县| 华宁县|