webForm练习1(地区导航)
使用LINQ TO SQL类连接数据库。
create database mydb
go
use mydb
go
CREATE TABLE [dbo].[ChinaStates] (
[AreaCode] varchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[AreaName] nvarchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[ParentAreaCode] varchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[Root] bit NOT NULL,
[Zone] smallint NOT NULL,
[NavigateURL] varchar(100) COLLATE Chinese_PRC_CI_AS,
CONSTRAINT [PK_TB_Area] PRIMARY KEY CLUSTERED ([AreaCode])
)
ON [PRIMARY]
编辑页面
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body style="height: 136px">
<form id="form1" runat="server">
<div> <asp:Button ID="Button1" runat="server" Text="在此级别添加地区" Width="120px" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="返回上级" OnClick="Button2_Click" /> </div>
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<HeaderTemplate>
<table>
<tr>
<td>地名</td> <td>编号</td> <td>上一级</td>
<td>管理</td>
<td>删除</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%#Eval("AreaName") %>
</td>
<td>
<%#Eval("AreaCode") %>
</td>
<td>
<%#Eval("ParentAreaCode") %>
</td>
<td>
<asp:LinkButton ID="linkbutton1" CommandArgument='<%#Eval("AreaCode") %>' CommandName="Showxiaji" runat="server">下级地区</asp:LinkButton>
</td>
<td>
<asp:LinkButton ID="linkbutton2" CommandArgument='<%#Eval("AreaCode") %>' OnClientClick='return confirm("确定删除吗?")' CommandName="delete" runat="server">删除</asp:LinkButton>
</td> </tr>
</ItemTemplate>
<FooterTemplate>
</table> </FooterTemplate>
</asp:Repeater> <asp:Button ID="Button5" runat="server" Text="Button" />
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Literal ID="Literal2" runat="server"></asp:Literal> <asp:Panel ID="Panel1" runat="server" Visible="False"> <p>
<asp:Label ID="Label1" runat="server" Text="请输入地区:"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</p>
<p>
<asp:Label ID="Label2" runat="server" Text="请输入邮编:"></asp:Label>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</p>
<asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="添加" />
<asp:Button ID="Button4" runat="server" Text="取消" OnClick="Button4_Click" /> </asp:Panel>
</form> </body>
</html>
编写cs
public DataClassesDataContext context;
public List<ChinaStates> chinastates;
protected void Page_Load(object sender, EventArgs e)
{
context = new DataClassesDataContext();
if (!IsPostBack)
{
binddata("0001"); } }
//根据parentcode查
private void binddata(string parentcode)
{
var querydata = from q in context.ChinaStates
where q.ParentAreaCode == parentcode
select q;
Repeater1.DataSource = querydata;
Repeater1.DataBind();
Literal2.Text = parentcode;//显示ParentAreaCode }
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
//删除
if(e.CommandName=="delete")
{
string code = e.CommandArgument.ToString();//获取这一及编号
ChinaStates cstates = context.ChinaStates.Single(r=>r.AreaCode==code);//获取对应地区编号的数据
context.ChinaStates.DeleteOnSubmit(cstates);//删除
context.SubmitChanges();
binddata(cstates.ParentAreaCode);//显示删除后的数据 }
//显示下级
if(e.CommandName=="Showxiaji")
{
string code = e.CommandArgument.ToString();//获取这一级的唯一AreaCode
ChinaStates cstates = context.ChinaStates.Single(r => r.AreaCode == code);
Literal1.Text = cstates.ParentAreaCode;//存储这级的ParentAreaCode
binddata(code);//显示,下一级ParentCode是这级的AreaCode }
}
//添加地区
protected void Button3_Click(object sender, EventArgs e)
{ ChinaStates cdata = new ChinaStates()
{
AreaCode=DateTime.Now.Millisecond.ToString(),
AreaName=TextBox1.Text,
ParentAreaCode=Literal2.Text };
try
{
context.ChinaStates.InsertOnSubmit(cdata);
context.SubmitChanges();
binddata(Literal2.Text);
Response.Write("<script>alter('添加成功!')</script>");
}
catch(Exception ex)
{
Response.Write("<script>alter('添加失败!')</script>"); }
}
protected void Button1_Click(object sender, EventArgs e)
{
Panel1.Visible = true;
}
//返回上级
protected void Button2_Click(object sender, EventArgs e)
{
if (Literal1.Text != "0000" && Literal1.Text.Length > 0)
{
binddata(Literal1.Text);//显示上一级,ParentAreaCode
ChinaStates cdata = context.ChinaStates.Single(r=>r.AreaCode==Literal1.Text);
Literal1.Text = cdata.ParentAreaCode;
}
} }
webForm练习1(地区导航)的更多相关文章
- 关于系统首页绘制问题(ext布局+c#后台加入数据)经html输出流输出响应client
关于系统首页绘制问题,业务需求 TODO 绘制系统首页(Main.aspx) 採用的技术:functioncharts+jquery+ext布局+c#+html 解说篇:1,服务端aspx,2,服务端 ...
- EF和MVC系列文章导航:EF Code First、DbContext、MVC
对于之前一直使用webForm服务器控件.手写ado.net操作数据库的同学,突然来了EF和MVC,好多新概念泉涌而出,的确犹如当头一棒不知所措.本系列文章可以帮助新手入门并熟练使用EF和MVC,有了 ...
- 美团HD(3)-加载分类导航数据
DJHomeViewController.m /** 设置导航栏左侧内容 */ - (void)setupLeftNavItem { // Logo UIImageView *logoView = [ ...
- 【开源】OSharp框架解说系列(1):总体设计及系列导航
系列文章导航 [开源]OSharp框架解说系列(1):总体设计 [开源]OSharp框架解说系列(2.1):EasyUI的后台界面搭建及极致重构 [开源]OSharp框架解说系列(2.2):EasyU ...
- ul、li实现横向导航按钮
好久没写博客了,主要是懒得呼气都不想呼,上周分给我一个新的任务,就是自己新建一个系统,快速极限开发,虽然之前自己也做过小的系统,但毕竟是自己做,随着自己的心意做,没有做其他的限制等,现在呢是给公司做, ...
- iOS开发——UI进阶篇(八)pickerView简单使用,通过storyboard加载控制器,注册界面,通过xib创建控制器,控制器的view创建,导航控制器的基本使用
一.pickerView简单使用 1.UIPickerViewDataSource 这两个方法必须实现 // 返回有多少列 - (NSInteger)numberOfComponentsInPicke ...
- webform页面传值和删除修改
一.webform跨页面传值1.内置对象地址栏数据拼接 QueryString 优点:简单好用:速度快:不消耗服务器内存. 缺点:只能传字符串:保密性差(调转页面后在地址栏显示):长度有限.响应请求对 ...
- ASP.NET中 WebForm 窗体控件使用及总结【转】
原文链接:http://www.cnblogs.com/ylbtech/archive/2013/03/06/2944675.html ASP.NET中 WebForm 窗体控件使用及总结. 1.A, ...
- MDNavBarView下拉导航菜单(仿美团导航下拉菜单)
说到下拉导航菜单这个东西用得还真不少,细心算一下做开发以来这样的菜单已经写了第三次了,但基本都是不能复用.感觉特累人.不经意看到同事写一个类似的下拉菜单,但他引用了开源库仿大众菜单的库,大致看了一下, ...
随机推荐
- codeforces 682C Alyona and the Tree(DFS)
题目链接:http://codeforces.com/problemset/problem/682/C 题意:如果点v在点u的子树上且dist(u,v)>a[v]则u和其整个子树都将被删去,求被 ...
- 根据地图上的两个点各自的x,y坐标,计算出2点之间的直线距离。显示为公里、米
/** * calc_map_distance() , 根据地图上的两个点各自的x,y坐标,计算出2点之间的直线距离 * @param array $point_1 第1个点的x,y坐标 array( ...
- git新建仓库
克隆地址 git clone https://git.oschina.net/dy09/dy_shop.git 在克隆下来的文件夹里面进行下面的操作1.git add -A 2.git commit ...
- Java-->Tomcat(免费的Java Web服务器)
--> 要在浏览器访问一个Java Web项目,首先需要将这个项目放到服务器中. --> Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器. --> ...
- input屏蔽历史记录
设置input 的扩展属性 autocomplete为off即可 <input type="text" autocomplete="off" />
- 2016.1.4~2016.1.7真题回顾!-- HTML5学堂
2016.1.4~2016.1.7真题回顾!-- HTML5学堂 2015悄然而逝,崭新的2016随即而行!生活需要新鲜感,学习JavaScript的过程需要有成就感!成就感又是来自于每一天的不断练习 ...
- ASP.NET中数据邦定效率问题的一点看法 - 转载(自由的天空)
在 做Asp.NET开发的时候经常用到DataList.Repeater等,用这些控件的时候经常用到数据邦定,很多程序员都是按照MS提供的方 法<%#DataBinder.Eval(Contai ...
- CSS 类选择器
在 CSS 中,类选择器以一个点号显示: .center {text-align: center} 在上面的例子中,所有拥有 center 类的 HTML 元素均为居中. 在下面的 HTML 代码中, ...
- [Spring MVC] - 表单提交
Spring MVC自带的表单标签比较简单,很多时候需要借助EL和JSTL来完成. 下面是一个比较简单的表单提交页面功能: 1.User model package com.my.controller ...
- php命令传参
1.url方式 $param = array(); if ($argc > 1) { parse_str ( $argv [1], $param ); foreach ( $param as $ ...