Webform(五)——內置對象(Response、Request)和Repeater中的增刪改

来源:http://www.cnblogs.com/H2921306656/archive/2016/09/24/5904520.html
-Advertisement-
Play Games

一、內置對象 (一)Response對象 1、簡介:response 對象在ASP中負責將信息傳遞給用戶.Response對象用於動態響應客戶端請求,並將動態生成的響應結果返回到客戶端瀏覽器中,使用Response對象可以直接發送信息給瀏覽器,重定向瀏覽器到另一個URL或設置cookie的值等. 2 ...


一、內置對象

(一)Response對象

1、簡介:response 對象在ASP中負責將信息傳遞給用戶.Response對象用於動態響應客戶端請求,並將動態生成的響應結果返回到客戶端瀏覽器中,使用Response對象可以直接發送信息給瀏覽器,重定向瀏覽器到另一個URL或設置cookie的值等.

2、方法:①、write方法response.write **

                             功能:向客戶端發送瀏覽器能夠處理的各種數據,包括:html代碼,腳本程式等.                              實例:response.write "I LOVE YOU !!"                ②、redirect方法response.redirect("url")的作用是在伺服器端重定向於另一個網頁。  

(二)Request對象 1、簡介:Request對象的作用是與客戶端交互,收集客戶端的Form、Cookies、超鏈接,或者收集伺服器端的環境變數。                request對象是從客戶端向伺服器發出請求,包括用戶提交的信息以及客戶端的一些信息。客戶端可通過HTML表單或在網頁地址後面提供參數的方法提交數據,然後通過request對象的相關方法來獲取這些數據。request的各種方法主要用來處理客戶端瀏覽器提交的請求中的各項參數和選項。 2、Request對象的五個集合:①、QueryString:用以獲取客戶端附在url地址後的查詢字元串中的信息。                                                                           例如:stra=Request.QueryString ["strUserld"]                                                                            前臺傳遞寫法:地址 ?key=value&key=value                                                        註意事項:●不需要保密的東西可以傳,在地址欄中是可見的,可更改的。
                                                                       ●不要傳過長東西,因為長度有限,過長會造成數據丟失。                                                 ②、Form:用以獲取客戶端在FORM表單中所輸入的信息。(表單的method屬性值需要為POST)                                                                  例如:stra=Request.Form["strUserld"]                                                 ③、Cookies:用以獲取客戶端的Cookie信息。                                                                  例如:stra=Request.Cookies["strUserld"]                                                 ④、ServerVariables:用以獲取客戶端發出的HTTP請求信息中的頭信息及伺服器端環境變數信息。                                                                                例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客戶端IP地址                                                 ⑤、ClientCertificate:用以獲取客戶端的身份驗證信息                                                                                 例如:stra=Request.ClientCertificate["VALIDFORM"],對於要求安全驗證的網站,返回有效起始日期。  

  二、利用Response對象和Request對象對Reparter中數據進行增刪改   主頁前臺代碼:
    </style>
    <%--光棒效果--%>
    <script type="text/javascript">
        window.onload = function () {
            var items = document.getElementsByClassName("tr_Item");
            var oldColor = "";
            for (var i = 0; i < items.length; i++) {
                items[i].onmouseover = function () {
                    oldColor = this.style.backgroundColor;
                    this.style.backgroundColor = "yellow";
                };
                items[i].onmouseout = function () {
                    this.style.backgroundColor = oldColor;
                };
            }
        };
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div >
            <a href ="Login.aspx"><asp:Label ID="Labdl" runat="server" Text="[請登錄]"></asp:Label></a>
            <asp:Literal ID="Literal1" runat="server"></asp:Literal>
            <asp:Button ID="Btntc" runat="server" Text="退出登陸" />
        </div>
    <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
                <table id="tb1">
                    <tr id="tr_head">
                        <td>用戶名</td>
                        <td>密碼</td>
                        <td>昵稱</td>
                        <td>性別</td>
                        <td>生日</td>
                        <td>年齡</td>
                        <td>民族</td>
                        <td>操作</td>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr class="tr_Item" style="<%#Eval("Red")%>">
                    <td><%#Eval("UserName") %></td>
                    <td><%#Eval("PassWord") %></td>
                    <td><%#Eval("NickName") %></td>
                    <td><%#Eval("SexStr") %></td>
                    <td><%#Eval("BirthdayStr") %></td>
                    <td><%#Eval("Age") %></td>
                    <td><%#Eval("NationName") %></td>
                    <td>                        <a href="Delete.aspx?un=<%#Eval("UserName") %>" onclick="Del" >刪除</a>
                        <a href="Update.aspx?un=<%#Eval("UserName") %>" target="_blank" onclick="Update">修改</a>
                    </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>
        <asp:Button ID="btn1" runat="server" Text="添加用戶" />
        <%--<input id="btn1" type="button" value="添加用戶" /><br />--%>    
        <%--<script>
            document.getElementById("btn1").onclick = function () {
                window.open("Add.aspx", "_blank");
            };
        </script>--%>
    </form>
