使用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(地区导航)的更多相关文章

  1. 关于系统首页绘制问题(ext布局+c#后台加入数据)经html输出流输出响应client

    关于系统首页绘制问题,业务需求 TODO 绘制系统首页(Main.aspx) 採用的技术:functioncharts+jquery+ext布局+c#+html 解说篇:1,服务端aspx,2,服务端 ...

  2. EF和MVC系列文章导航:EF Code First、DbContext、MVC

    对于之前一直使用webForm服务器控件.手写ado.net操作数据库的同学,突然来了EF和MVC,好多新概念泉涌而出,的确犹如当头一棒不知所措.本系列文章可以帮助新手入门并熟练使用EF和MVC,有了 ...

  3. 美团HD(3)-加载分类导航数据

    DJHomeViewController.m /** 设置导航栏左侧内容 */ - (void)setupLeftNavItem { // Logo UIImageView *logoView = [ ...

  4. 【开源】OSharp框架解说系列(1):总体设计及系列导航

    系列文章导航 [开源]OSharp框架解说系列(1):总体设计 [开源]OSharp框架解说系列(2.1):EasyUI的后台界面搭建及极致重构 [开源]OSharp框架解说系列(2.2):EasyU ...

  5. ul、li实现横向导航按钮

    好久没写博客了,主要是懒得呼气都不想呼,上周分给我一个新的任务,就是自己新建一个系统,快速极限开发,虽然之前自己也做过小的系统,但毕竟是自己做,随着自己的心意做,没有做其他的限制等,现在呢是给公司做, ...

  6. iOS开发——UI进阶篇(八)pickerView简单使用,通过storyboard加载控制器,注册界面,通过xib创建控制器,控制器的view创建,导航控制器的基本使用

    一.pickerView简单使用 1.UIPickerViewDataSource 这两个方法必须实现 // 返回有多少列 - (NSInteger)numberOfComponentsInPicke ...

  7. webform页面传值和删除修改

    一.webform跨页面传值1.内置对象地址栏数据拼接 QueryString 优点:简单好用:速度快:不消耗服务器内存. 缺点:只能传字符串:保密性差(调转页面后在地址栏显示):长度有限.响应请求对 ...

  8. ASP.NET中 WebForm 窗体控件使用及总结【转】

    原文链接:http://www.cnblogs.com/ylbtech/archive/2013/03/06/2944675.html ASP.NET中 WebForm 窗体控件使用及总结. 1.A, ...

  9. MDNavBarView下拉导航菜单(仿美团导航下拉菜单)

    说到下拉导航菜单这个东西用得还真不少,细心算一下做开发以来这样的菜单已经写了第三次了,但基本都是不能复用.感觉特累人.不经意看到同事写一个类似的下拉菜单,但他引用了开源库仿大众菜单的库,大致看了一下, ...

随机推荐

  1. C++嵌入Python,以及两者混用

    以前项目中是C++嵌入Python,开发起来很便利,逻辑业务可以放到python中进行开发,容易修改,以及功能扩展.不过自己没有详细的研究过C++嵌入python的细节,这次详细的研究一下.首先我们简 ...

  2. 华为HG255D路由器使用OH3C进行中大校园网认证

    之前用的上海贝尔RG100A-AA路由器,被我无情地摧残了,电源按钮挂了,只能换个路由器.由于在校内,使用OP还是比较方便的,网上淘了这款华为HG255D,店主已刷好OP,无线速率300M,想想也是值 ...

  3. include指令和include标签的区别

    区别 类别 语法 发生作用时间 包含的内容 转化成Servlet 编译时间 运行时间 include指令 <%@ include file="" %> 页面交换 实际内 ...

  4. web移动端input获得光标Fixed定位失效解决方案

    移动端业务开发,iOS 下经常会有 fixed 元素和输入框(input 元素)同时存在的情况. 但是 fixed元素在有软键盘唤起的情况下,会出现许多莫名其妙的问题. 这篇文章里就提供一个简单的有输 ...

  5. poj3181 Dollar Dayz ——完全背包

    link:http://poj.org/problem?id=3181 本来很常规的一道完全背包,比较有意思的一点是,结果会超int,更有意思的解决方法是,不用高精度,用两个整型的拼接起来就行了.OR ...

  6. 038. asp.netWeb用户控件之六实现日期选择的用户控件

    web用户控件的ascx代码: <%@ Control Language="C#" AutoEventWireup="true" CodeFile=&qu ...

  7. 抽象类和接口 static final finalize

    抽象类 任何含有一个或多个抽象方法的类都必须声明成抽象类,用关键字abstract. 抽象类没有对象,即一个抽象类不能用new来直接实例化. 不能定义抽象构造方法或抽象静态方法.(但是可以创建父类引用 ...

  8. Android 扫一扫----ZXing 的使用

    1. 首先现在ZXing的lib 2. 在Android Studio集成ZXing. public void scan(View view){ startActivityForResult(new ...

  9. node版本管理器nvm(服务器项目相关)

    git项目 https://github.com/creationix/nvm 1.下载并安装NVM脚本 curl https://raw.githubusercontent.com/creation ...

  10. Python Mysql 篇

    Python 操作 Mysql 模块的安装 linux: yum install MySQL-python window: http://files.cnblogs.com/files/wupeiqi ...