例如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

ASP.NET Repeater与Button 以及viewState 和 hyperLink的更多相关文章

  1. [ASP.NET]asp.net Repeater控件的使用方法

    asp.net Repeater控件的使用方法 -- : 4770人阅读 评论() 收藏 举报 asp.netserveraspdatasetdeletexhtml 今天学习了,Repeater控件 ...

  2. ASP.NET repeater添加序号列的方法

    ASP.NET repeater添加序号列的方法 1.<itemtemplate> <tr><td> <%# Container.ItemIndex + 1% ...

  3. ASP.NET Repeater 绑定 DropDownList Calendar 选择日期

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  4. ASP.NET Repeater 控件分页

    protected void Page_Load(object sender, EventArgs e) { HttpContext context = HttpContext.Current; co ...

  5. Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别

    2.8 Context 的使用Context 对象包含与当前页面相关的信息,提供对整个上下文的访问,包括请求.响应.以及上文中的Session 和Application 等信息.可以使用此对象在网页之 ...

  6. Asp.net Repeater控件

    Repeater控件和DataList控件,可以用来一次显示一组数据项.比如,可以用它们显示一个数据表中的所有行.     Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出 ...

  7. asp.net repeater控件操作

    Repeater控件和DataList控件,可以用来一次显示一组数据项.比如,可以用它们显示一个数据表中的所有行. Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出格式. ...

  8. asp.net Repeater使用例子,包括分页

    <style type="text/css">    .tab{border-collapse:collapse; margin:0 auto;}    .tab th ...

  9. 给Repeater增加button事件,并绑定值

    ASPX页面: 增加两个事件,及传值. 1<asp:Repeater ID="rptList" OnItemDataBound="rptList_ItemDataB ...

随机推荐

  1. 【朝花夕拾】Android多线程之(三)runOnUiThread篇——程序猿们的贴心小棉袄

    runOnUiThread()的使用以及原理实在是太简单了,简单到笔者开始都懒得单独开一篇文章来写它.当然这里说的简单,是针对对Handler比较熟悉的童鞋而言的.不过麻雀虽小,五脏俱全,runOnU ...

  2. CSRF与auth模块

    目录 一.模拟实现中间件的编程思想 (一)impotlib模块 (二)实现功能的配置使用 二.跨站请求伪造CSRF (一)由来 (二)form表单的CSRF (三)ajax中的CSRF (1)通过da ...

  3. i++和++i的区别(主要为返回的值的区别)

    初学者经常会搞不清i++,和++i  的关系 i++   是把i的值拿过来,然后再+1++i   是吧i的值直接+1,之后再用

  4. Python:数字类型和字符串类型的内置方法

    一.数字类型内置方法 1.1 整型的内置方法 作用 描述年龄.号码.id号 定义方式 x = 10 x = int('10') x = int(10.1) x = int('10.1') # 报错 内 ...

  5. tp5.1批量删除商品

    选中要删除的商品,点击批量删除 先在控制器使用sql语句查出商品信息goods 然后在html源码中使用goods变量. <table> {foreach $goods as $item} ...

  6. git 本地代码 切换远程分支

    公司之前代码使用的是gitlab,后来换成腾讯的工峰,所以需要切换远程不支,所以在原代码上切换即可. 在原项目打开git bash命令,打开后会显示本地的原始分支 打开后 添加新的远程分支,红色字体为 ...

  7. Maven——向Maven本地仓库中手动添加依赖包(ps:ojdbc.jar)

    maven中央仓库中并非包含所有现有的依赖包和插件,部分依赖包和插件需要手动地进行添加(如ojdbc.jar) 一.添加JDK系统环境变量(maven是基于Java的,可参考:https://www. ...

  8. Linux上用IP转发使内部网络连接互联网

    IP转发的概念: 使 Linux 机器像路由器一样将数据从一个网络发送到另一个网络.所以,它能作为一个路由器或者代理服务器,实现将一个连接的互联网或者网络连接共享给多个客户端机器. 1. 启用 IPv ...

  9. webpack-dev-server工具

    webpack-dev-server来实现自动打包编译功能 // 1.npm install webpack-dev-server -D//2.和webpakc命令用法一样// 3.是本地安装的,无法 ...

  10. Docker安全扫描工具之DockerScan

    前言 本篇简单介绍Docker扫描工具DockerScan的安装使用.下述过程是在CentOS 7.6的虚拟机上进行的. [root@localhost ~]# cat /etc/redhat-rel ...