使用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. Git工作流指南:Pull Request工作流

    参考地址:http://blog.jobbole.com/76854/ Pull Requests是Bitbucket上方便开发者之间协作的功能.提供了一个用户友好的Web界面,在集成提交的变更到正式 ...

  2. Asp:Button控件onclick事件无刷新页面提示消息

    <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptMana ...

  3. jquery dataTables.min.js API

    demo: http://datatables.net/release-datatables/examples/api/select_single_row.html 选择一行http://datata ...

  4. 关于kindeditor中点击图片后,滚动条往上顶的bug

    比如现在我插入两张图片, 无论我点击哪张图片,里边的滚动条都会往上顶. 本来以为往上会有解决方法,一查结果没有:然后想着去官网查查,然而什么都没有,想到官网提交这个bug,结果没地方提交. 怎么解决, ...

  5. 百度翻译&&金山词霸API

    #/usr/bin/env python3 #coding=utf8 """百度翻译api功能实现函数,本模块基于Python3.x实现,getTransResult(q ...

  6. linux权限管理_文件特殊权限

    一.SetUID功能 设定SetUID的方法 4代表SUID s代表SUID权限 S代表报错了,原因没有执行权限 # chmod 4755 文件名(最好用这种方法) # chmod u+s 文件名 取 ...

  7. Func<T>与Action<T>委托泛型介绍

    .Net 3.5之后,微软推出了Func<T>与Action<T>泛型委托.进一步简化了委托的定义. Action<T>委托主要的表现形式如下: public de ...

  8. linux网络环境下socket套接字编程(UDP文件传输)

    今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中, ...

  9. [IIS]IIS扫盲(五)

    第二篇 IIS之FTP服务器 一.建立你的FTP站点 第一个FTP站点(即“默认FTP站点”)的设置方法和更多FTP站点的建立方法请参照前文Web服务器中相关操作执行.需要注意的是,如果你要用一个IP ...

  10. X-Cart 学习笔记(三)X-Cart框架2

    目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 3.了解 ...