</body>
</html>
View Code

主頁後臺代碼:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Cookies["user"] != null)
        {
            Users u = new UsersDA().Select(Request.Cookies["user"].Value);

            Labdl.Text = u.NickName;
            Literal1.Text = ",歡迎你!";
        }
        
        if (!IsPostBack)
        {
            Repeater1.DataSource = new UsersDA().Select();
            Repeater1.DataBind();
        }
        Btntc.Click += Btntc_Click;
        btn1.Click += btn1_Click;
        
        
    }

    void btn1_Click(object sender, EventArgs e)
    {
        if (Request.Cookies["user"] != null)
        {
            Response.Redirect("Add.aspx");
        }
        else
        {
            Response.Redirect("Login.aspx");
        }
    }

    void Btntc_Click(object sender, EventArgs e)
    {
        //1清除cookies
        Response.Cookies["user"].Expires = DateTime.Now.AddDays(-5);
        //2刷新頁面/跳到登陸頁面
        Response.Redirect("Login.aspx");
    }
    public void Del(object sender, EventArgs e)
    {
        if (Request.Cookies["user"] != null)
        {
            Response.Redirect("Delete.aspx");
        }
        else
        {
            Response.Redirect("Login.aspx");
        }
    }
    public void Update(object sender, EventArgs e)
    {
        if (Request.Cookies["user"] != null)
        {
            Response.Redirect("Update.aspx");
        }
        else
        {
            Response.Redirect("Login.aspx");
        }
    }
主頁後臺

點擊主頁“”增加用戶“按鈕”,跳轉到Add(添加)頁面。

(一)增加

Add頁面前臺代碼:

 <title></title>
    <%--判斷兩次密碼是否一致--%>
<script type="text/javascript">
    window.onload = function () {
        document.getElementById("Button1").onclick = function () {
            var pwd1 = document.getElementById("TextBox2").value;
            var pwd2 = document.getElementById("TextBox3").value;
            if (pwd1 != pwd2) {
                document.getElementById("Label1").innerText = "兩次密碼不一致!";
                return false;
            }
        };
    };
    </script>
    <style type="text/css">
        #Label1 {
            color: red;
        }
    </style>

</head>
<body>
    <form id="form1" runat="server">
        <h1>用戶添加</h1>
        用戶名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
        <br />
        密碼:<asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox><br />
        <br />
        重覆密碼:<asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox><asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
        <br />
        昵稱:<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br />
        <br />
        性別:<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow">
            <asp:ListItem Value="True" Selected="True">男</asp:ListItem>
            <asp:ListItem Value="False">女</asp:ListItem>
        </asp:RadioButtonList><br />
        <br />
        生日:<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList><asp:DropDownList ID="DropDownList2" runat="server"></asp:DropDownList><asp:DropDownList ID="DropDownList3" runat="server"></asp:DropDownList><br />
        <br />
        民族:<asp:DropDownList ID="DropDownList4" runat="server"></asp:DropDownList><br />
        <br />
        <asp:Button ID="Button1" runat="server" Text="添加" />

    </form>
</body>
</html>
Add前臺

Add頁面後臺代碼:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {

            for (int i = DateTime.Now.Year; i >= 1900; i--)
            {
                ListItem li = new ListItem(i.ToString(), i.ToString());

                DropDownList1.Items.Add(li);
            }

            for (int i = 1; i <= 12; i++)
            {
                ListItem li = new ListItem(i.ToString(), i.ToString());

                DropDownList2.Items.Add(li);
            }

            for (int i = 1; i <= 31; i++)
            {
                ListItem li = new ListItem(i.ToString(), i.ToString());

                DropDownList3.Items.Add(li);
            }

            DropDownList4.DataSource = new NationData().Select();
            DropDownList4.DataTextField = "NationName";
            DropDownList4.DataValueField = "NationCode";
            DropDownList4.DataBind();
        }

        Button1.Click += Button1_Click;

    }

    void Button1_Click(object sender, EventArgs e)
    {
        Users u = new Users();
        u.UserName = TextBox1.Text;
        u.PassWord = TextBox3.Text;
        u.NickName = TextBox4.Text;
        u.Sex = Convert.ToBoolean(RadioButtonList1.SelectedItem.Value);
        string date = DropDownList1.SelectedValue + "-" + DropDownList2.SelectedValue + "-" + DropDownList3.SelectedValue;
        u.Birthday = Convert.ToDateTime(date);
        u.Nation = DropDownList4.SelectedItem.Value;

        bool ok = new UsersDA().Insert(u);

        //3、提示添加成功
        if (ok)
        {
            Response.Write("<script>alert('添加成功!')</script>");
            Response.Write("<script>this.opener.location.href='Main.aspx';this.close();</script>");
        }
        else
        {
            Response.Write("<script>alert('添加失敗!')</script>");
        }

    }
