zoukankan      html  css  js  c++  java
  • ASP.NET Repeater与Button 以及viewState 和 hyperLink

    例如Repeater重复项 我们要在一个表里作删除以及修改 我们可以在Repeater中添加button控件
    前台代码:
    button有属性commandName 以及commandArgument
    我们可以在coomandArgument中添加内容这样在Repeater中绑定的值就可以获取了,从而对这个值进行操作

    <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
    <ItemTemplate>
    <tr>
    <td><input type="checkbox" name="checkbox2" id="checkbox2" /></td>
    <td class="name"><%#Eval("Title") %></td>
    <td><%# Eval("author") %></td>
    <td><%# Eval("Categories.Name") %></td>
    <td>
    <asp:Button ID="Button1" runat="server" Text="修改" CommandName ="xiuGai" CommandArgument ='<%#Eval("id") %>'/>
    <asp:Button ID="Button2" runat="server" Text="删除" CommandName="shanChu" CommandArgument ='<%#Eval("id") %>' OnClientClick="javascript:return confirm('确认要删除吗?');"/>
    </td>
    </tr>
    </ItemTemplate>
    </asp:Repeater>
    后台代码:
    我们可以从RepeatercommandeventArgs中获取commandName 通过swtich从而应对了多个button的障碍 事件是Repeater的onitemCommand

    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
    switch (e.CommandName)
    {
    case "xiuGai":
    // Response.Redirect("bookEdit.aspx?id=" + e.CommandArgument);
    break;
    case "shanChu":
    Books books = new Books() { Id =Convert.ToInt32(e.CommandArgument) };
    try
    {
    BooksManager.Del(books);
    Response.Write("<script>alert('删除了id为:" + e.CommandArgument + "');</script>");
    Repeater1.DataSource = BooksManager.GetPageBooks(out pagecount, 10, Convert.ToInt32(ViewState["pageindex"]));//重新绑定
    Repeater1.DataBind();
    }
    catch(Exception ex)
    {
    Response.Write("<script>alert('删除不成功');</script>");
    }
    break;
    }
    }

    viewState
    起源:因为网页是无状态的,例如我们的分页 我们每次去查询数据库(分页),我们不知道当前的PageIndex是多少,如果用变量 + - ,我们每次提交服务器,页面的值都会被刷新.所有我们要使用viewState;
    用法 :viewState["value"] = 1; 赋值
    int value = viewState["value"];取值
    viewState是生命周期是本网页启动 本网页关闭
    --------------------------------------------------------------------------------
    HyperLink
    起源:该控件是超级链接控件 和 html中<a>类似
    每次点击的时候都会提交一次服务器
    设置NavigateUrl

    前台: <asp:HyperLink ID="HyperLink1" runat="server">第一页</asp:HyperLink>
    <asp:HyperLink ID="HyperLink2" runat="server">上一页</asp:HyperLink>
    <asp:HyperLink ID="HyperLink3" runat="server">下一页</asp:HyperLink>
    <asp:HyperLink ID="HyperLink4" runat="server">最后一页</asp:HyperLink>
    后台:
    HyperLink1.NavigateUrl = "DemoWebForm.aspx?pageIndex=1";
    HyperLink2.NavigateUrl = "DemoWebForm.aspx?pageIndex=" + (pageIndex - 1);
    HyperLink3.NavigateUrl = "DemoWebForm.aspx?pageIndex=" + (pageIndex + 1);
    HyperLink4.NavigateUrl = "DemoWebForm.aspx?pageIndex=" + pageCount;
    //通过 request.querystring["pageindex"] 获取分页的index 在访问数据库绑定给repeater

  • 相关阅读:
    AndroidStudio gradle配置
    Git中pull对比fetch和merge
    Knockout.js随手记(7)
    Knockout.js随手记(6)
    MVC自动绑定整数数组
    Knockout.js随手记(5)
    ASP.NET4.5Web API及非同步程序开发系列(3)
    Knockout.js随手记(4)
    ASP.NET4.5Web API及非同步程序开发系列(2)
    ASP.NET4.5Web API及非同步程序开发系列(1)
  • 原文地址:https://www.cnblogs.com/ZaraNet/p/9433548.html
Copyright © 2011-2022 走看看