Add後臺

註:在Add頁面中點擊“”“添加”按鈕,會提示添加是否成功,若添加成功,關閉Add頁面,刷新Main主頁面。在這裡用到了Response對象中的write方法!



(二)、刪除

Delete頁面前臺代碼:無

Delete頁面後臺代碼:

protected void Page_Load(object sender, EventArgs e)
    {
        //1、獲得要刪除的主鍵值,username
        string Uname = Request["un"].ToString();

        //2、刪除
        new UsersDA().Delete(Uname);

        //3、調回顯示頁面
        Response.Redirect("Main.aspx");
    }
Delete後臺

註:在這裡用到了Response對象中的Redirect方法和Request對象中的QueryString集合,當然,在用QueryString集合時,需要Main主頁裡面寫傳遞,這個可以見上面的Main主頁前臺代碼。


 

(三)、修改

Update前臺代碼:

<form id="form1" runat="server">
     <h1>用戶修改</h1>
        用戶名:<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label><br />
        <br />
        密碼:<asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox><br />
        <br />
        重覆密碼:<asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox><asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
        <br />
        昵稱:<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br />
        <br />
        性別:<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow">
            <asp:ListItem Value="True">男</asp:ListItem>
            <asp:ListItem Value="False">女</asp:ListItem>
        </asp:RadioButtonList><br />
        <br />
        生日:<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList><asp:DropDownList ID="DropDownList2" runat="server"></asp:DropDownList><asp:DropDownList ID="DropDownList3" runat="server"></asp:DropDownList><br />
        <br />
        民族:<asp:DropDownList ID="DropDownList4" runat="server"></asp:DropDownList><br />
        <br />

        <asp:Button ID="Button1" runat="server" Text="修改" />
    </form>
View Code

Update後臺代碼:

//建一個變數來存儲原密碼
    string pwd = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        //1、將傳過來的主鍵值接收
        string uname = Request["un"].ToString();

        //2、通過主鍵值將對象查出來
        Users u = new UsersDA().Select(uname);

        pwd = u.PassWord;

        if (!IsPostBack)
        {
            for (int i = DateTime.Now.Year; i >= 1900; i--)
            {
                ListItem li = new ListItem(i.ToString(), i.ToString());

                DropDownList1.Items.Add(li);
            }

            for (int i = 1; i <= 12; i++)
            {
                ListItem li = new ListItem(i.ToString(), i.ToString());

                DropDownList2.Items.Add(li);
            }

            for (int i = 1; i <= 31; i++)
            {
                ListItem li = new ListItem(i.ToString(), i.ToString());

                DropDownList3.Items.Add(li);
            }

            DropDownList4.DataSource = new NationData().Select();
            DropDownList4.DataTextField = "NationName";
            DropDownList4.DataValueField = "NationCode";
            DropDownList4.DataBind();

            //3、將對象中的數據綁定到每一個控制項上去
            Label2.Text = u.UserName;
            TextBox4.Text = u.NickName;

            foreach (ListItem li in RadioButtonList1.Items)
            {
                if (u.Sex)
                {
                    if (li.Value == "True")
                    {
                        li.Selected = true;
                    }
                }
                else
                {
                    if (li.Value == "False")
                    {
                        li.Selected = true;
                    }
                }
            }

            DropDownList1.SelectedValue = u.Birthday.Year.ToString();
            DropDownList2.SelectedValue = u.Birthday.Month.ToString();
            DropDownList3.SelectedValue = u.Birthday.Day.ToString();
            DropDownList4.SelectedValue = u.Nation;

        }

        Button1.Click += Button1_Click;

    }

    void Button1_Click(object sender, EventArgs e)
    {
        //1、構建一個Users對象
        Users u = new Users();
        u.UserName = Label2.Text;

        //獲取密碼
        if (TextBox2.Text == "" && TextBox3.Text == "")
        {
            u.PassWord = pwd;
        }
        else
        {
            u.PassWord = TextBox3.Text;
        }
        u.NickName = TextBox4.Text;
        u.Sex = Convert.ToBoolean(RadioButtonList1.SelectedItem.Value);
        string date = DropDownList1.SelectedValue + "-" + DropDownList2.SelectedValue + "-" + DropDownList3.SelectedValue;
        u.Birthday = Convert.ToDateTime(date);
        u.Nation = DropDownList4.SelectedItem.Value;

        //2、將此對象添加到資料庫去
        bool ok = new UsersDA().Update(u);

        //3、提示添加成功
        if (ok)
        {
            Response.Write("<script>alert('修改成功!')</script>");
            Response.Write("<script>this.opener.location.href='Main.aspx';this.close();</script>");
        }
        else
        {
            Response.Write("<script>alert('修改失敗!')</script>");
        }
View Code

 註:●在這裡用到了Response對象中的write方法和Request對象中的QueryString集合,當然,在用QueryString集合時,需要Main主頁裡面寫傳遞,這個可以見上面的Main主頁前臺代碼。
      ●點擊“”修改“”按鈕,彈提示框,若添加成功,關閉Update頁面,刷新Main主頁面。

 

後註:部分重要代碼

1、js代碼判斷兩次密碼是否一致

<script type="text/javascript">
    window.onload = function () {
        document.getElementById("Button1").onclick = function () {
            var pwd1 = document.getElementById("TextBox2").value;
            var pwd2 = document.getElementById("TextBox3").value;
            if (pwd1 != pwd2) {
                document.getElementById("Label1").innerText = "兩次密碼不一致!";
                return false;
            }
        };
    };
    </script>
js密碼

2、彈框顯示添加/修改是否成功,成功則刷新主頁面reparter數據

     this.opener.location.href='Main.aspx':跨界面刷新主頁面

if (ok)
        {
            Response.Write("<script>alert('添加成功!')</script>");
            Response.Write("<script>this.opener.location.href='Main.aspx';this.close();</script>");
        }
        else
        {
            Response.Write("<script>alert('添加失敗!')</script>");
        }
添加
if (ok)
        {
            Response.Write("<script>alert('修改成功!')</script>");
            Response.Write("<script>this.opener.location.href='Main.aspx';this.close();</script>");
        }
        else
        {
            Response.Write("<script>alert('修改失敗!')</script>");
        }
修改

 

 

         
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.背景說明: vim編輯器是linux一款非常流行功能強大的文本編輯。配置好vim可大大提高代碼的開發效率 2.配置方案: 我在github搜索了別人是如何進行vim配置的,在這裡你可以選擇一款適合你的配置方案,這裡我選擇Star比較多的配置方案:vimrc 3.如何安裝: 參考上述鏈接,安裝說明 ...
  • 有時候因為斷電或者其他原因導致伺服器關機,這在測試伺服器上面是很常見的事情。而伺服器上面的多個進程也就關閉了,每次都要去重啟很麻煩,於是就查了一下設置開機自動啟動的方法,這樣開機就只用稍微看看服務是否啟動就好了,不用一個一個去啟動了。 ...
  • 一、POST加電自檢 按下電源後ROM晶元中的CMOS程式執行並檢測CPU、記憶體等設備是否存在並正常運行,CMOS中的程式叫BIOS,可以設置硬碟介面,網卡音效卡開關之類的簡單設置。一般PC機主板上有一個紐扣電池,這個電池就是給ROM供電的,可以保證主板斷電後BIOS的一些基本設置不會重置。 下麵是一 ...
  • 我們知道,迄今為止,Ubuntu已有多個發行版,如11.04、11.10,以至於現在最新的16. 。而我們平常通過apt get來安裝軟體,如果OS版本不同,那麼鏡像源的配置就不同,否則就會出現找不到對應軟體、軟體版本不匹配等一系列奇怪的問題。這裡,我就講述一下如何配置不同的版本的鏡像源。在此,我就 ...
  • 1.編譯器gcc的語法順序 PC: gcc -o ana *.o ${LIBS} 輸出可執行文件名 各種目標文件 要鏈接的庫 交叉編譯:arm-linux-gcc ${LIBS] *.o -o ana 2.Minigui.config 將/usr/local/etc/MiniGUI.cfg 與 ./ ...
  • 關於《rsyslog+mysql+loganalyzer搭建日誌伺服器<個人筆記>》的反思--鏈接--http://www.cnblogs.com/drgcaosheng/p/5832697.html 之前使用這個搭建了一個日誌伺服器,但是在mysql中,日誌增加太快,過了些天,已經有幾千萬的數據了 ...
  • 0 Asp.Net Core 項目實戰之許可權管理系統(0) 無中生有 1 Asp.Net Core 項目實戰之許可權管理系統(1) 使用AdminLTE搭建前端 2 Asp.Net Core 項目實戰之許可權管理系統(2) 功能及實體設計 3 Asp.Net Core 項目實戰之許可權管理系統(3) 通過 ...
  • Linq to JSON是用來操作JSON對象的.可以用於快速查詢,修改和創建JSON對象.當JSON對象內容比較複雜,而我們僅僅需要其中的一小部分數據時,可以考慮使用Linq to JSON來讀取和修改部分的數據而非反序列化全部. 二.創建JSON數組和對象 在進行Linq to JSON之前,首 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...